diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-04-29 15:56:25 +0200 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-05-03 14:34:44 +0200 |
commit | cc83b08fc791045ac197e6f4a030599bcd7100c5 (patch) | |
tree | 32c8ad8e154826205e9052125a061dd6fc4089e1 /drivers/pcmcia | |
parent | be1066bbcd443a65df312fdecea7e4959adedb45 (diff) | |
download | lwn-cc83b08fc791045ac197e6f4a030599bcd7100c5.tar.gz lwn-cc83b08fc791045ac197e6f4a030599bcd7100c5.zip |
pcmcia: avoid pccard_validate_cis failure in resume callpath
If the PCMCIA CIS changed before a resume event (e.g. due to
a card exchange while being suspended, possibly also during
a call to "pccardctl reset"), also set the function count to
zero so that the subsequent call to pccard_validate_cis() does
not fail.
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/pcmcia')
-rw-r--r-- | drivers/pcmcia/ds.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c index 508f94a2a78d..041eee43fd8d 100644 --- a/drivers/pcmcia/ds.c +++ b/drivers/pcmcia/ds.c @@ -1283,6 +1283,7 @@ static int ds_event(struct pcmcia_socket *skt, event_t event, int priority) destroy_cis_cache(skt); kfree(skt->fake_cis); skt->fake_cis = NULL; + s->functions = 0; mutex_unlock(&s->ops_mutex); /* now, add the new card */ ds_event(skt, CS_EVENT_CARD_INSERTION, |