b43: Fix machine check error due to improper access of B43_MMIO_PSM_PHY_HDR
authorRafał Miłecki <zajec5@gmail.com>
Sat, 5 Apr 2014 16:08:25 +0000 (18:08 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 9 Apr 2014 17:55:55 +0000 (13:55 -0400)
commit12cd43c6ed6da7bf7c5afbd74da6959cda6d056b
tree004d53fe04ff6e60c6f08c45abd81ec3e2b01754
parent5212f518ac0f5141d4da3c9c75666a2146c7e772
b43: Fix machine check error due to improper access of B43_MMIO_PSM_PHY_HDR

Register B43_MMIO_PSM_PHY_HDR is 16 bit one, so accessing it with 32b
functions isn't safe. On my machine it causes delayed (!) CPU exception:

Disabling lock debugging due to kernel taint
mce: [Hardware Error]: CPU 0: Machine Check Exception: 4 Bank 4: b200000000070f0f
mce: [Hardware Error]: TSC 164083803dc
mce: [Hardware Error]: PROCESSOR 2:20fc2 TIME 1396650505 SOCKET 0 APIC 0 microcode 0
mce: [Hardware Error]: Run the above through 'mcelog --ascii'
mce: [Hardware Error]: Machine check: Processor context corrupt
Kernel panic - not syncing: Fatal machine check on current CPU
Kernel Offset: 0x0 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffff9fffffff)

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Stable <stable@vger.kernel.org> [2.6.35+]
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/b43/phy_n.c