linux/drivers/watchdog
Bernhard Walle 060264133b [WATCHDOG] hpwdt: set the mapped BIOS address space as executable
The address provided by the SMBIOS/DMI CRU information is mapped via
ioremap() in the virtual address space.  However, since the address is
executed (i.e.  call'd), we need to set that pages as executable.

Without that, I get following oops on a HP ProLiant DL385 G2
machine with BIOS from 05/29/2008 when I trigger crashdump:

    BUG: unable to handle kernel paging request at ffffc20011090c00
    IP: [<ffffc20011090c00>] 0xffffc20011090c00
    PGD 12f813067 PUD 7fe6a067 PMD 7effe067 PTE 80000000fffd3173
    Oops: 0011 [1] SMP
    last sysfs file: /sys/devices/system/cpu/cpu3/cache/index2/shared_cpu_map
    CPU 1
    Modules linked in: autofs4 ipv6 af_packet cpufreq_conservative cpufreq_userspace
     cpufreq_powersave powernow_k8 fuse loop dm_mod rtc_cmos ipmi_si sg rtc_core i2c
    _piix4 ipmi_msghandler bnx2 sr_mod container button i2c_core hpilo joydev pcspkr
     rtc_lib shpchp hpwdt cdrom pci_hotplug usbhid hid ff_memless ohci_hcd ehci_hcd
    uhci_hcd usbcore edd ext3 mbcache jbd fan ide_pci_generic serverworks ide_core p
    ata_serverworks pata_acpi cciss ata_generic libata scsi_mod dock thermal process
    or thermal_sys hwmon
    Supported: Yes
    Pid: 0, comm: swapper Not tainted 2.6.27.5-HEAD_20081111100657-default #1
    RIP: 0010:[<ffffc20011090c00>]  [<ffffc20011090c00>] 0xffffc20011090c00
    RSP: 0018:ffff88012f6f9e68  EFLAGS: 00010046
    RAX: 0000000000000d02 RBX: 0000000000000000 RCX: 0000000000000000
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
    RBP: ffff88012f6f9e98 R08: 666666666666660a R09: ffffffffa1006fc0
    R10: 0000000000000000 R11: ffff88012f6f3ea8 R12: ffffc20011090c00
    R13: ffff88012f6f9ee8 R14: 000000000000000e R15: 0000000000000000
    FS:  00007ff70b29a6f0(0000) GS:ffff88012f6512c0(0000) knlGS:0000000000000000
    CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
    CR2: ffffc20011090c00 CR3: 0000000000201000 CR4: 00000000000006e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process swapper (pid: 0, threadinfo ffff88012f6f2000, task ffff88007fa8a1c0)
    Stack:  ffffffffa0f8502b 0000000000000002 ffffffff80738d50 0000000000000000
     0000000000000046 0000000000000046 00000000fffffffe ffffffffa0f852ec
     0000000000000000 ffffffff804ad9a6 0000000000000000 0000000000000000
    Call Trace:
    Inexact backtrace:

     <NMI>  [<ffffffffa0f8502b>] ? asminline_call+0x2b/0x55 [hpwdt]
     [<ffffffffa0f852ec>] hpwdt_pretimeout+0x3c/0xa0 [hpwdt]
     [<ffffffff804ad9a6>] ? notifier_call_chain+0x29/0x4c
     [<ffffffff802587e4>] ? notify_die+0x2d/0x32
     [<ffffffff804abbdc>] ? default_do_nmi+0x53/0x1d9
     [<ffffffff804abd90>] ? do_nmi+0x2e/0x43
     [<ffffffff804ab552>] ? nmi+0xa2/0xd0
     [<ffffffff80221ef9>] ? native_safe_halt+0x2/0x3
     <<EOE>>  [<ffffffff8021345d>] ? default_idle+0x38/0x54
     [<ffffffff8021359a>] ? c1e_idle+0x118/0x11c
     [<ffffffff8020b3b5>] ? cpu_idle+0xa9/0xf1

    Code: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff <55> 50 e8 00 00 00 00 58 48 2d 07 10 40 00 48 8b e8 58 e9 68 02
    RIP  [<ffffc20011090c00>] 0xffffc20011090c00
     RSP <ffff88012f6f9e68>
    CR2: ffffc20011090c00
    Kernel panic - not syncing: Fatal exception

Signed-off-by: Bernhard Walle <bwalle@suse.de>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Cc: Ingo Molnar <mingo@elte.hu>
Acked-by: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Thomas Mingarelli <Thomas.Mingarelli@hp.com>
Cc: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2008-11-21 08:34:59 +00:00
..
acquirewdt.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
advantechwdt.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
alim1535_wdt.c [WATCHDOG] more coding style clean-up's 2008-08-06 20:19:41 +00:00
alim7101_wdt.c [WATCHDOG] more coding style clean-up's 2008-08-06 20:19:41 +00:00
ar7_wdt.c [WATCHDOG] more coding style clean-up's 2008-08-06 20:19:41 +00:00
at32ap700x_wdt.c [WATCHDOG] more coding style clean-up's 2008-08-06 20:19:41 +00:00
at91rm9200_wdt.c [WATCHDOG] at91rm9200_wdt.c: fix misleading indentation 2008-08-26 20:20:55 +00:00
at91sam9_wdt.c [WATCHDOG] SAM9 watchdog - update for moved headers 2008-11-06 08:44:11 +00:00
bfin_wdt.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
booke_wdt.c powerpc: Fix Book-E watchdog timer interval setting 2008-11-08 12:38:59 -06:00
cpu5wdt.c [WATCHDOG] Coding style - Indentation - part 2 2008-08-06 13:21:09 +00:00
cpwd.c sparc: Annotate of_device_id arrays with const or __initdata. 2008-08-31 01:23:17 -07:00
davinci_wdt.c Merge Linus' latest into master 2008-08-08 19:18:18 +01:00
ep93xx_wdt.c Merge Linus' latest into master 2008-08-08 19:18:18 +01:00
eurotechwdt.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
geodewdt.c [WATCHDOG] unlocked_ioctl changes 2008-09-23 08:12:30 +00:00
hpwdt.c [WATCHDOG] hpwdt: set the mapped BIOS address space as executable 2008-11-21 08:34:59 +00:00
i6300esb.c [WATCHDOG] pci: use pci_ioremap_bar() in drivers/watchdog 2008-10-24 07:47:24 +00:00
ib700wdt.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
ibmasr.c [WATCHDOG] ibmasr: remove unnecessary spin_unlock() 2008-09-23 08:05:32 +00:00
indydog.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
iop_wdt.c Merge Linus' latest into master 2008-08-08 19:18:18 +01:00
it87_wdt.c [WATCHDOG] add watchdog driver IT8716 IT8726 IT8712J/K 2008-10-10 13:09:17 +00:00
it8712f_wdt.c [WATCHDOG] more coding style clean-up's 2008-08-06 20:19:41 +00:00
iTCO_vendor.h [WATCHDOG 18/57] iTCO: unlocked_ioctl, coding style and cleanup 2008-05-28 11:51:32 +00:00
iTCO_vendor_support.c [WATCHDOG] iTCO_wdt : problem with rebooting on new ICH9 based motherboards 2008-11-21 08:34:26 +00:00
iTCO_wdt.c [WATCHDOG] iTCO_wdt: add PCI ID's for ICH9 & ICH10 chipsets 2008-11-21 08:34:38 +00:00
ixp4xx_wdt.c [ARM] cputype: separate definitions, use them 2008-09-01 12:06:23 +01:00
ixp2000_wdt.c Merge Linus' latest into master 2008-08-08 19:18:18 +01:00
Kconfig [WATCHDOG] SAM9 watchdog - supported on all SAM9 and CAP9 processors 2008-11-06 08:54:37 +00:00
ks8695_wdt.c Merge Linus' latest into master 2008-08-08 19:18:18 +01:00
machzwd.c [WATCHDOG 24/57] machzwd: clean up, coding style, unlocked_ioctl 2008-06-13 19:25:38 +00:00
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog 2008-10-12 11:51:32 -07:00
mixcomwd.c [WATCHDOG] Coding style - Indentation - part 2 2008-08-06 13:21:09 +00:00
mpc8xxx_wdt.c [WATCHDOG] mpc8xxx_wdt: fix modular build 2008-08-26 20:20:44 +00:00
mpc5200_wdt.c [WATCHDOG] more coding style clean-up's 2008-08-06 20:19:41 +00:00
mpcore_wdt.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
mtx-1_wdt.c [WATCHDOG] fix mtx1_wdt compilation failure 2008-11-21 08:20:49 +00:00
mv64x60_wdt.c [WATCHDOG] Clean-up includes 2008-08-06 13:02:16 +00:00
omap_wdt.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
omap_wdt.h [WATCHDOG] omap_wdt.c: sync linux-omap changes 2008-10-10 13:11:10 +00:00
orion5x_wdt.c [WATCHDOG] orion5x_wdt.c: add spinlocking 2008-10-10 13:17:43 +00:00
pc87413_wdt.c [WATCHDOG] removed unused #include <version.h> 2008-08-26 20:32:02 +00:00
pcwd.c [WATCHDOG] pcwd.c - fix open_allowed type. 2008-08-10 21:57:03 +00:00
pcwd_pci.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
pcwd_usb.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
pnx4008_wdt.c [WATCHDOG] unlocked_ioctl changes 2008-09-23 08:12:30 +00:00
rc32434_wdt.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
rdc321x_wdt.c [WATCHDOG] unlocked_ioctl changes 2008-09-23 08:12:30 +00:00
riowd.c sparc: Annotate of_device_id arrays with const or __initdata. 2008-08-31 01:23:17 -07:00
rm9k_wdt.c [WATCHDOG] more coding style clean-up's 2008-08-06 20:19:41 +00:00
s3c2410_wdt.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
sa1100_wdt.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
sb_wdog.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
sbc60xxwdt.c [WATCHDOG] more coding style clean-up's 2008-08-06 20:19:41 +00:00
sbc7240_wdt.c [WATCHDOG] Coding style - Indentation - part 2 2008-08-06 13:21:09 +00:00
sbc8360.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
sbc_epx_c3.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
sc520_wdt.c [WATCHDOG] Coding style - Indentation - part 2 2008-08-06 13:21:09 +00:00
sc1200wdt.c [WATCHDOG] more coding style clean-up's 2008-08-06 20:19:41 +00:00
scx200_wdt.c [WATCHDOG] more coding style clean-up's 2008-08-06 20:19:41 +00:00
shwdt.c [WATCHDOG] fix watchdog/shwdt.c compilation 2008-08-10 20:22:32 +00:00
smsc37b787_wdt.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
softdog.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
txx9wdt.c [WATCHDOG] fix watchdog/txx9wdt.c compilation 2008-08-10 20:19:11 +00:00
w83627hf_wdt.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
w83697hf_wdt.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
w83697ug_wdt.c watchdog: Fix warning 2008-10-23 09:19:47 -07:00
w83877f_wdt.c [WATCHDOG] Coding style - Indentation - part 2 2008-08-06 13:21:09 +00:00
w83977f_wdt.c [WATCHDOG] Coding style - Indentation - part 2 2008-08-06 13:21:09 +00:00
wafer5823wdt.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
wd501p.h [WATCHDOG] more coding style clean-up's 2008-08-06 20:19:41 +00:00
wdrtas.c [WATCHDOG] more coding style clean-up's 2008-08-06 20:19:41 +00:00
wdt.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
wdt285.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00
wdt977.c [WATCHDOG] Coding style - Indentation - part 2 2008-08-06 13:21:09 +00:00
wdt_pci.c [PATCH] Switch all my contributions stuff to a single common address 2008-10-28 19:16:11 +00:00