linux/drivers
Don Zickus 4a7863cc2e x86, nmi_watchdog: Remove ARCH_HAS_NMI_WATCHDOG and rely on CONFIG_HARDLOCKUP_DETECTOR
The x86 arch has shifted its use of the nmi_watchdog from a
local implementation to the global one provide by
kernel/watchdog.c.  This shift has caused a whole bunch of
compile problems under different config options.  I attempt to
simplify things with the patch below.

In order to simplify things, I had to come to terms with the
meaning of two terms ARCH_HAS_NMI_WATCHDOG and
CONFIG_HARDLOCKUP_DETECTOR.  Basically they mean the same thing,
the former on a local level and the latter on a global level.

With the old x86 nmi watchdog gone, there is no need to rely on
defining the ARCH_HAS_NMI_WATCHDOG variable because it doesn't
make sense any more.  x86 will now use the global
implementation.

The changes below do a few things.  First it changes the few
places that relied on ARCH_HAS_NMI_WATCHDOG to use
CONFIG_X86_LOCAL_APIC (the former was an alias for the latter
anyway, so nothing unusual here).  Those pieces of code were
relying more on local apic functionality the nmi watchdog
functionality, so the change should make sense.

Second, I removed the x86 implementation of
touch_nmi_watchdog().  It isn't need now, instead x86 will rely
on kernel/watchdog.c's implementation.

Third, I removed the #define ARCH_HAS_NMI_WATCHDOG itself from
x86.  And tweaked the include/linux/nmi.h file to tell users to
look for an externally defined touch_nmi_watchdog in the case of
ARCH_HAS_NMI_WATCHDOG _or_ CONFIG_HARDLOCKUP_DETECTOR. This
changes removes some of the ugliness in that file.

Finally, I added a Kconfig dependency for
CONFIG_HARDLOCKUP_DETECTOR that said you can't have
ARCH_HAS_NMI_WATCHDOG _and_ CONFIG_HARDLOCKUP_DETECTOR.  You can
only have one nmi_watchdog.

Tested with
ARCH=i386: allnoconfig, defconfig, allyesconfig, (various broken
configs) ARCH=x86_64: allnoconfig, defconfig, allyesconfig,
(various broken configs)

Hopefully, after this patch I won't get any more compile broken
emails. :-)

v3:
  changed a couple of 'linux/nmi.h' -> 'asm/nmi.h' to pick-up correct function
  prototypes when CONFIG_HARDLOCKUP_DETECTOR is not set.

Signed-off-by: Don Zickus <dzickus@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: fweisbec@gmail.com
LKML-Reference: <1293044403-14117-1-git-send-email-dzickus@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2010-12-22 22:15:32 +01:00
..
accessibility
acpi Merge commit 'v2.6.37-rc7' into perf/core 2010-12-22 11:53:23 +01:00
amba
ata
atm atm: correct sysfs 'device' link creation and parent relationships 2010-12-10 15:45:05 -08:00
auxdisplay
base
block Fix build error in drivers/block/cciss.c 2010-12-20 21:21:49 -08:00
bluetooth Bluetooth: Add new PID for Atheros 3011 2010-12-01 15:51:01 -02:00
cdrom
char agp/intel: Fix wrong kunmap in i830_cleanup() 2010-12-05 10:40:17 +00:00
clocksource clocksource: sh_cmt: Remove nested spinlock fix 2010-12-17 19:38:33 +09:00
connector connector: add module alias 2010-12-10 12:27:49 -08:00
cpufreq
cpuidle
crypto
dca
dio
dma Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx 2010-12-14 13:35:47 -08:00
edac amd64_edac: Fix interleaving check 2010-12-08 19:52:54 +01:00
eisa
firewire firewire: ohci: fix regression with Agere FW643 rev 06, disable MSI 2010-12-12 15:47:02 +01:00
firmware
gpio cs5535-gpio: apply CS5536 errata workaround for GPIOs 2010-12-02 14:51:15 -08:00
gpu drm/radeon/kms: don't apply 7xx HDP flush workaround on AGP 2010-12-09 17:59:24 +10:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2010-12-02 17:40:04 -08:00
hwmon Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/staging 2010-12-14 13:36:26 -08:00
i2c i2c_intel_mid: Fix slash in sysfs name 2010-12-14 18:46:01 -08:00
ide
idle intel_idle: recognize ARAT on WSM-EX 2010-12-02 01:19:32 -05:00
ieee802154
infiniband IB/uverbs: Handle large number of entries in poll CQ 2010-12-08 15:23:49 -08:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-12-16 08:33:44 -08:00
isdn
leds leds: fix up dependencies 2010-12-02 14:51:15 -08:00
lguest
macintosh leds: fix up dependencies 2010-12-02 14:51:15 -08:00
mca
md Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2010-12-20 09:19:46 -08:00
media Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2010-12-20 10:35:04 -08:00
memstick
message
mfd
misc
mmc
mtd Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 2010-12-14 17:36:35 -08:00
net xen: Provide a variant of __RING_SIZE() that is an integer constant expression 2010-12-15 12:34:28 -08:00
nubus
of
oprofile
parisc parisc: KittyHawk LCD fix 2010-12-04 11:18:25 -05:00
parport
pci Merge branches 'x86-fixes-for-linus' and 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-12-19 10:44:54 -08:00
pcmcia ARM: 6456/1: Fix for building DEBUG with sa11xx_base.c as a module. 2010-12-04 12:47:48 +00:00
platform wmi: use memcmp instead of strncmp to compare GUIDs 2010-12-06 17:19:13 -05:00
pnp ACPI/PNP: avoid section mismatch warning 2010-12-11 02:01:47 -05:00
power
pps
ps3
rapidio
regulator regulator: tps6586x: correct register table 2010-12-09 09:23:43 +00:00
rtc
s390 [SCSI] zfcp: Issue FCP command without holding SCSI host_lock 2010-12-09 09:41:23 -06:00
sbus
scsi Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2010-12-20 09:19:46 -08:00
serial Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb 2010-12-14 14:35:04 -08:00
sfi
sh
sn
spi dw_spi: Fix missing final read in some polling situations 2010-12-14 18:48:59 -08:00
ssb
staging Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2010-12-20 10:35:04 -08:00
tc
telephony
thermal
tty n_gsm: gsm_data_alloc buffer allocation could fail and it is not being checked 2010-12-16 13:03:13 -08:00
uio
usb Merge branch 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 2010-12-20 21:33:12 -08:00
uwb
vhost
video Merge branch 'for-paul-rc' of git://gitorious.org/linux-omap-dss2/linux into fbdev-fixes-for-linus 2010-12-16 23:38:41 +09:00
virtio
vlynq
w1
watchdog x86, nmi_watchdog: Remove ARCH_HAS_NMI_WATCHDOG and rely on CONFIG_HARDLOCKUP_DETECTOR 2010-12-22 22:15:32 +01:00
xen Merge branch '2.6.37-rc4-pvhvm-fixes' of git://xenbits.xen.org/people/sstabellini/linux-pvhvm 2010-12-03 11:30:57 -08:00
zorro
Kconfig
Makefile