linux/drivers/misc
Jason Wessel 456ca7ff24 kgdbts: Fix kernel oops with CONFIG_DEBUG_RODATA
On x86 the kgdb test suite will oops when the kernel is compiled with
CONFIG_DEBUG_RODATA and you run the tests after boot time. This is
regression has existed since 2.6.26 by commit: b33cb815 (kgdbts: Use
HW breakpoints with CONFIG_DEBUG_RODATA).

The test suite can use hw breakpoints for all the tests, but it has to
execute the hardware breakpoint specific tests first in order to
determine that the hw breakpoints actually work.  Specifically the
very first test causes an oops:

# echo V1I1 > /sys/module/kgdbts/parameters/kgdbts
kgdb: Registered I/O driver kgdbts.
kgdbts:RUN plant and detach test

Entering kdb (current=0xffff880017aa9320, pid 1078) on processor 0 due to Keyboard Entry
[0]kdb> kgdbts: ERROR PUT: end of test buffer on 'plant_and_detach_test' line 1 expected OK got $E14#aa
WARNING: at drivers/misc/kgdbts.c:730 run_simple_test+0x151/0x2c0()
[...oops clipped...]

This commit re-orders the running of the tests and puts the RODATA
check into its own function so as to correctly avoid the kernel oops
by detecting and using the hw breakpoints.

Cc: <stable@vger.kernel.org> # >= 2.6.26
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2012-03-29 17:41:24 -05:00
..
altera-stapl Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2011-10-31 15:42:54 -07:00
c2port c2port: class_create() returns an ERR_PTR 2012-03-05 15:49:43 -08:00
carma Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-01-17 18:40:24 -08:00
cb710 mmc: cb710 core: Add missing spin_lock_init for irq_lock of struct cb710_chip 2012-02-02 16:28:14 -08:00
eeprom eeprom_93cx6: Add write support 2011-11-26 14:59:39 -05:00
ibmasm misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
iwmc3200top module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
lis3lv02d module_param: check type correctness for module_param_array 2012-01-13 09:32:16 +10:30
sgi-gru switch procfs to umode_t use 2012-01-03 22:54:56 -05:00
sgi-xp net: remove NETIF_F_NO_CSUM feature bit 2011-11-16 17:43:12 -05:00
ti-st drivers:misc: ti-st: DEBUG uart, baud rate mods 2012-01-04 15:21:04 -08:00
ab8500-pwm.c mfd: Unify abx500 headers in mfd/abx500 2012-01-09 00:37:39 +01:00
ad525x_dpot-i2c.c misc: ad525x_dpot: Add support for SPI module device table matching 2011-11-18 11:27:02 -08:00
ad525x_dpot-spi.c misc: ad525x_dpot: Add support for SPI module device table matching 2011-11-18 11:27:02 -08:00
ad525x_dpot.c misc: ad525x_dpot: Add support for SPI module device table matching 2011-11-18 11:27:02 -08:00
ad525x_dpot.h Merge branch 'char-misc-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc 2012-01-09 12:08:59 -08:00
apds990x.c drivers/misc/apds990x.c: apds990x_chip_on() should depend on CONFIG_PM || CONFIG_PM_RUNTIME 2011-06-15 20:04:02 -07:00
apds9802als.c drivers/misc/apds9802als.c: put the device into runtime suspend after resume()/probe() is handled 2011-03-22 17:44:10 -07:00
arm-charlcd.c tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
atmel_pwm.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
atmel_tclib.c drivers/misc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required. 2011-10-31 19:31:54 -04:00
atmel-ssc.c drivers/misc: Add module.h to files who are really modular. 2011-10-31 19:31:53 -04:00
bh1770glc.c drivers/misc/bh1770glc.c: error handling in bh1770_power_state_store() 2010-11-12 07:55:31 -08:00
bh1780gli.c drivers/misc: Add module.h to files who are really modular. 2011-10-31 19:31:53 -04:00
bmp085.c BMP085: Remove redundant semi-colon from return statement 2012-01-04 15:21:56 -08:00
cs5535-mfgpt.c cs5535-mfgpt: don't call __init function from __devinit 2012-02-02 16:28:13 -08:00
ds1682.c sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
enclosure.c [SCSI] enclosure: fix error path - actually return ERR_PTR() on error 2010-07-27 12:03:48 -05:00
ep93xx_pwm.c drivers/misc/ep93xx_pwm.c: world-writable sysfs files 2011-03-22 17:44:11 -07:00
fsa9480.c driver/misc/fsa9480.c fix potential null-pointer dereference 2011-10-31 17:30:53 -07:00
hmc6352.c drivers/misc/hmc6352.c: fix wrong return value checking for i2c_master_recv() 2011-03-22 17:44:10 -07:00
hpilo.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6 2010-10-22 19:36:42 -07:00
hpilo.h hpilo: fix pointer warning in ilo_ccb_setup 2010-08-09 20:45:05 -07:00
ics932s401.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ioc4.c drivers/misc/ioc4.c: fix section mismatch / race condition 2011-06-27 18:00:13 -07:00
isl29003.c
isl29020.c isl29020: Remove a redundant semi-colon from return statement 2012-01-04 15:21:56 -08:00
Kconfig drivers: misc: Remove MISC_DEVICES config option 2012-01-24 16:24:02 -08:00
kgdbts.c kgdbts: Fix kernel oops with CONFIG_DEBUG_RODATA 2012-03-29 17:41:24 -05:00
lkdtm.c lkdtm: avoid calling lkdtm_do_action() with spinlock held 2012-02-03 16:16:41 -08:00
Makefile misc: Add driver support for MAX8997 MUIC 2012-01-09 00:37:32 +01:00
max8997-muic.c misc: Remove max8997-muic sysfs attributes 2012-01-09 00:37:42 +01:00
pch_phub.c pch_phub: Fix MAC address writing issue for LAPIS ML7831 2011-11-15 11:01:50 -08:00
phantom.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
pti.c drivers/misc/pti.c: give 'comm' function scope in pti_control_frame_built_and_sent() 2011-09-14 18:09:38 -07:00
spear13xx_pcie_gadget.c pcie-gadget-spear: Add "platform:" prefix for platform modalias 2011-11-14 16:09:32 -08:00
ti_dac7512.c drivers/misc: add driver for Texas Instruments DAC7512 2009-12-15 08:53:25 -08:00
tifm_7xx1.c drivers/misc: Add module.h to files who are really modular. 2011-10-31 19:31:53 -04:00
tifm_core.c drivers/misc: Add module.h to files who are really modular. 2011-10-31 19:31:53 -04:00
tsl2550.c tsl2550: Move from i2c/chips to misc 2010-03-13 20:56:54 +01:00
vmw_balloon.c vmw_balloon: fix for a -Wuninitialized warning 2012-02-02 16:28:13 -08:00