From 2e1a2ac58539cfd55be36d4718b0ec87404ef659 Mon Sep 17 00:00:00 2001 From: Henrique de Moraes Holschuh Date: Fri, 21 Nov 2008 20:40:10 -0200 Subject: [PATCH] --- yaml --- r: 122331 b: refs/heads/master c: 24689c8590be6bc0486af665c5ceda6aeff4d53a h: refs/heads/master i: 122329: ec9ac3ef1df70aa22061ef1e99f4da26dd010adf 122327: 38f762d8aa518a6eadff12959bffe6efeceaebf8 v: v3 --- [refs] | 2 +- trunk/net/rfkill/rfkill.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 6e9d882062cd..2fc3d8573d66 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f80b5e99c7dac5a9a0d72496cec5075a12cd1476 +refs/heads/master: 24689c8590be6bc0486af665c5ceda6aeff4d53a diff --git a/trunk/net/rfkill/rfkill.c b/trunk/net/rfkill/rfkill.c index 5ad411d3e8f8..051d2c9ea66b 100644 --- a/trunk/net/rfkill/rfkill.c +++ b/trunk/net/rfkill/rfkill.c @@ -580,12 +580,22 @@ static int rfkill_suspend(struct device *dev, pm_message_t state) static int rfkill_resume(struct device *dev) { struct rfkill *rfkill = to_rfkill(dev); + enum rfkill_state newstate; if (dev->power.power_state.event != PM_EVENT_ON) { mutex_lock(&rfkill->mutex); dev->power.power_state.event = PM_EVENT_ON; + /* + * rfkill->state could have been modified before we got + * called, and won't be updated by rfkill_toggle_radio() + * in force mode. Sync it FIRST. + */ + if (rfkill->get_state && + !rfkill->get_state(rfkill->data, &newstate)) + rfkill->state = newstate; + /* * If we are under EPO, kick transmitter offline, * otherwise restore to pre-suspend state.