Linux v3.18-rc3
- Disable debugging options.
This commit is contained in:
parent
3b752c8c75
commit
a011ddd4b5
@ -33,10 +33,10 @@ index 199f453cb4de..ec38acf00b40 100644
|
||||
290/040 ALL edd_mbr_sig_buffer EDD MBR signatures
|
||||
2D0/A00 ALL e820_map E820 memory map table
|
||||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
||||
index f2327e88e07c..4ba047a782fd 100644
|
||||
index ded8a6774ac9..750d32268fb1 100644
|
||||
--- a/arch/x86/Kconfig
|
||||
+++ b/arch/x86/Kconfig
|
||||
@@ -1607,6 +1607,16 @@ config EFI_MIXED
|
||||
@@ -1611,6 +1611,16 @@ config EFI_MIXED
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
@ -129,10 +129,10 @@ index 225b0988043a..90dbfb73e11f 100644
|
||||
* The sentinel is set to a nonzero value (0xff) in header.S.
|
||||
*
|
||||
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
||||
index 235cfd39e0d7..13c0835f907a 100644
|
||||
index ab08aa2276fb..f4eb99432db1 100644
|
||||
--- a/arch/x86/kernel/setup.c
|
||||
+++ b/arch/x86/kernel/setup.c
|
||||
@@ -1151,6 +1151,12 @@ void __init setup_arch(char **cmdline_p)
|
||||
@@ -1150,6 +1150,12 @@ void __init setup_arch(char **cmdline_p)
|
||||
|
||||
io_delay_init();
|
||||
|
||||
|
@ -15,7 +15,7 @@ Upstream-status: Fedora mustard
|
||||
7 files changed, 65 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
||||
index fbae2bf99a47..f3960a8c2627 100644
|
||||
index bc31a43b31a0..5f80d12a55cb 100644
|
||||
--- a/arch/x86/kernel/setup.c
|
||||
+++ b/arch/x86/kernel/setup.c
|
||||
@@ -70,6 +70,11 @@
|
||||
|
@ -29,10 +29,10 @@ index 72665eb80692..2c7b80d31366 100644
|
||||
+
|
||||
#endif /* _KEYS_SYSTEM_KEYRING_H */
|
||||
diff --git a/init/Kconfig b/init/Kconfig
|
||||
index 3ee28ae02cc8..0bba9555e5ef 100644
|
||||
index 2081a4d3d917..d99a519bb9ae 100644
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -1733,6 +1733,15 @@ config SYSTEM_TRUSTED_KEYRING
|
||||
@@ -1747,6 +1747,15 @@ config SYSTEM_TRUSTED_KEYRING
|
||||
|
||||
Keys in this keyring are used by module signature checking.
|
||||
|
||||
|
@ -42,10 +42,10 @@ index b1d686e9175e..4d41f4532127 100644
|
||||
efi_guid_t guid;
|
||||
u64 table;
|
||||
diff --git a/init/Kconfig b/init/Kconfig
|
||||
index 0bba9555e5ef..0e1e8a14175a 100644
|
||||
index d99a519bb9ae..9ef459bb44b2 100644
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -1887,6 +1887,15 @@ config MODULE_SIG_ALL
|
||||
@@ -1901,6 +1901,15 @@ config MODULE_SIG_ALL
|
||||
comment "Do not forget to sign required modules with scripts/sign-file"
|
||||
depends on MODULE_SIG_FORCE && !MODULE_SIG_ALL
|
||||
|
||||
@ -62,7 +62,7 @@ index 0bba9555e5ef..0e1e8a14175a 100644
|
||||
prompt "Which hash algorithm should modules be signed with?"
|
||||
depends on MODULE_SIG
|
||||
diff --git a/kernel/Makefile b/kernel/Makefile
|
||||
index dc5c77544fd6..95bdf3398880 100644
|
||||
index 17ea6d4a9a24..381fe2d56ed1 100644
|
||||
--- a/kernel/Makefile
|
||||
+++ b/kernel/Makefile
|
||||
@@ -45,6 +45,7 @@ obj-$(CONFIG_UID16) += uid16.o
|
||||
|
@ -16,7 +16,7 @@ Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
3 files changed, 19 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
|
||||
index 92b6d9ab00e4..f77f893114a4 100644
|
||||
index 2c6643fdc0cf..56333630ab77 100644
|
||||
--- a/drivers/pci/pci-sysfs.c
|
||||
+++ b/drivers/pci/pci-sysfs.c
|
||||
@@ -30,6 +30,7 @@
|
||||
|
@ -15,10 +15,10 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
|
||||
index 74339c57b914..3251c36e0e5d 100644
|
||||
index 4c81a860cc2b..6e53352750b4 100644
|
||||
--- a/Documentation/kernel-parameters.txt
|
||||
+++ b/Documentation/kernel-parameters.txt
|
||||
@@ -3705,7 +3705,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
@@ -3719,7 +3719,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
the allocated input device; If set to 0, video driver
|
||||
will only send out the event without touching backlight
|
||||
brightness level.
|
||||
|
@ -1699,13 +1699,13 @@ CONFIG_B43_PCMCIA=y
|
||||
CONFIG_B43_SDIO=y
|
||||
CONFIG_B43_BCMA=y
|
||||
CONFIG_B43_BCMA_PIO=y
|
||||
CONFIG_B43_DEBUG=y
|
||||
# CONFIG_B43_DEBUG is not set
|
||||
CONFIG_B43_PHY_LP=y
|
||||
CONFIG_B43_PHY_N=y
|
||||
CONFIG_B43_PHY_HT=y
|
||||
CONFIG_B43_PHY_G=y
|
||||
CONFIG_B43LEGACY=m
|
||||
CONFIG_B43LEGACY_DEBUG=y
|
||||
# CONFIG_B43LEGACY_DEBUG is not set
|
||||
CONFIG_B43LEGACY_DMA=y
|
||||
CONFIG_B43LEGACY_PIO=y
|
||||
CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
|
||||
@ -4694,7 +4694,7 @@ CONFIG_PM_DEBUG=y
|
||||
# CONFIG_DPM_WATCHDOG is not set # revisit this in debug
|
||||
CONFIG_PM_TRACE=y
|
||||
CONFIG_PM_TRACE_RTC=y
|
||||
CONFIG_PM_TEST_SUSPEND=y
|
||||
# CONFIG_PM_TEST_SUSPEND is not set
|
||||
CONFIG_PM_RUNTIME=y
|
||||
# CONFIG_PM_OPP is not set
|
||||
# CONFIG_PM_AUTOSLEEP is not set
|
||||
|
112
config-nodebug
112
config-nodebug
@ -2,115 +2,115 @@ CONFIG_SND_VERBOSE_PRINTK=y
|
||||
CONFIG_SND_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_RT_MUTEXES=y
|
||||
CONFIG_DEBUG_LOCK_ALLOC=y
|
||||
CONFIG_LOCK_TORTURE_TEST=m
|
||||
CONFIG_PROVE_LOCKING=y
|
||||
CONFIG_DEBUG_SPINLOCK=y
|
||||
CONFIG_PROVE_RCU=y
|
||||
# CONFIG_DEBUG_MUTEXES is not set
|
||||
# CONFIG_DEBUG_RT_MUTEXES is not set
|
||||
# CONFIG_DEBUG_LOCK_ALLOC is not set
|
||||
# CONFIG_LOCK_TORTURE_TEST is not set
|
||||
# CONFIG_PROVE_LOCKING is not set
|
||||
# CONFIG_DEBUG_SPINLOCK is not set
|
||||
# CONFIG_PROVE_RCU 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_CPU_NOTIFIER_ERROR_INJECT=m
|
||||
# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
|
||||
|
||||
CONFIG_FAULT_INJECTION=y
|
||||
CONFIG_FAILSLAB=y
|
||||
CONFIG_FAIL_PAGE_ALLOC=y
|
||||
CONFIG_FAIL_MAKE_REQUEST=y
|
||||
CONFIG_FAULT_INJECTION_DEBUG_FS=y
|
||||
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
|
||||
CONFIG_FAIL_IO_TIMEOUT=y
|
||||
CONFIG_FAIL_MMC_REQUEST=y
|
||||
# CONFIG_FAULT_INJECTION is not set
|
||||
# CONFIG_FAILSLAB is not set
|
||||
# CONFIG_FAIL_PAGE_ALLOC is not set
|
||||
# CONFIG_FAIL_MAKE_REQUEST is not set
|
||||
# CONFIG_FAULT_INJECTION_DEBUG_FS is not set
|
||||
# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set
|
||||
# CONFIG_FAIL_IO_TIMEOUT is not set
|
||||
# CONFIG_FAIL_MMC_REQUEST 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_DEBUG_SG=y
|
||||
CONFIG_DEBUG_PI_LIST=y
|
||||
# CONFIG_DEBUG_SG is not set
|
||||
# CONFIG_DEBUG_PI_LIST is not set
|
||||
|
||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||
|
||||
CONFIG_DEBUG_OBJECTS=y
|
||||
# CONFIG_DEBUG_OBJECTS is not set
|
||||
# CONFIG_DEBUG_OBJECTS_SELFTEST is not set
|
||||
CONFIG_DEBUG_OBJECTS_FREE=y
|
||||
CONFIG_DEBUG_OBJECTS_TIMERS=y
|
||||
CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
|
||||
# CONFIG_DEBUG_OBJECTS_FREE is not set
|
||||
# CONFIG_DEBUG_OBJECTS_TIMERS is not set
|
||||
# CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set
|
||||
CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
|
||||
|
||||
CONFIG_X86_PTDUMP=y
|
||||
CONFIG_EFI_PGT_DUMP=y
|
||||
# CONFIG_X86_PTDUMP is not set
|
||||
# CONFIG_EFI_PGT_DUMP 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_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,
|
||||
# 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_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_CARL9170_DEBUGFS=y
|
||||
CONFIG_IWLWIFI_DEVICE_TRACING=y
|
||||
# CONFIG_ATH_DEBUG is not set
|
||||
# CONFIG_CARL9170_DEBUGFS is not set
|
||||
# CONFIG_IWLWIFI_DEVICE_TRACING 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_VDEBUG=y
|
||||
# CONFIG_DMADEVICES_DEBUG is not set
|
||||
# CONFIG_DMADEVICES_VDEBUG is not set
|
||||
|
||||
CONFIG_PM_ADVANCED_DEBUG=y
|
||||
|
||||
CONFIG_CEPH_LIB_PRETTYDEBUG=y
|
||||
CONFIG_QUOTA_DEBUG=y
|
||||
# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
|
||||
# CONFIG_QUOTA_DEBUG is not set
|
||||
|
||||
|
||||
CONFIG_KGDB_KDB=y
|
||||
CONFIG_KDB_KEYBOARD=y
|
||||
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
|
||||
|
||||
CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
|
||||
# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set
|
||||
# CONFIG_PERCPU_TEST is not set
|
||||
CONFIG_TEST_LIST_SORT=y
|
||||
# CONFIG_TEST_LIST_SORT 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_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_TEST is not set
|
||||
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
|
||||
@ -121,7 +121,7 @@ CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
|
||||
|
||||
# CONFIG_SPI_DEBUG is not set
|
||||
|
||||
CONFIG_X86_DEBUG_STATIC_CPU_HAS=y
|
||||
# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
|
||||
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_LATENCYTOP is not set
|
||||
|
@ -337,7 +337,7 @@ CONFIG_SP5100_TCO=m
|
||||
|
||||
# CONFIG_MEMTEST is not set
|
||||
# CONFIG_DEBUG_TLBFLUSH is not set
|
||||
CONFIG_MAXSMP=y
|
||||
# CONFIG_MAXSMP is not set
|
||||
|
||||
|
||||
CONFIG_HP_ILO=m
|
||||
|
@ -9,7 +9,7 @@ Upstream-status: Fedora mustard
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/init/Kconfig b/init/Kconfig
|
||||
index 0e1e8a14175a..71cd7226a78f 100644
|
||||
index 9ef459bb44b2..cc096e258a4a 100644
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -1149,7 +1149,7 @@ config DEBUG_BLK_CGROUP
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Bastien Nocera <hadess@hadess.net>
|
||||
1 file changed, 22 insertions(+)
|
||||
|
||||
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
|
||||
index 1160aa081d21..d75d0dcda6fb 100644
|
||||
index 9bb95eab6926..4b5015f27f9e 100644
|
||||
--- a/drivers/input/serio/i8042.c
|
||||
+++ b/drivers/input/serio/i8042.c
|
||||
@@ -1471,6 +1471,22 @@ static struct platform_driver i8042_driver = {
|
||||
|
@ -14,7 +14,7 @@ Upstream-status: http://lists.freedesktop.org/archives/intel-gfx/2013-November/0
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
|
||||
index c9e220963a78..9a705e52ab26 100644
|
||||
index f0a1a56406eb..e5fd8b9148a9 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_display.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_display.c
|
||||
@@ -10963,7 +10963,7 @@ check_crtc_state(struct drm_device *dev)
|
||||
|
@ -12,10 +12,10 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
2 files changed, 3 insertions(+)
|
||||
|
||||
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
||||
index 13c0835f907a..fbae2bf99a47 100644
|
||||
index f4eb99432db1..bc31a43b31a0 100644
|
||||
--- a/arch/x86/kernel/setup.c
|
||||
+++ b/arch/x86/kernel/setup.c
|
||||
@@ -1153,7 +1153,9 @@ void __init setup_arch(char **cmdline_p)
|
||||
@@ -1152,7 +1152,9 @@ void __init setup_arch(char **cmdline_p)
|
||||
|
||||
#ifdef CONFIG_EFI_SECURE_BOOT_SIG_ENFORCE
|
||||
if (boot_params.secure_boot) {
|
||||
|
@ -11,10 +11,10 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
||||
index 4ba047a782fd..749f58ba7e36 100644
|
||||
index 750d32268fb1..f560653b8c4f 100644
|
||||
--- a/arch/x86/Kconfig
|
||||
+++ b/arch/x86/Kconfig
|
||||
@@ -1608,7 +1608,8 @@ config EFI_MIXED
|
||||
@@ -1612,7 +1612,8 @@ config EFI_MIXED
|
||||
If unsure, say N.
|
||||
|
||||
config EFI_SECURE_BOOT_SIG_ENFORCE
|
||||
|
@ -61,7 +61,7 @@ Signed-off-by: Dmitry Monakhov <dmonakhov@xxxxxxxxxx>
|
||||
1 file changed, 95 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/fs/ext4/file.c b/fs/ext4/file.c
|
||||
index aca7b24a4432..8477eb259809 100644
|
||||
index 8131be8c0af3..dc7bd1b64c46 100644
|
||||
--- a/fs/ext4/file.c
|
||||
+++ b/fs/ext4/file.c
|
||||
@@ -88,6 +88,100 @@ ext4_unaligned_aio(struct inode *inode, struct iov_iter *from, loff_t pos)
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
|
||||
index a9dfa79b6bab..14c7356ff53a 100644
|
||||
index 1f35a3478f3c..5e2472fc3dda 100644
|
||||
--- a/kernel/power/hibernate.c
|
||||
+++ b/kernel/power/hibernate.c
|
||||
@@ -28,6 +28,7 @@
|
||||
|
@ -16,7 +16,7 @@ Upstream-status: Fedora mustard
|
||||
3 files changed, 2 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
|
||||
index 44973196d3fd..0179281a2517 100644
|
||||
index 9717d5f20139..a3101d2fd936 100644
|
||||
--- a/drivers/base/power/main.c
|
||||
+++ b/drivers/base/power/main.c
|
||||
@@ -122,8 +122,6 @@ void device_pm_unlock(void)
|
||||
@ -29,7 +29,7 @@ index 44973196d3fd..0179281a2517 100644
|
||||
if (dev->parent && dev->parent->power.is_prepared)
|
||||
dev_warn(dev, "parent %s should not be sleeping\n",
|
||||
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c
|
||||
index 9a97c2b10926..1160aa081d21 100644
|
||||
index f5a98af3b325..9bb95eab6926 100644
|
||||
--- a/drivers/input/serio/i8042.c
|
||||
+++ b/drivers/input/serio/i8042.c
|
||||
@@ -857,7 +857,6 @@ static int __init i8042_check_aux(void)
|
||||
|
@ -1,26 +1,3 @@
|
||||
commit fb3aa1c1644a73bc36a47a6844c3ee6414787e9e
|
||||
Author: Mark Salter <msalter@redhat.com>
|
||||
Date: Sun Oct 19 11:11:08 2014 -0400
|
||||
|
||||
clocksource: arm_arch_timer: fix system hang
|
||||
|
||||
Arm allows for two possible architectural clock sources. One memory mapped
|
||||
and the other coprocessor based. If both timers exist, then the driver waits
|
||||
for both to be probed before registering a clocksource.
|
||||
|
||||
Commit c387f07e6205 ("clocksource: arm_arch_timer: Discard unavailable timers
|
||||
correctly") attempted to fix a hang occurring when one of the two possible
|
||||
timers had a device node, but was disabled. In that case, the second probe
|
||||
would never occur and the system would hang without a clocksource being
|
||||
registered.
|
||||
|
||||
Unfortunately, incorrect logic in that commit made things worse such that
|
||||
a hang would occur unless both timers had a device node and were enabled.
|
||||
This patch fixes the logic so that we don't wait to probe a second timer
|
||||
unless it exists and is enabled.
|
||||
|
||||
Signed-off-by: Mark Salter <msalter@redhat.com>
|
||||
|
||||
commit 798bcf9c5057f0acd54154d09abf6fc4fc044e41
|
||||
Author: Mark Salter <msalter@redhat.com>
|
||||
Date: Tue Oct 14 13:51:54 2014 -0400
|
||||
@ -4706,25 +4683,6 @@ index 2133f9d..b73392b 100644
|
||||
if (cntbase)
|
||||
arch_timer_rate = readl_relaxed(cntbase + CNTFRQ);
|
||||
else
|
||||
@@ -660,13 +666,14 @@ static bool __init
|
||||
arch_timer_probed(int type, const struct of_device_id *matches)
|
||||
{
|
||||
struct device_node *dn;
|
||||
- bool probed = false;
|
||||
+ bool probed = true;
|
||||
|
||||
dn = of_find_matching_node(NULL, matches);
|
||||
- if (dn && of_device_is_available(dn) && (arch_timers_present & type))
|
||||
- probed = true;
|
||||
- of_node_put(dn);
|
||||
-
|
||||
+ if (dn) {
|
||||
+ if (of_device_is_available(dn) && !(arch_timers_present & type))
|
||||
+ probed = false;
|
||||
+ of_node_put(dn);
|
||||
+ }
|
||||
return probed;
|
||||
}
|
||||
|
||||
@@ -687,20 +694,8 @@ static void __init arch_timer_common_init(void)
|
||||
arch_timer_arch_init();
|
||||
@ -7318,9 +7276,9 @@ index 5e94d00..a6131a9 100644
|
||||
--- a/drivers/net/ethernet/smsc/smc91x.c
|
||||
+++ b/drivers/net/ethernet/smsc/smc91x.c
|
||||
@@ -81,6 +81,7 @@ static const char version[] =
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_gpio.h>
|
||||
+#include <linux/acpi.h>
|
||||
|
||||
#include <linux/netdevice.h>
|
||||
|
26
kernel.spec
26
kernel.spec
@ -67,9 +67,9 @@ Summary: The Linux kernel
|
||||
# The next upstream release sublevel (base_sublevel+1)
|
||||
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
|
||||
# The rc snapshot level
|
||||
%define rcrev 2
|
||||
%define rcrev 3
|
||||
# The git snapshot level
|
||||
%define gitrev 3
|
||||
%define gitrev 0
|
||||
# Set rpm version accordingly
|
||||
%define rpmversion 3.%{upstream_sublevel}.0
|
||||
%endif
|
||||
@ -124,7 +124,7 @@ Summary: The Linux kernel
|
||||
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
|
||||
# and 0 for rawhide (all kernels are debug kernels).
|
||||
# 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?
|
||||
%define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
|
||||
@ -602,8 +602,6 @@ Patch22000: weird-root-dentry-name-debug.patch
|
||||
# Patch series from Hans for various backlight and platform driver fixes
|
||||
Patch26002: samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch
|
||||
|
||||
Patch26035: nf_reject_ipv4-module-license-unspecified-taints-ker.patch
|
||||
|
||||
#rhbz 1149509
|
||||
Patch26036: USB-quirks-enable-device-qualifier-quirk-for-another.patch
|
||||
Patch26038: USB-quirks-device-qualifier-quirk-for-another-Elan-t.patch
|
||||
@ -618,12 +616,12 @@ Patch26058: asus-nb-wmi-Add-wapf4-quirk-for-the-X550VB.patch
|
||||
#rhbz 1111138
|
||||
Patch26059: i8042-Add-notimeout-quirk-for-Fujitsu-Lifebook-A544-.patch
|
||||
|
||||
Patch26060: rcu-More-on-deadlock-between-CPU-hotplug-and-expedit.patch
|
||||
Patch26061: rcu-Make-rcu_barrier-understand-about-missing-rcuo-k.patch
|
||||
|
||||
#rhbz 1157327
|
||||
Patch26062: quirk-for-Lenovo-Yoga-3-no-rfkill-switch.patch
|
||||
|
||||
#rhbz 1158204 1157157
|
||||
Patch26063: x86-microcode-AMD-Fix-early-ucode-loading-on-32-bit.patch
|
||||
|
||||
# git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
|
||||
Patch30000: kernel-arm64.patch
|
||||
|
||||
@ -1335,8 +1333,6 @@ ApplyPatch ath9k-rx-dma-stop-check.patch
|
||||
# Patch series from Hans for various backlight and platform driver fixes
|
||||
ApplyPatch samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch
|
||||
|
||||
ApplyPatch nf_reject_ipv4-module-license-unspecified-taints-ker.patch
|
||||
|
||||
#rhbz 1149509
|
||||
ApplyPatch USB-quirks-enable-device-qualifier-quirk-for-another.patch
|
||||
ApplyPatch USB-quirks-device-qualifier-quirk-for-another-Elan-t.patch
|
||||
@ -1351,12 +1347,12 @@ ApplyPatch asus-nb-wmi-Add-wapf4-quirk-for-the-X550VB.patch
|
||||
#rhbz 1111138
|
||||
ApplyPatch i8042-Add-notimeout-quirk-for-Fujitsu-Lifebook-A544-.patch
|
||||
|
||||
ApplyPatch rcu-More-on-deadlock-between-CPU-hotplug-and-expedit.patch
|
||||
ApplyPatch rcu-Make-rcu_barrier-understand-about-missing-rcuo-k.patch
|
||||
|
||||
#rhbz 1157327
|
||||
ApplyPatch quirk-for-Lenovo-Yoga-3-no-rfkill-switch.patch
|
||||
|
||||
#rhbz 1158204 1157157
|
||||
ApplyPatch x86-microcode-AMD-Fix-early-ucode-loading-on-32-bit.patch
|
||||
|
||||
%if 0%{?aarch64patches}
|
||||
ApplyPatch kernel-arm64.patch
|
||||
%ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does.
|
||||
@ -2225,6 +2221,10 @@ fi
|
||||
# ||----w |
|
||||
# || ||
|
||||
%changelog
|
||||
* Mon Nov 03 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.18.0-0.rc3.git0.1
|
||||
- Linux v3.18-rc3
|
||||
- Disable debugging options.
|
||||
|
||||
* Thu Oct 30 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.18.0-0.rc2.git3.1
|
||||
- Linux v3.18-rc2-106-ga7ca10f263d7
|
||||
|
||||
|
@ -1,84 +0,0 @@
|
||||
From: Pablo Neira <pablo@netfilter.org>
|
||||
Date: Fri, 10 Oct 2014 11:56:16 +0200
|
||||
Subject: [PATCH] nf_reject_ipv4: module license 'unspecified' taints kernel
|
||||
|
||||
On Fri, Oct 10, 2014 at 05:19:04PM +0800, Dave Young wrote:
|
||||
> Hi,
|
||||
>
|
||||
> With today's linus tree, I got below kmsg:
|
||||
> [ 23.545204] nf_reject_ipv4: module license 'unspecified' taints kernel.
|
||||
>
|
||||
> It could be caused by below commit:
|
||||
>
|
||||
> commit c8d7b98bec43faaa6583c3135030be5eb4693acb
|
||||
> Author: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
> Date: Fri Sep 26 14:35:15 2014 +0200
|
||||
>
|
||||
> netfilter: move nf_send_resetX() code to nf_reject_ipvX modules
|
||||
>
|
||||
> Move nf_send_reset() and nf_send_reset6() to nf_reject_ipv4 and
|
||||
> nf_reject_ipv6 respectively. This code is shared by x_tables and
|
||||
> nf_tables.
|
||||
>
|
||||
> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
|
||||
Patch attached, thanks for reporting.
|
||||
|
||||
P.S: Please, Cc netfilter-devel@vger.kernel.org in future reports, so
|
||||
we make sure things don't get lost.
|
||||
|
||||
>From d4358bcf64ba7a64d4de4e1dc5533c4c8f88ea82 Mon Sep 17 00:00:00 2001
|
||||
From: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
Date: Fri, 10 Oct 2014 11:25:20 +0200
|
||||
Subject: [PATCH] netfilter: missing module license in the nf_reject_ipvX
|
||||
modules
|
||||
|
||||
[ 23.545204] nf_reject_ipv4: module license 'unspecified' taints kernel.
|
||||
|
||||
Reported-by: Dave Young <dyoung@redhat.com>
|
||||
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
---
|
||||
net/ipv4/netfilter/nf_reject_ipv4.c | 3 +++
|
||||
net/ipv6/netfilter/nf_reject_ipv6.c | 4 ++++
|
||||
2 files changed, 7 insertions(+)
|
||||
|
||||
diff --git a/net/ipv4/netfilter/nf_reject_ipv4.c b/net/ipv4/netfilter/nf_reject_ipv4.c
|
||||
index b023b4eb1a96..92b303dbd5fc 100644
|
||||
--- a/net/ipv4/netfilter/nf_reject_ipv4.c
|
||||
+++ b/net/ipv4/netfilter/nf_reject_ipv4.c
|
||||
@@ -6,6 +6,7 @@
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
+#include <linux/module.h>
|
||||
#include <net/ip.h>
|
||||
#include <net/tcp.h>
|
||||
#include <net/route.h>
|
||||
@@ -125,3 +126,5 @@ void nf_send_reset(struct sk_buff *oldskb, int hook)
|
||||
kfree_skb(nskb);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(nf_send_reset);
|
||||
+
|
||||
+MODULE_LICENSE("GPL");
|
||||
diff --git a/net/ipv6/netfilter/nf_reject_ipv6.c b/net/ipv6/netfilter/nf_reject_ipv6.c
|
||||
index 5f5f0438d74d..20d9defc6c59 100644
|
||||
--- a/net/ipv6/netfilter/nf_reject_ipv6.c
|
||||
+++ b/net/ipv6/netfilter/nf_reject_ipv6.c
|
||||
@@ -5,6 +5,8 @@
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
+
|
||||
+#include <linux/module.h>
|
||||
#include <net/ipv6.h>
|
||||
#include <net/ip6_route.h>
|
||||
#include <net/ip6_fib.h>
|
||||
@@ -161,3 +163,5 @@ void nf_send_reset6(struct net *net, struct sk_buff *oldskb, int hook)
|
||||
ip6_local_out(nskb);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(nf_send_reset6);
|
||||
+
|
||||
+MODULE_LICENSE("GPL");
|
||||
--
|
||||
1.9.3
|
||||
|
@ -1,177 +0,0 @@
|
||||
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
|
||||
Date: Mon, 27 Oct 2014 09:15:54 -0700
|
||||
Subject: [PATCH] rcu: Make rcu_barrier() understand about missing rcuo
|
||||
kthreads
|
||||
|
||||
Commit 35ce7f29a44a (rcu: Create rcuo kthreads only for onlined CPUs)
|
||||
avoids creating rcuo kthreads for CPUs that never come online. This
|
||||
fixes a bug in many instances of firmware: Instead of lying about their
|
||||
age, these systems instead lie about the number of CPUs that they have.
|
||||
Before commit 35ce7f29a44a, this could result in huge numbers of useless
|
||||
rcuo kthreads being created.
|
||||
|
||||
It appears that experience indicates that I should have told the
|
||||
people suffering from this problem to fix their broken firmware, but
|
||||
I instead produced what turned out to be a partial fix. The missing
|
||||
piece supplied by this commit makes sure that rcu_barrier() knows not to
|
||||
post callbacks for no-CBs CPUs that have not yet come online, because
|
||||
otherwise rcu_barrier() will hang on systems having firmware that lies
|
||||
about the number of CPUs.
|
||||
|
||||
It is tempting to simply have rcu_barrier() refuse to post a callback on
|
||||
any no-CBs CPU that does not have an rcuo kthread. This unfortunately
|
||||
does not work because rcu_barrier() is required to wait for all pending
|
||||
callbacks. It is therefore required to wait even for those callbacks
|
||||
that cannot possibly be invoked. Even if doing so hangs the system.
|
||||
|
||||
Given that posting a callback to a no-CBs CPU that does not yet have an
|
||||
rcuo kthread can hang rcu_barrier(), It is tempting to report an error
|
||||
in this case. Unfortunately, this will result in false positives at
|
||||
boot time, when it is perfectly legal to post callbacks to the boot CPU
|
||||
before the scheduler has started, in other words, before it is legal
|
||||
to invoke rcu_barrier().
|
||||
|
||||
So this commit instead has rcu_barrier() avoid posting callbacks to
|
||||
CPUs having neither rcuo kthread nor pending callbacks, and has it
|
||||
complain bitterly if it finds CPUs having no rcuo kthread but some
|
||||
pending callbacks. And when rcu_barrier() does find CPUs having no rcuo
|
||||
kthread but pending callbacks, as noted earlier, it has no choice but
|
||||
to hang indefinitely.
|
||||
|
||||
Reported-by: Yanko Kaneti <yaneti@declera.com>
|
||||
Reported-by: Jay Vosburgh <jay.vosburgh@canonical.com>
|
||||
Reported-by: Meelis Roos <mroos@linux.ee>
|
||||
Reported-by: Eric B Munson <emunson@akamai.com>
|
||||
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
|
||||
Tested-by: Eric B Munson <emunson@akamai.com>
|
||||
---
|
||||
include/trace/events/rcu.h | 18 +++++++++---------
|
||||
kernel/rcu/tree.c | 15 ++++++++++-----
|
||||
kernel/rcu/tree.h | 1 +
|
||||
kernel/rcu/tree_plugin.h | 33 +++++++++++++++++++++++++++++++++
|
||||
4 files changed, 53 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/include/trace/events/rcu.h b/include/trace/events/rcu.h
|
||||
index 9b56f37148cf..e335e7d8c6c2 100644
|
||||
--- a/include/trace/events/rcu.h
|
||||
+++ b/include/trace/events/rcu.h
|
||||
@@ -660,18 +660,18 @@ TRACE_EVENT(rcu_torture_read,
|
||||
/*
|
||||
* Tracepoint for _rcu_barrier() execution. The string "s" describes
|
||||
* the _rcu_barrier phase:
|
||||
- * "Begin": rcu_barrier_callback() started.
|
||||
- * "Check": rcu_barrier_callback() checking for piggybacking.
|
||||
- * "EarlyExit": rcu_barrier_callback() piggybacked, thus early exit.
|
||||
- * "Inc1": rcu_barrier_callback() piggyback check counter incremented.
|
||||
- * "Offline": rcu_barrier_callback() found offline CPU
|
||||
- * "OnlineNoCB": rcu_barrier_callback() found online no-CBs CPU.
|
||||
- * "OnlineQ": rcu_barrier_callback() found online CPU with callbacks.
|
||||
- * "OnlineNQ": rcu_barrier_callback() found online CPU, no callbacks.
|
||||
+ * "Begin": _rcu_barrier() started.
|
||||
+ * "Check": _rcu_barrier() checking for piggybacking.
|
||||
+ * "EarlyExit": _rcu_barrier() piggybacked, thus early exit.
|
||||
+ * "Inc1": _rcu_barrier() piggyback check counter incremented.
|
||||
+ * "OfflineNoCB": _rcu_barrier() found callback on never-online CPU
|
||||
+ * "OnlineNoCB": _rcu_barrier() found online no-CBs CPU.
|
||||
+ * "OnlineQ": _rcu_barrier() found online CPU with callbacks.
|
||||
+ * "OnlineNQ": _rcu_barrier() found online CPU, no callbacks.
|
||||
* "IRQ": An rcu_barrier_callback() callback posted on remote CPU.
|
||||
* "CB": An rcu_barrier_callback() invoked a callback, not the last.
|
||||
* "LastCB": An rcu_barrier_callback() invoked the last callback.
|
||||
- * "Inc2": rcu_barrier_callback() piggyback check counter incremented.
|
||||
+ * "Inc2": _rcu_barrier() piggyback check counter incremented.
|
||||
* The "cpu" argument is the CPU or -1 if meaningless, the "cnt" argument
|
||||
* is the count of remaining callbacks, and "done" is the piggybacking count.
|
||||
*/
|
||||
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
|
||||
index 133e47223095..9815447d22e0 100644
|
||||
--- a/kernel/rcu/tree.c
|
||||
+++ b/kernel/rcu/tree.c
|
||||
@@ -3299,11 +3299,16 @@ static void _rcu_barrier(struct rcu_state *rsp)
|
||||
continue;
|
||||
rdp = per_cpu_ptr(rsp->rda, cpu);
|
||||
if (rcu_is_nocb_cpu(cpu)) {
|
||||
- _rcu_barrier_trace(rsp, "OnlineNoCB", cpu,
|
||||
- rsp->n_barrier_done);
|
||||
- atomic_inc(&rsp->barrier_cpu_count);
|
||||
- __call_rcu(&rdp->barrier_head, rcu_barrier_callback,
|
||||
- rsp, cpu, 0);
|
||||
+ if (!rcu_nocb_cpu_needs_barrier(rsp, cpu)) {
|
||||
+ _rcu_barrier_trace(rsp, "OfflineNoCB", cpu,
|
||||
+ rsp->n_barrier_done);
|
||||
+ } else {
|
||||
+ _rcu_barrier_trace(rsp, "OnlineNoCB", cpu,
|
||||
+ rsp->n_barrier_done);
|
||||
+ atomic_inc(&rsp->barrier_cpu_count);
|
||||
+ __call_rcu(&rdp->barrier_head,
|
||||
+ rcu_barrier_callback, rsp, cpu, 0);
|
||||
+ }
|
||||
} else if (ACCESS_ONCE(rdp->qlen)) {
|
||||
_rcu_barrier_trace(rsp, "OnlineQ", cpu,
|
||||
rsp->n_barrier_done);
|
||||
diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
|
||||
index d03764652d91..bbdc45d8d74f 100644
|
||||
--- a/kernel/rcu/tree.h
|
||||
+++ b/kernel/rcu/tree.h
|
||||
@@ -587,6 +587,7 @@ static void print_cpu_stall_info(struct rcu_state *rsp, int cpu);
|
||||
static void print_cpu_stall_info_end(void);
|
||||
static void zero_cpu_stall_ticks(struct rcu_data *rdp);
|
||||
static void increment_cpu_stall_ticks(void);
|
||||
+static bool rcu_nocb_cpu_needs_barrier(struct rcu_state *rsp, int cpu);
|
||||
static void rcu_nocb_gp_set(struct rcu_node *rnp, int nrq);
|
||||
static void rcu_nocb_gp_cleanup(struct rcu_state *rsp, struct rcu_node *rnp);
|
||||
static void rcu_init_one_nocb(struct rcu_node *rnp);
|
||||
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
|
||||
index 387dd4599344..c1d7f27bd38f 100644
|
||||
--- a/kernel/rcu/tree_plugin.h
|
||||
+++ b/kernel/rcu/tree_plugin.h
|
||||
@@ -2050,6 +2050,33 @@ static void wake_nocb_leader(struct rcu_data *rdp, bool force)
|
||||
}
|
||||
|
||||
/*
|
||||
+ * Does the specified CPU need an RCU callback for the specified flavor
|
||||
+ * of rcu_barrier()?
|
||||
+ */
|
||||
+static bool rcu_nocb_cpu_needs_barrier(struct rcu_state *rsp, int cpu)
|
||||
+{
|
||||
+ struct rcu_data *rdp = per_cpu_ptr(rsp->rda, cpu);
|
||||
+ struct rcu_head *rhp;
|
||||
+
|
||||
+ /* No-CBs CPUs might have callbacks on any of three lists. */
|
||||
+ rhp = ACCESS_ONCE(rdp->nocb_head);
|
||||
+ if (!rhp)
|
||||
+ rhp = ACCESS_ONCE(rdp->nocb_gp_head);
|
||||
+ if (!rhp)
|
||||
+ rhp = ACCESS_ONCE(rdp->nocb_follower_head);
|
||||
+
|
||||
+ /* Having no rcuo kthread but CBs after scheduler starts is bad! */
|
||||
+ if (!ACCESS_ONCE(rdp->nocb_kthread) && rhp) {
|
||||
+ /* RCU callback enqueued before CPU first came online??? */
|
||||
+ pr_err("RCU: Never-onlined no-CBs CPU %d has CB %p\n",
|
||||
+ cpu, rhp->func);
|
||||
+ WARN_ON_ONCE(1);
|
||||
+ }
|
||||
+
|
||||
+ return !!rhp;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
* Enqueue the specified string of rcu_head structures onto the specified
|
||||
* CPU's no-CBs lists. The CPU is specified by rdp, the head of the
|
||||
* string by rhp, and the tail of the string by rhtp. The non-lazy/lazy
|
||||
@@ -2642,6 +2669,12 @@ static bool init_nocb_callback_list(struct rcu_data *rdp)
|
||||
|
||||
#else /* #ifdef CONFIG_RCU_NOCB_CPU */
|
||||
|
||||
+static bool rcu_nocb_cpu_needs_barrier(struct rcu_state *rsp, int cpu)
|
||||
+{
|
||||
+ WARN_ON_ONCE(1); /* Should be dead code. */
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
static void rcu_nocb_gp_cleanup(struct rcu_state *rsp, struct rcu_node *rnp)
|
||||
{
|
||||
}
|
||||
--
|
||||
1.9.3
|
||||
|
@ -1,67 +0,0 @@
|
||||
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
|
||||
Date: Wed, 22 Oct 2014 10:00:05 -0700
|
||||
Subject: [PATCH] rcu: More on deadlock between CPU hotplug and expedited grace
|
||||
periods
|
||||
|
||||
Commit dd56af42bd82 (rcu: Eliminate deadlock between CPU hotplug and
|
||||
expedited grace periods) was incomplete. Although it did eliminate
|
||||
deadlocks involving synchronize_sched_expedited()'s acquisition of
|
||||
cpu_hotplug.lock via get_online_cpus(), it did nothing about the similar
|
||||
deadlock involving acquisition of this same lock via put_online_cpus().
|
||||
This deadlock became apparent with testing involving hibernation.
|
||||
|
||||
This commit therefore changes put_online_cpus() acquisition of this lock
|
||||
to be conditional, and increments a new cpu_hotplug.puts_pending field
|
||||
in case of acquisition failure. Then cpu_hotplug_begin() checks for this
|
||||
new field being non-zero, and applies any changes to cpu_hotplug.refcount.
|
||||
|
||||
Reported-by: Jiri Kosina <jkosina@suse.cz>
|
||||
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
|
||||
Tested-by: Jiri Kosina <jkosina@suse.cz>
|
||||
Tested-by: Borislav Petkov <bp@suse.de>
|
||||
---
|
||||
kernel/cpu.c | 14 +++++++++++++-
|
||||
1 file changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/kernel/cpu.c b/kernel/cpu.c
|
||||
index 356450f09c1f..90a3d017b90c 100644
|
||||
--- a/kernel/cpu.c
|
||||
+++ b/kernel/cpu.c
|
||||
@@ -64,6 +64,8 @@ static struct {
|
||||
* an ongoing cpu hotplug operation.
|
||||
*/
|
||||
int refcount;
|
||||
+ /* And allows lockless put_online_cpus(). */
|
||||
+ atomic_t puts_pending;
|
||||
|
||||
#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
||||
struct lockdep_map dep_map;
|
||||
@@ -113,7 +115,11 @@ void put_online_cpus(void)
|
||||
{
|
||||
if (cpu_hotplug.active_writer == current)
|
||||
return;
|
||||
- mutex_lock(&cpu_hotplug.lock);
|
||||
+ if (!mutex_trylock(&cpu_hotplug.lock)) {
|
||||
+ atomic_inc(&cpu_hotplug.puts_pending);
|
||||
+ cpuhp_lock_release();
|
||||
+ return;
|
||||
+ }
|
||||
|
||||
if (WARN_ON(!cpu_hotplug.refcount))
|
||||
cpu_hotplug.refcount++; /* try to fix things up */
|
||||
@@ -155,6 +161,12 @@ void cpu_hotplug_begin(void)
|
||||
cpuhp_lock_acquire();
|
||||
for (;;) {
|
||||
mutex_lock(&cpu_hotplug.lock);
|
||||
+ if (atomic_read(&cpu_hotplug.puts_pending)) {
|
||||
+ int delta;
|
||||
+
|
||||
+ delta = atomic_xchg(&cpu_hotplug.puts_pending, 0);
|
||||
+ cpu_hotplug.refcount -= delta;
|
||||
+ }
|
||||
if (likely(!cpu_hotplug.refcount))
|
||||
break;
|
||||
__set_current_state(TASK_UNINTERRUPTIBLE);
|
||||
--
|
||||
1.9.3
|
||||
|
@ -9,10 +9,10 @@ Upstream-status: Fedora mustard
|
||||
1 file changed, 17 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
|
||||
index 57b1d44acbfe..31048a85713d 100644
|
||||
index eb976ee3a02f..275f20a643f4 100644
|
||||
--- a/drivers/video/console/fbcon.c
|
||||
+++ b/drivers/video/console/fbcon.c
|
||||
@@ -638,13 +638,15 @@ static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info,
|
||||
@@ -637,13 +637,15 @@ static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info,
|
||||
kfree(save);
|
||||
}
|
||||
|
||||
@ -35,7 +35,7 @@ index 57b1d44acbfe..31048a85713d 100644
|
||||
}
|
||||
}
|
||||
#endif /* MODULE */
|
||||
@@ -3625,6 +3627,14 @@ static int __init fb_console_init(void)
|
||||
@@ -3624,6 +3626,14 @@ static int __init fb_console_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
3
sources
3
sources
@ -1,4 +1,3 @@
|
||||
fb30d0f29214d75cddd2faa94f73d5cf linux-3.17.tar.xz
|
||||
159e969cbc27201d8e2fa0f609dc722f perf-man-3.17.tar.gz
|
||||
cdc96388a5c70f5f385925caab06db12 patch-3.18-rc2.xz
|
||||
997764b2f1f4a94bb11c4f4f19a46c77 patch-3.18-rc2-git3.xz
|
||||
84109345d207976c0a899b1d29bfeddd patch-3.18-rc3.xz
|
||||
|
55
x86-microcode-AMD-Fix-early-ucode-loading-on-32-bit.patch
Normal file
55
x86-microcode-AMD-Fix-early-ucode-loading-on-32-bit.patch
Normal file
@ -0,0 +1,55 @@
|
||||
From: Borislav Petkov <bp@alien8.de>
|
||||
Date: Sat, 1 Nov 2014 11:01:00 +0100
|
||||
Subject: [PATCH] x86, microcode, AMD: Fix early ucode loading on 32-bit
|
||||
|
||||
Hi guys,
|
||||
|
||||
please queue this for the next batch to Linus.
|
||||
|
||||
Thanks.
|
||||
---
|
||||
arch/x86/kernel/cpu/microcode/amd_early.c | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/kernel/cpu/microcode/amd_early.c b/arch/x86/kernel/cpu/microcode/amd_early.c
|
||||
index 7aa1acc79789..8b75f7050129 100644
|
||||
--- a/arch/x86/kernel/cpu/microcode/amd_early.c
|
||||
+++ b/arch/x86/kernel/cpu/microcode/amd_early.c
|
||||
@@ -348,6 +348,7 @@ int __init save_microcode_in_initrd_amd(void)
|
||||
{
|
||||
unsigned long cont;
|
||||
enum ucode_state ret;
|
||||
+ u8 *cont_va;
|
||||
u32 eax;
|
||||
|
||||
if (!container)
|
||||
@@ -355,13 +356,15 @@ int __init save_microcode_in_initrd_amd(void)
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
get_bsp_sig();
|
||||
- cont = (unsigned long)container;
|
||||
+ cont = (unsigned long)container;
|
||||
+ cont_va = __va(container);
|
||||
#else
|
||||
/*
|
||||
* We need the physical address of the container for both bitness since
|
||||
* boot_params.hdr.ramdisk_image is a physical address.
|
||||
*/
|
||||
- cont = __pa(container);
|
||||
+ cont = __pa(container);
|
||||
+ cont_va = container;
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -372,6 +375,8 @@ int __init save_microcode_in_initrd_amd(void)
|
||||
if (relocated_ramdisk)
|
||||
container = (u8 *)(__va(relocated_ramdisk) +
|
||||
(cont - boot_params.hdr.ramdisk_image));
|
||||
+ else
|
||||
+ container = cont_va;
|
||||
|
||||
if (ucode_new_rev)
|
||||
pr_info("microcode: updated early to new patch_level=0x%08x\n",
|
||||
--
|
||||
1.9.3
|
||||
|
Loading…
Reference in New Issue
Block a user