Linux v3.10-rc7
- Disable debugging options.
This commit is contained in:
parent
20ba4aa98d
commit
d258655694
@ -56,6 +56,7 @@ CONFIG_ARM_ERRATA_430973=y
|
|||||||
# CONFIG_ARM_ERRATA_458693 is not set
|
# CONFIG_ARM_ERRATA_458693 is not set
|
||||||
# CONFIG_ARM_ERRATA_460075 is not set
|
# CONFIG_ARM_ERRATA_460075 is not set
|
||||||
# Cortex-A9
|
# Cortex-A9
|
||||||
|
CONFIG_ARM_ERRATA_643719=y
|
||||||
CONFIG_ARM_ERRATA_720789=y
|
CONFIG_ARM_ERRATA_720789=y
|
||||||
CONFIG_ARM_ERRATA_742230=y
|
CONFIG_ARM_ERRATA_742230=y
|
||||||
CONFIG_ARM_ERRATA_742231=y
|
CONFIG_ARM_ERRATA_742231=y
|
||||||
|
@ -1570,13 +1570,13 @@ CONFIG_B43_SDIO=y
|
|||||||
CONFIG_B43_BCMA=y
|
CONFIG_B43_BCMA=y
|
||||||
# CONFIG_B43_BCMA_EXTRA is not set
|
# CONFIG_B43_BCMA_EXTRA is not set
|
||||||
CONFIG_B43_BCMA_PIO=y
|
CONFIG_B43_BCMA_PIO=y
|
||||||
CONFIG_B43_DEBUG=y
|
# CONFIG_B43_DEBUG is not set
|
||||||
CONFIG_B43_PHY_LP=y
|
CONFIG_B43_PHY_LP=y
|
||||||
CONFIG_B43_PHY_N=y
|
CONFIG_B43_PHY_N=y
|
||||||
CONFIG_B43_PHY_HT=y
|
CONFIG_B43_PHY_HT=y
|
||||||
# CONFIG_B43_FORCE_PIO is not set
|
# CONFIG_B43_FORCE_PIO is not set
|
||||||
CONFIG_B43LEGACY=m
|
CONFIG_B43LEGACY=m
|
||||||
CONFIG_B43LEGACY_DEBUG=y
|
# CONFIG_B43LEGACY_DEBUG is not set
|
||||||
CONFIG_B43LEGACY_DMA=y
|
CONFIG_B43LEGACY_DMA=y
|
||||||
CONFIG_B43LEGACY_PIO=y
|
CONFIG_B43LEGACY_PIO=y
|
||||||
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
|
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
|
||||||
@ -3227,7 +3227,7 @@ CONFIG_USB_STORAGE_REALTEK=m
|
|||||||
CONFIG_REALTEK_AUTOPM=y
|
CONFIG_REALTEK_AUTOPM=y
|
||||||
CONFIG_USB_STORAGE_ENE_UB6250=m
|
CONFIG_USB_STORAGE_ENE_UB6250=m
|
||||||
# CONFIG_USB_LIBUSUAL is not set
|
# CONFIG_USB_LIBUSUAL is not set
|
||||||
CONFIG_USB_UAS=m
|
# CONFIG_USB_UAS is not set
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -4241,7 +4241,7 @@ CONFIG_IBMASR=m
|
|||||||
CONFIG_PM_DEBUG=y
|
CONFIG_PM_DEBUG=y
|
||||||
CONFIG_PM_TRACE=y
|
CONFIG_PM_TRACE=y
|
||||||
CONFIG_PM_TRACE_RTC=y
|
CONFIG_PM_TRACE_RTC=y
|
||||||
CONFIG_PM_TEST_SUSPEND=y
|
# CONFIG_PM_TEST_SUSPEND is not set
|
||||||
CONFIG_PM_RUNTIME=y
|
CONFIG_PM_RUNTIME=y
|
||||||
# CONFIG_PM_OPP is not set
|
# CONFIG_PM_OPP is not set
|
||||||
# CONFIG_PM_AUTOSLEEP is not set
|
# CONFIG_PM_AUTOSLEEP is not set
|
||||||
|
110
config-nodebug
110
config-nodebug
@ -2,99 +2,99 @@ CONFIG_SND_VERBOSE_PRINTK=y
|
|||||||
CONFIG_SND_DEBUG=y
|
CONFIG_SND_DEBUG=y
|
||||||
CONFIG_SND_PCM_XRUN_DEBUG=y
|
CONFIG_SND_PCM_XRUN_DEBUG=y
|
||||||
|
|
||||||
CONFIG_DEBUG_ATOMIC_SLEEP=y
|
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_MUTEXES=y
|
# CONFIG_DEBUG_MUTEXES is not set
|
||||||
CONFIG_DEBUG_RT_MUTEXES=y
|
# CONFIG_DEBUG_RT_MUTEXES is not set
|
||||||
CONFIG_DEBUG_LOCK_ALLOC=y
|
# CONFIG_DEBUG_LOCK_ALLOC is not set
|
||||||
CONFIG_PROVE_LOCKING=y
|
# CONFIG_PROVE_LOCKING is not set
|
||||||
CONFIG_DEBUG_SPINLOCK=y
|
# CONFIG_DEBUG_SPINLOCK is not set
|
||||||
CONFIG_PROVE_RCU=y
|
# CONFIG_PROVE_RCU is not set
|
||||||
# CONFIG_PROVE_RCU_REPEATEDLY is not set
|
# CONFIG_PROVE_RCU_REPEATEDLY is not set
|
||||||
CONFIG_DEBUG_PER_CPU_MAPS=y
|
# CONFIG_DEBUG_PER_CPU_MAPS is not set
|
||||||
CONFIG_CPUMASK_OFFSTACK=y
|
CONFIG_CPUMASK_OFFSTACK=y
|
||||||
|
|
||||||
CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
|
# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
|
||||||
|
|
||||||
CONFIG_FAULT_INJECTION=y
|
# CONFIG_FAULT_INJECTION is not set
|
||||||
CONFIG_FAILSLAB=y
|
# CONFIG_FAILSLAB is not set
|
||||||
CONFIG_FAIL_PAGE_ALLOC=y
|
# CONFIG_FAIL_PAGE_ALLOC is not set
|
||||||
CONFIG_FAIL_MAKE_REQUEST=y
|
# CONFIG_FAIL_MAKE_REQUEST is not set
|
||||||
CONFIG_FAULT_INJECTION_DEBUG_FS=y
|
# CONFIG_FAULT_INJECTION_DEBUG_FS is not set
|
||||||
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
|
# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set
|
||||||
CONFIG_FAIL_IO_TIMEOUT=y
|
# CONFIG_FAIL_IO_TIMEOUT is not set
|
||||||
CONFIG_FAIL_MMC_REQUEST=y
|
# CONFIG_FAIL_MMC_REQUEST is not set
|
||||||
|
|
||||||
CONFIG_SLUB_DEBUG_ON=y
|
# CONFIG_SLUB_DEBUG_ON is not set
|
||||||
|
|
||||||
CONFIG_LOCK_STAT=y
|
# CONFIG_LOCK_STAT is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_STACK_USAGE=y
|
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||||
|
|
||||||
CONFIG_ACPI_DEBUG=y
|
# CONFIG_ACPI_DEBUG is not set
|
||||||
# CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
|
# CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_SG=y
|
# CONFIG_DEBUG_SG is not set
|
||||||
|
|
||||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_WRITECOUNT=y
|
# CONFIG_DEBUG_WRITECOUNT is not set
|
||||||
CONFIG_DEBUG_OBJECTS=y
|
# CONFIG_DEBUG_OBJECTS is not set
|
||||||
# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
|
# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
|
||||||
CONFIG_DEBUG_OBJECTS_FREE=y
|
# CONFIG_DEBUG_OBJECTS_FREE is not set
|
||||||
CONFIG_DEBUG_OBJECTS_TIMERS=y
|
# CONFIG_DEBUG_OBJECTS_TIMERS is not set
|
||||||
CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
|
# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set
|
||||||
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
|
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
|
||||||
|
|
||||||
CONFIG_X86_PTDUMP=y
|
# CONFIG_X86_PTDUMP is not set
|
||||||
|
|
||||||
CONFIG_CAN_DEBUG_DEVICES=y
|
# CONFIG_CAN_DEBUG_DEVICES is not set
|
||||||
|
|
||||||
CONFIG_MODULE_FORCE_UNLOAD=y
|
# CONFIG_MODULE_FORCE_UNLOAD is not set
|
||||||
|
|
||||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_NOTIFIERS=y
|
# CONFIG_DEBUG_NOTIFIERS is not set
|
||||||
|
|
||||||
CONFIG_DMA_API_DEBUG=y
|
# CONFIG_DMA_API_DEBUG is not set
|
||||||
|
|
||||||
CONFIG_MMIOTRACE=y
|
# CONFIG_MMIOTRACE is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_CREDENTIALS=y
|
# CONFIG_DEBUG_CREDENTIALS is not set
|
||||||
|
|
||||||
# off in both production debug and nodebug builds,
|
# off in both production debug and nodebug builds,
|
||||||
# on in rawhide nodebug builds
|
# on in rawhide nodebug builds
|
||||||
CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y
|
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
|
||||||
|
|
||||||
CONFIG_EXT4_DEBUG=y
|
# CONFIG_EXT4_DEBUG is not set
|
||||||
|
|
||||||
# CONFIG_XFS_WARN is not set
|
# CONFIG_XFS_WARN is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_PERF_USE_VMALLOC=y
|
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
|
||||||
|
|
||||||
CONFIG_JBD2_DEBUG=y
|
# CONFIG_JBD2_DEBUG is not set
|
||||||
|
|
||||||
CONFIG_NFSD_FAULT_INJECTION=y
|
# CONFIG_NFSD_FAULT_INJECTION is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_BLK_CGROUP=y
|
# CONFIG_DEBUG_BLK_CGROUP is not set
|
||||||
|
|
||||||
CONFIG_DRBD_FAULT_INJECTION=y
|
# CONFIG_DRBD_FAULT_INJECTION is not set
|
||||||
|
|
||||||
CONFIG_ATH_DEBUG=y
|
# CONFIG_ATH_DEBUG is not set
|
||||||
CONFIG_CARL9170_DEBUGFS=y
|
# CONFIG_CARL9170_DEBUGFS is not set
|
||||||
CONFIG_IWLWIFI_DEVICE_TRACING=y
|
# CONFIG_IWLWIFI_DEVICE_TRACING is not set
|
||||||
|
|
||||||
# CONFIG_RTLWIFI_DEBUG is not set
|
# CONFIG_RTLWIFI_DEBUG is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_OBJECTS_WORK=y
|
# CONFIG_DEBUG_OBJECTS_WORK is not set
|
||||||
|
|
||||||
CONFIG_DMADEVICES_DEBUG=y
|
# CONFIG_DMADEVICES_DEBUG is not set
|
||||||
CONFIG_DMADEVICES_VDEBUG=y
|
# CONFIG_DMADEVICES_VDEBUG is not set
|
||||||
|
|
||||||
CONFIG_PM_ADVANCED_DEBUG=y
|
CONFIG_PM_ADVANCED_DEBUG=y
|
||||||
|
|
||||||
CONFIG_CEPH_LIB_PRETTYDEBUG=y
|
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
|
||||||
CONFIG_QUOTA_DEBUG=y
|
# CONFIG_QUOTA_DEBUG is not set
|
||||||
|
|
||||||
CONFIG_PCI_DEFAULT_USE_CRS=y
|
CONFIG_PCI_DEFAULT_USE_CRS=y
|
||||||
|
|
||||||
@ -102,17 +102,17 @@ CONFIG_KGDB_KDB=y
|
|||||||
CONFIG_KDB_KEYBOARD=y
|
CONFIG_KDB_KEYBOARD=y
|
||||||
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
|
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
|
||||||
|
|
||||||
CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
|
# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set
|
||||||
CONFIG_TEST_LIST_SORT=y
|
# CONFIG_TEST_LIST_SORT is not set
|
||||||
# CONFIG_TEST_STRING_HELPERS is not set
|
# CONFIG_TEST_STRING_HELPERS is not set
|
||||||
|
|
||||||
CONFIG_DETECT_HUNG_TASK=y
|
# CONFIG_DETECT_HUNG_TASK is not set
|
||||||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
||||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||||
|
|
||||||
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
|
# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
|
||||||
|
|
||||||
CONFIG_DEBUG_KMEMLEAK=y
|
# CONFIG_DEBUG_KMEMLEAK is not set
|
||||||
CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024
|
CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024
|
||||||
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
|
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
|
||||||
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
|
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
|
||||||
|
@ -331,7 +331,7 @@ CONFIG_STRICT_DEVMEM=y
|
|||||||
|
|
||||||
# CONFIG_MEMTEST is not set
|
# CONFIG_MEMTEST is not set
|
||||||
# CONFIG_DEBUG_TLBFLUSH is not set
|
# CONFIG_DEBUG_TLBFLUSH is not set
|
||||||
CONFIG_MAXSMP=y
|
# CONFIG_MAXSMP is not set
|
||||||
|
|
||||||
|
|
||||||
CONFIG_HP_ILO=m
|
CONFIG_HP_ILO=m
|
||||||
|
20
kernel.spec
20
kernel.spec
@ -62,7 +62,7 @@ Summary: The Linux kernel
|
|||||||
# For non-released -rc kernels, this will be appended after the rcX and
|
# For non-released -rc kernels, this will be appended after the rcX and
|
||||||
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
|
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
|
||||||
#
|
#
|
||||||
%global baserelease 4
|
%global baserelease 1
|
||||||
%global fedora_build %{baserelease}
|
%global fedora_build %{baserelease}
|
||||||
|
|
||||||
# base_sublevel is the kernel version we're starting with and patching
|
# base_sublevel is the kernel version we're starting with and patching
|
||||||
@ -93,7 +93,7 @@ Summary: The Linux kernel
|
|||||||
# The next upstream release sublevel (base_sublevel+1)
|
# The next upstream release sublevel (base_sublevel+1)
|
||||||
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
|
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
|
||||||
# The rc snapshot level
|
# The rc snapshot level
|
||||||
%define rcrev 6
|
%define rcrev 7
|
||||||
# The git snapshot level
|
# The git snapshot level
|
||||||
%define gitrev 0
|
%define gitrev 0
|
||||||
# Set rpm version accordingly
|
# Set rpm version accordingly
|
||||||
@ -156,7 +156,7 @@ Summary: The Linux kernel
|
|||||||
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
|
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
|
||||||
# and 0 for rawhide (all kernels are debug kernels).
|
# and 0 for rawhide (all kernels are debug kernels).
|
||||||
# See also 'make debug' and 'make release'.
|
# See also 'make debug' and 'make release'.
|
||||||
%define debugbuildsenabled 0
|
%define debugbuildsenabled 1
|
||||||
|
|
||||||
# Want to build a vanilla kernel build without any non-upstream patches?
|
# Want to build a vanilla kernel build without any non-upstream patches?
|
||||||
%define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
|
%define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
|
||||||
@ -169,7 +169,7 @@ Summary: The Linux kernel
|
|||||||
%define doc_build_fail true
|
%define doc_build_fail true
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%define rawhide_skip_docs 1
|
%define rawhide_skip_docs 0
|
||||||
%if 0%{?rawhide_skip_docs}
|
%if 0%{?rawhide_skip_docs}
|
||||||
%define with_doc 0
|
%define with_doc 0
|
||||||
%define doc_build_fail true
|
%define doc_build_fail true
|
||||||
@ -770,10 +770,6 @@ Patch25035: block-do-not-pass-disk-names-as-format-strings.patch
|
|||||||
#CVE-2013-2164 rhbz 973100 973109
|
#CVE-2013-2164 rhbz 973100 973109
|
||||||
Patch25038: cdrom-use-kzalloc-for-failing-hardware.patch
|
Patch25038: cdrom-use-kzalloc-for-failing-hardware.patch
|
||||||
|
|
||||||
#rhbz 973185
|
|
||||||
Patch25041: x86-mtrr-Fix-original-mtrr-range-get-for-mtrr_cleanup.patch
|
|
||||||
Patch25042: x86-range-make-add_range-use-blank-slot.patch
|
|
||||||
|
|
||||||
#rhbz 950735
|
#rhbz 950735
|
||||||
Patch25045: rt2800-fix-RT5390-RT3290-TX-power-settings-regression.patch
|
Patch25045: rt2800-fix-RT5390-RT3290-TX-power-settings-regression.patch
|
||||||
|
|
||||||
@ -1480,10 +1476,6 @@ ApplyPatch block-do-not-pass-disk-names-as-format-strings.patch
|
|||||||
#CVE-2013-2164 rhbz 973100 973109
|
#CVE-2013-2164 rhbz 973100 973109
|
||||||
ApplyPatch cdrom-use-kzalloc-for-failing-hardware.patch
|
ApplyPatch cdrom-use-kzalloc-for-failing-hardware.patch
|
||||||
|
|
||||||
#rhbz 973185
|
|
||||||
ApplyPatch x86-mtrr-Fix-original-mtrr-range-get-for-mtrr_cleanup.patch
|
|
||||||
ApplyPatch x86-range-make-add_range-use-blank-slot.patch
|
|
||||||
|
|
||||||
#rhbz 950735
|
#rhbz 950735
|
||||||
ApplyPatch rt2800-fix-RT5390-RT3290-TX-power-settings-regression.patch
|
ApplyPatch rt2800-fix-RT5390-RT3290-TX-power-settings-regression.patch
|
||||||
|
|
||||||
@ -2288,6 +2280,10 @@ fi
|
|||||||
# ||----w |
|
# ||----w |
|
||||||
# || ||
|
# || ||
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jun 24 2013 Josh Boyer <jwboyer@redhat.com> - 3.10.0-0.rc7.git0.1
|
||||||
|
- Linux v3.10-rc7
|
||||||
|
- Disable debugging options.
|
||||||
|
|
||||||
* Tue Jun 18 2013 Dave Jones <davej@redhat.com>
|
* Tue Jun 18 2013 Dave Jones <davej@redhat.com>
|
||||||
- Disable MTRR sanitizer by default.
|
- Disable MTRR sanitizer by default.
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1,2 +1,2 @@
|
|||||||
4348c9b6b2eb3144d601e87c19d5d909 linux-3.9.tar.xz
|
4348c9b6b2eb3144d601e87c19d5d909 linux-3.9.tar.xz
|
||||||
b364407a81f244408835c93ea3e23478 patch-3.10-rc6.xz
|
256e85b3ed08fbb679d2e26221c22192 patch-3.10-rc7.xz
|
||||||
|
@ -1,63 +0,0 @@
|
|||||||
Joshua reported: Commit cd7b304dfaf1 (x86, range: fix missing merge
|
|
||||||
during add range) broke mtrr cleanup on his setup in 3.9.5.
|
|
||||||
corresponding commit in upstream is fbe06b7bae7c.
|
|
||||||
|
|
||||||
*BAD*gran_size: 64K chunk_size: 16M num_reg: 6 lose cover RAM: -0G
|
|
||||||
|
|
||||||
https://bugzilla.kernel.org/show_bug.cgi?id=59491
|
|
||||||
|
|
||||||
So it rejects new var mtrr layout.
|
|
||||||
|
|
||||||
It turns out we have some problem with initial mtrr range retrievel.
|
|
||||||
current sequence is:
|
|
||||||
x86_get_mtrr_mem_range
|
|
||||||
==> bunchs of add_range_with_merge
|
|
||||||
==> bunchs of subract_range
|
|
||||||
==> clean_sort_range
|
|
||||||
add_range_with_merge for [0,1M)
|
|
||||||
sort_range()
|
|
||||||
|
|
||||||
add_range_with_merge could have blank slots, so we can not just
|
|
||||||
sort only, that will have final result have extra blank slot in head.
|
|
||||||
|
|
||||||
So move that calling add_range_with_merge for [0,1M), with that we
|
|
||||||
could avoid extra clean_sort_range calling.
|
|
||||||
|
|
||||||
Reported-by: Joshua Covington <joshuacov@googlemail.com>
|
|
||||||
Tested-by: Joshua Covington <joshuacov@googlemail.com>
|
|
||||||
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
|
|
||||||
Cc: <stable@vger.kernel.org> v3.9
|
|
||||||
|
|
||||||
---
|
|
||||||
arch/x86/kernel/cpu/mtrr/cleanup.c | 8 ++++----
|
|
||||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
Index: linux-2.6/arch/x86/kernel/cpu/mtrr/cleanup.c
|
|
||||||
===================================================================
|
|
||||||
--- linux-2.6.orig/arch/x86/kernel/cpu/mtrr/cleanup.c
|
|
||||||
+++ linux-2.6/arch/x86/kernel/cpu/mtrr/cleanup.c
|
|
||||||
@@ -714,15 +714,15 @@ int __init mtrr_cleanup(unsigned address
|
|
||||||
if (mtrr_tom2)
|
|
||||||
x_remove_size = (mtrr_tom2 >> PAGE_SHIFT) - x_remove_base;
|
|
||||||
|
|
||||||
- nr_range = x86_get_mtrr_mem_range(range, 0, x_remove_base, x_remove_size);
|
|
||||||
/*
|
|
||||||
* [0, 1M) should always be covered by var mtrr with WB
|
|
||||||
* and fixed mtrrs should take effect before var mtrr for it:
|
|
||||||
*/
|
|
||||||
- nr_range = add_range_with_merge(range, RANGE_NUM, nr_range, 0,
|
|
||||||
+ nr_range = add_range_with_merge(range, RANGE_NUM, 0, 0,
|
|
||||||
1ULL<<(20 - PAGE_SHIFT));
|
|
||||||
- /* Sort the ranges: */
|
|
||||||
- sort_range(range, nr_range);
|
|
||||||
+ /* add from var mtrr at last */
|
|
||||||
+ nr_range = x86_get_mtrr_mem_range(range, nr_range,
|
|
||||||
+ x_remove_base, x_remove_size);
|
|
||||||
|
|
||||||
range_sums = sum_ranges(range, nr_range);
|
|
||||||
printk(KERN_INFO "total RAM covered: %ldM\n",
|
|
||||||
--
|
|
||||||
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
|
|
||||||
the body of a message to majordomo@vger.kernel.org
|
|
||||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
|
||||||
Please read the FAQ at http://www.tux.org/lkml/
|
|
@ -1,80 +0,0 @@
|
|||||||
Now add_range_with_merge will generate blank slot as subtract_range.
|
|
||||||
we could reach the array limit because of blank slots.
|
|
||||||
|
|
||||||
We can let add_range to have second try to use blank slot.
|
|
||||||
|
|
||||||
Also use WARN_ONCE to print trace.
|
|
||||||
|
|
||||||
Reported-by: Joshua Covington <joshuacov@googlemail.com>
|
|
||||||
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
|
|
||||||
Cc: <stable@vger.kernel.org> v3.9
|
|
||||||
---
|
|
||||||
kernel/range.c | 34 ++++++++++++++++++++++------------
|
|
||||||
1 file changed, 22 insertions(+), 12 deletions(-)
|
|
||||||
|
|
||||||
Index: linux-2.6/kernel/range.c
|
|
||||||
===================================================================
|
|
||||||
--- linux-2.6.orig/kernel/range.c
|
|
||||||
+++ linux-2.6/kernel/range.c
|
|
||||||
@@ -3,23 +3,34 @@
|
|
||||||
*/
|
|
||||||
#include <linux/kernel.h>
|
|
||||||
#include <linux/init.h>
|
|
||||||
+#include <linux/bug.h>
|
|
||||||
#include <linux/sort.h>
|
|
||||||
-
|
|
||||||
#include <linux/range.h>
|
|
||||||
|
|
||||||
int add_range(struct range *range, int az, int nr_range, u64 start, u64 end)
|
|
||||||
{
|
|
||||||
- if (start >= end)
|
|
||||||
- return nr_range;
|
|
||||||
+ int i;
|
|
||||||
|
|
||||||
- /* Out of slots: */
|
|
||||||
- if (nr_range >= az)
|
|
||||||
+ if (start >= end)
|
|
||||||
return nr_range;
|
|
||||||
|
|
||||||
- range[nr_range].start = start;
|
|
||||||
- range[nr_range].end = end;
|
|
||||||
+ /* Out of slots ? */
|
|
||||||
+ if (nr_range < az) {
|
|
||||||
+ i = nr_range;
|
|
||||||
+ nr_range++;
|
|
||||||
+ } else {
|
|
||||||
+ /* find blank slot */
|
|
||||||
+ for (i = 0; i < az; i++)
|
|
||||||
+ if (!range[i].end)
|
|
||||||
+ break;
|
|
||||||
+ if (i == az) {
|
|
||||||
+ WARN_ONCE(1, "run out of slot in ranges\n");
|
|
||||||
+ return az;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- nr_range++;
|
|
||||||
+ range[i].start = start;
|
|
||||||
+ range[i].end = end;
|
|
||||||
|
|
||||||
return nr_range;
|
|
||||||
}
|
|
||||||
@@ -98,10 +109,9 @@ void subtract_range(struct range *range,
|
|
||||||
if (i < az) {
|
|
||||||
range[i].end = range[j].end;
|
|
||||||
range[i].start = end;
|
|
||||||
- } else {
|
|
||||||
- pr_err("%s: run out of slot in ranges\n",
|
|
||||||
- __func__);
|
|
||||||
- }
|
|
||||||
+ } else
|
|
||||||
+ WARN_ONCE(1, "run out of slot in ranges\n");
|
|
||||||
+
|
|
||||||
range[j].end = start;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
|
|
||||||
the body of a message to majordomo@vger.kernel.org
|
|
||||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
|
||||||
Please read the FAQ at http://www.tux.org/lkml/
|
|
Loading…
Reference in New Issue
Block a user