summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-05-31 02:44:10 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2013-05-31 02:44:10 +0200
commit484b002e28ca328195829ddc06fa9082c8ad41f8 (patch)
treef407d16112b9916854e4c3a22d4d9ea8dae90048 /kernel
parentMerge tag 'stable/for-linus-3.10-rc3-tag' of git://git.kernel.org/pub/scm/lin... (diff)
parentx86: Allow FPU to be used at interrupt time even with eagerfpu (diff)
downloadlinux-484b002e28ca328195829ddc06fa9082c8ad41f8.tar.xz
linux-484b002e28ca328195829ddc06fa9082c8ad41f8.zip
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Peter Anvin: - Three EFI-related fixes - Two early memory initialization fixes - build fix for older binutils - fix for an eager FPU performance regression -- currently we don't allow the use of the FPU at interrupt time *at all* in eager mode, which is clearly wrong. * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86: Allow FPU to be used at interrupt time even with eagerfpu x86, crc32-pclmul: Fix build with older binutils x86-64, init: Fix a possible wraparound bug in switchover in head_64.S x86, range: fix missing merge during add range x86, efi: initial the local variable of DataSize to zero efivar: fix oops in efivar_update_sysfs_entries() caused by memory reuse efivarfs: Never return ENOENT from firmware again
Diffstat (limited to 'kernel')
-rw-r--r--kernel/range.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/range.c b/kernel/range.c
index 071b0ab455cb..eb911dbce267 100644
--- a/kernel/range.c
+++ b/kernel/range.c
@@ -48,9 +48,11 @@ int add_range_with_merge(struct range *range, int az, int nr_range,
final_start = min(range[i].start, start);
final_end = max(range[i].end, end);
- range[i].start = final_start;
- range[i].end = final_end;
- return nr_range;
+ /* clear it and add it back for further merge */
+ range[i].start = 0;
+ range[i].end = 0;
+ return add_range_with_merge(range, az, nr_range,
+ final_start, final_end);
}
/* Need to add it: */