diff options
Diffstat (limited to 'drivers/pcmcia/ds.c')
-rw-r--r-- | drivers/pcmcia/ds.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c index 87e06395c129..7bb52b003f0e 100644 --- a/drivers/pcmcia/ds.c +++ b/drivers/pcmcia/ds.c | |||
@@ -1241,10 +1241,12 @@ static int ds_event(struct pcmcia_socket *skt, event_t event, int priority) | |||
1241 | s->pcmcia_state.present = 0; | 1241 | s->pcmcia_state.present = 0; |
1242 | pcmcia_card_remove(skt, NULL); | 1242 | pcmcia_card_remove(skt, NULL); |
1243 | handle_event(skt, event); | 1243 | handle_event(skt, event); |
1244 | destroy_cis_cache(s); | ||
1244 | break; | 1245 | break; |
1245 | 1246 | ||
1246 | case CS_EVENT_CARD_INSERTION: | 1247 | case CS_EVENT_CARD_INSERTION: |
1247 | s->pcmcia_state.present = 1; | 1248 | s->pcmcia_state.present = 1; |
1249 | destroy_cis_cache(s); /* to be on the safe side... */ | ||
1248 | pcmcia_card_add(skt); | 1250 | pcmcia_card_add(skt); |
1249 | handle_event(skt, event); | 1251 | handle_event(skt, event); |
1250 | break; | 1252 | break; |
@@ -1366,6 +1368,7 @@ static void pcmcia_bus_remove_socket(struct device *dev, | |||
1366 | /* unregister any unbound devices */ | 1368 | /* unregister any unbound devices */ |
1367 | mutex_lock(&socket->skt_mutex); | 1369 | mutex_lock(&socket->skt_mutex); |
1368 | pcmcia_card_remove(socket, NULL); | 1370 | pcmcia_card_remove(socket, NULL); |
1371 | release_cis_mem(socket); | ||
1369 | mutex_unlock(&socket->skt_mutex); | 1372 | mutex_unlock(&socket->skt_mutex); |
1370 | 1373 | ||
1371 | pcmcia_put_socket(socket); | 1374 | pcmcia_put_socket(socket); |