diff options
| -rw-r--r-- | drivers/net/wireless/b43legacy/rfkill.c | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/b43legacy/rfkill.c b/drivers/net/wireless/b43legacy/rfkill.c index 8783022db11..d579df72b78 100644 --- a/drivers/net/wireless/b43legacy/rfkill.c +++ b/drivers/net/wireless/b43legacy/rfkill.c @@ -34,6 +34,13 @@ bool b43legacy_is_hw_radio_enabled(struct b43legacy_wldev *dev)  		      & B43legacy_MMIO_RADIO_HWENABLED_HI_MASK))  			return 1;  	} else { +		/* To prevent CPU fault on PPC, do not read a register +		 * unless the interface is started; however, on resume +		 * for hibernation, this routine is entered early. When +		 * that happens, unconditionally return TRUE. +		 */ +		if (b43legacy_status(dev) < B43legacy_STAT_STARTED) +			return 1;  		if (b43legacy_read16(dev, B43legacy_MMIO_RADIO_HWENABLED_LO)  		    & B43legacy_MMIO_RADIO_HWENABLED_LO_MASK)  			return 1;  |