linux/drivers
Nathan Lynch d76e56b4c6 ehea: use get_zeroed_page for alignment-sensitive allocation
With slub debug enabled, I see the following errors and crash with
2.6.28-rc9:

IBM eHEA ethernet device driver (Release EHEA_0095)
ehea: Error in ehea_h_register_rpage_mr: not on pageboundary
ehea: Error in ehea_reg_mr_section: register_rpage_mr failed
ehea: Error in ehea_reg_kernel_mr: registering mr failed
ehea: Error in ehea_setup_ports: creating MR failed
ehea 23c00100.lhea: setup_ports failed
Unable to handle kernel paging request for data at address 0x6b6b6b6b6b6bbdcb
Faulting instruction address: 0xd000000000064a24
cpu 0x0: Vector: 300 (Data Access) at [c0000000740e7190]
    pc: d000000000064a24: .ehea_update_firmware_handles+0x84/0x47c [ehea]
    lr: d00000000006df34: .ehea_probe_adapter+0x35c/0x39c [ehea]
    sp: c0000000740e7410
   msr: 8000000000009032
   dar: 6b6b6b6b6b6bbdcb
 dsisr: 40000000
  current = 0xc000000074233780
  paca    = 0xc0000000008a3300
    pid   = 2046, comm = modprobe
enter ? for help
[c0000000740e74f0] d00000000006df34 .ehea_probe_adapter+0x35c/0x39c [ehea]
[c0000000740e75a0] c00000000041d5a4 .of_platform_device_probe+0x78/0xb0
[c0000000740e7630] c0000000002d8b38 .driver_probe_device+0x13c/0x200
[c0000000740e76c0] c0000000002d8c90 .__driver_attach+0x94/0xd8
[c0000000740e7750] c0000000002d7d64 .bus_for_each_dev+0x80/0xd8
[c0000000740e7800] c0000000002d889c .driver_attach+0x28/0x40
[c0000000740e7880] c0000000002d8340 .bus_add_driver+0xd4/0x284
[c0000000740e7920] c0000000002d90a0 .driver_register+0xc4/0x198
[c0000000740e79d0] c00000000041d45c .of_register_driver+0x4c/0x60
[c0000000740e7a50] c000000000020ef8 .ibmebus_register_driver+0x30/0x4c
[c0000000740e7ae0] d00000000006e108 .ehea_module_init+0x194/0x208c [ehea]
[c0000000740e7b90] c000000000009028 .do_one_initcall+0x90/0x1ac
[c0000000740e7d90] c00000000008619c .sys_init_module+0xc4/0x200
[c0000000740e7e30] c0000000000084ac syscall_exit+0x0/0x40

(When slub debug is disabled it works fine.)

PAGE_SIZE allocations via slab are not guaranteed to be page-aligned;
use get_zeroed_page for the 'pt' buffer (I don't really know what this
is, only that it is passed to firmware and that the first error
message complains about its alignment).  This allows the system to
boot.

