diff options
Diffstat (limited to 'drivers/pcmcia/ds.c')
-rw-r--r-- | drivers/pcmcia/ds.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c index c0611d56eab2..f657a2a77b2b 100644 --- a/drivers/pcmcia/ds.c +++ b/drivers/pcmcia/ds.c | |||
@@ -653,6 +653,11 @@ static inline void pcmcia_add_pseudo_device(struct pcmcia_bus_socket *s) | |||
653 | return; | 653 | return; |
654 | } | 654 | } |
655 | 655 | ||
656 | static void pcmcia_bus_rescan(void) | ||
657 | { | ||
658 | /* must be called with skt_sem held */ | ||
659 | bus_rescan_devices(&pcmcia_bus_type); | ||
660 | } | ||
656 | 661 | ||
657 | static inline int pcmcia_devmatch(struct pcmcia_device *dev, | 662 | static inline int pcmcia_devmatch(struct pcmcia_device *dev, |
658 | struct pcmcia_device_id *did) | 663 | struct pcmcia_device_id *did) |
@@ -1766,6 +1771,7 @@ static int __devinit pcmcia_bus_add_socket(struct class_device *class_dev) | |||
1766 | s->callback.owner = THIS_MODULE; | 1771 | s->callback.owner = THIS_MODULE; |
1767 | s->callback.event = &ds_event; | 1772 | s->callback.event = &ds_event; |
1768 | s->callback.resources_done = &pcmcia_card_add; | 1773 | s->callback.resources_done = &pcmcia_card_add; |
1774 | s->callback.replace_cis = &pcmcia_bus_rescan; | ||
1769 | socket->pcmcia = s; | 1775 | socket->pcmcia = s; |
1770 | 1776 | ||
1771 | ret = pccard_register_pcmcia(socket, &s->callback); | 1777 | ret = pccard_register_pcmcia(socket, &s->callback); |