From a83d634804d9241149ba8dcc2ec2e14f0cbf59db Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Mon, 23 Nov 2009 18:40:45 -0600 Subject: [PATCH] --- yaml --- r: 172234 b: refs/heads/master c: c2ff581acab16c6af56d9e8c1a579bf041ec00b1 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/b43/rfkill.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 8fc46daaf99a..929ff5f1463e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9bf22f2c4607dbb68beb26153d83fa52b82e2d2f +refs/heads/master: c2ff581acab16c6af56d9e8c1a579bf041ec00b1 diff --git a/trunk/drivers/net/wireless/b43/rfkill.c b/trunk/drivers/net/wireless/b43/rfkill.c index ffdce6f3c909..78016ae21c50 100644 --- a/trunk/drivers/net/wireless/b43/rfkill.c +++ b/trunk/drivers/net/wireless/b43/rfkill.c @@ -33,8 +33,14 @@ bool b43_is_hw_radio_enabled(struct b43_wldev *dev) & B43_MMIO_RADIO_HWENABLED_HI_MASK)) return 1; } else { - if (b43_status(dev) >= B43_STAT_STARTED && - b43_read16(dev, B43_MMIO_RADIO_HWENABLED_LO) + /* 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 (b43_status(dev) < B43_STAT_STARTED) + return 1; + if (b43_read16(dev, B43_MMIO_RADIO_HWENABLED_LO) & B43_MMIO_RADIO_HWENABLED_LO_MASK) return 1; }