Signed-off-by: Nathan Lynch <ntl@pobox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-25 18:32:57 -08:00
..
accessibility
acpi ACPI toshiba: only register rfkill if bt is enabled 2008-12-15 16:27:07 -08:00
amba
ata ata: Fix experimental tags 2008-12-09 00:44:29 -05:00
atm ATM: horizon, fix hrz_probe fail path 2008-11-29 20:42:28 -08:00
auxdisplay
base
block Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-12-15 20:03:50 -08:00
bluetooth Bluetooth: Enable per-module dynamic debug messages 2008-11-30 12:17:28 +01:00
cdrom Commands needing to be retried require a complete re-initialization. 2008-12-12 16:04:26 +01:00
char console ASCII glyph 1:1 mapping 2008-12-13 11:25:49 -08:00
clocksource
connector
cpufreq
cpuidle
crypto fix talitos 2008-11-30 10:03:36 -08:00
dca
dio
dma
edac i82875p_edac: fix module remove 2008-12-01 19:55:25 -08:00
eisa
firewire firewire: fw-ohci: fix IOMMU resource exhaustion 2008-12-10 12:45:34 +01:00
firmware
gpio gpiolib: extend gpio label column width in debugfs file 2008-11-19 18:49:57 -08:00
gpu drm/i915: Disable the GM965 MSI errata workaround. 2008-12-09 15:37:24 +10:00
hid HID: Apple ALU wireless keyboards are bluetooth devices 2008-11-28 15:09:26 +01:00
hwmon hwmon: applesmc: make applesmc load automatically on startup 2008-12-01 19:55:24 -08:00
i2c i2c-highlander: Trivial endian casting fixes 2008-12-11 12:11:21 +01:00
ide [IA64] Clear up section mismatch for ioc4_ide_attach_one. 2008-12-09 10:08:48 -08:00
idle
ieee1394 ieee1394: node manager causes up to ~3.25s delay in freezing tasks 2008-12-09 19:34:33 +01:00
infiniband net: Remove unused netdev arg from some NAPI interfaces. 2008-12-22 20:43:12 -08:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2008-11-30 11:05:21 -08:00
isdn isdn: eicon: fix sparse warning: make global functions static 2008-12-16 01:17:33 -08:00
leds
lguest
macintosh rackmeter section fixes 2008-11-30 10:03:37 -08:00
mca
md block: fix setting of max_segment_size and seg_boundary mask 2008-12-03 12:55:55 +01:00
media dvb: Kill directly reference of netdev->priv 2008-12-03 21:13:13 -08:00
memstick
message Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-12-15 20:03:50 -08:00
mfd mfd: Correct WM8350 I2C return code usage 2008-11-16 19:58:47 +01:00
misc Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-12-15 20:03:50 -08:00
mmc
mtd Merge git://git.infradead.org/mtd-2.6 2008-12-09 08:28:36 -08:00
net ehea: use get_zeroed_page for alignment-sensitive allocation 2008-12-25 18:32:57 -08:00
nubus
of
oprofile
parisc netdev: introduce dev_get_stats() 2008-11-19 21:40:23 -08:00
parport parport_serial: fix array overflow 2008-12-01 19:55:24 -08:00
pci PCIe: ASPM: Break out of endless loop waiting for PCI config bits to switch 2008-12-09 14:59:24 -08:00
pcmcia pcmcia: blackfin: fix bug - add missing ; to MODULE macro 2008-12-15 16:27:06 -08:00
pnp
power
ps3
rapidio rapidio section noise 2008-11-30 10:03:37 -08:00
regulator
rtc rtc twl4030: rename ioctl function when RTC_INTF_DEV=n 2008-12-10 08:01:53 -08:00
s390 s390_net: Kill directly reference of netdev->priv 2008-12-06 23:57:49 -08:00
sbus Revert "of_platform_driver noise on sparce" 2008-12-01 07:55:14 -08:00
scsi Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-12-15 20:03:50 -08:00
serial Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2008-12-10 10:04:25 -08:00
sh
sn
spi spi: fix spi_s3c24xx_gpio num_chipselect 2008-12-01 19:55:24 -08:00
ssb ssb: struct device - replace bus_id with dev_name(), dev_set_name() 2008-11-21 11:06:03 -05:00
staging staging-winbond: Kill directly reference of netdev->priv 2008-12-08 01:13:25 -08:00
tc
telephony
thermal
uio
usb Phonet: USB CDC Phonet function for gadget framework 2008-12-17 15:49:09 -08:00
uwb
video Revert "radeonfb: accelerate imageblit and other improvements" 2008-12-10 16:53:32 -08:00
virtio
w1 W1_MASTER_DS1WM should depend on HAVE_CLK 2008-11-30 10:03:36 -08:00
watchdog iTCO_wdt: fix typo when setting TCO_EN bit 2008-12-03 16:20:19 -08:00
xen xen: fix scrub_page() 2008-11-17 19:11:26 +01:00
zorro
Kconfig
Makefile