]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] pcmcia: BUG on dev_list != NULL
authorDominik Brodowski <linux@dominikbrodowski.de>
Tue, 11 Jan 2005 11:23:43 +0000 (03:23 -0800)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Tue, 11 Jan 2005 11:23:43 +0000 (03:23 -0800)
All in-kernel PCMCIA devices do unregister their client in their respective
->detach() function after a REMOVAL event.  So, AFAICS, the dev_list iteration
should always be false.

Signed-off-by: Dominik Brodowski <linux@brodo.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
39 files changed:
drivers/bluetooth/bluecard_cs.c
drivers/bluetooth/bt3c_cs.c
drivers/bluetooth/btuart_cs.c
drivers/bluetooth/dtl1_cs.c
drivers/char/pcmcia/synclink_cs.c
drivers/ide/legacy/ide-cs.c
drivers/isdn/hardware/avm/avm_cs.c
drivers/isdn/hisax/avma1_cs.c
drivers/isdn/hisax/elsa_cs.c
drivers/isdn/hisax/sedlbauer_cs.c
drivers/isdn/hisax/teles_cs.c
drivers/mtd/maps/pcmciamtd.c
drivers/net/pcmcia/3c574_cs.c
drivers/net/pcmcia/3c589_cs.c
drivers/net/pcmcia/axnet_cs.c
drivers/net/pcmcia/com20020_cs.c
drivers/net/pcmcia/fmvj18x_cs.c
drivers/net/pcmcia/ibmtr_cs.c
drivers/net/pcmcia/nmclan_cs.c
drivers/net/pcmcia/pcnet_cs.c
drivers/net/pcmcia/smc91c92_cs.c
drivers/net/pcmcia/xirc2ps_cs.c
drivers/net/wireless/airo_cs.c
drivers/net/wireless/atmel_cs.c
drivers/net/wireless/netwave_cs.c
drivers/net/wireless/orinoco_cs.c
drivers/net/wireless/ray_cs.c
drivers/net/wireless/wl3501_cs.c
drivers/parport/parport_cs.c
drivers/scsi/pcmcia/aha152x_stub.c
drivers/scsi/pcmcia/fdomain_stub.c
drivers/scsi/pcmcia/nsp_cs.c
drivers/scsi/pcmcia/qlogic_stub.c
drivers/serial/serial_cs.c
drivers/telephony/ixj_pcmcia.c
sound/pcmcia/pdaudiocf/pdaudiocf.c
sound/pcmcia/vx/vx_entry.c
sound/pcmcia/vx/vxpocket.c
sound/pcmcia/vx/vxpocket.h

index 4db1feeefc0b38c099493d7590d224a7c1067f7a..9a75536afb8d5170a3a01dc8e2b7642faa6c8f43 100644 (file)
@@ -1117,10 +1117,7 @@ static int __init init_bluecard_cs(void)
 static void __exit exit_bluecard_cs(void)
 {
        pcmcia_unregister_driver(&bluecard_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL)
-               bluecard_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_bluecard_cs);
index a50adb67bd5a3a5eb79cc616a723033ba73e0573..227e3e5a9d36179f14f043285e98635c52f45052 100644 (file)
@@ -967,10 +967,7 @@ static int __init init_bt3c_cs(void)
 static void __exit exit_bt3c_cs(void)
 {
        pcmcia_unregister_driver(&bt3c_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL)
-               bt3c_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_bt3c_cs);
index 74644df24477028e018710265234d32cdecdf11b..4ba1dfa62911d0fa56800fe90a63fb3c43c5c72f 100644 (file)
@@ -887,10 +887,7 @@ static int __init init_btuart_cs(void)
 static void __exit exit_btuart_cs(void)
 {
        pcmcia_unregister_driver(&btuart_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL)
-               btuart_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_btuart_cs);
index 87ff7966ffbabbb1ed0ed32ad92696ae3d59102a..2ea43e748695249120c4909a64fe95aea3c82849 100644 (file)
@@ -839,10 +839,7 @@ static int __init init_dtl1_cs(void)
 static void __exit exit_dtl1_cs(void)
 {
        pcmcia_unregister_driver(&dtl1_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL)
-               dtl1_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_dtl1_cs);
index 234af616f220a7a1c6d9f980a0ad8a8ae1afcf76..d732bdcbfc45f444638e5a6409b35ea26b65fda4 100644 (file)
@@ -3147,13 +3147,7 @@ static void synclink_cs_cleanup(void)
        }
 
        pcmcia_unregister_driver(&mgslpc_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL) {
-               if (dev_list->state & DEV_CONFIG)
-                       mgslpc_release((u_long)dev_list);
-               mgslpc_detach(dev_list);
-       }
+       BUG_ON(dev_list != NULL);
 }
 
 static int __init synclink_cs_init(void)
index abab060fd230b2b6a1bb6ae3e1fbf5f9029a60cf..0e0047ef57604eee37d1933396df1dadd26d7647 100644 (file)
@@ -485,8 +485,7 @@ static int __init init_ide_cs(void)
 static void __exit exit_ide_cs(void)
 {
        pcmcia_unregister_driver(&ide_cs_driver);
-       while (dev_list != NULL)
-               ide_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_ide_cs);
index 9661806d02393996ef1a3be2b1b2dcacc040a497..d1d615fc9e120ce20db01130fcadd808ec927805 100644 (file)
@@ -521,13 +521,7 @@ static int __init avmcs_init(void)
 static void __exit avmcs_exit(void)
 {
        pcmcia_unregister_driver(&avmcs_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL) {
-               if (dev_list->state & DEV_CONFIG)
-                       avmcs_release(dev_list);
-               avmcs_detach(dev_list);
-       }
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(avmcs_init);
index 06ce6605517b1019d29ca8456af939e309c7bfb1..b30a1e330f770d9fb6c30c976b53fa54ece311c6 100644 (file)
@@ -531,13 +531,7 @@ static int __init init_avma1_cs(void)
 static void __exit exit_avma1_cs(void)
 {
        pcmcia_unregister_driver(&avma1cs_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL) {
-               if (dev_list->state & DEV_CONFIG)
-                       avma1cs_release(dev_list);
-               avma1cs_detach(dev_list);
-       }
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_avma1_cs);
index 5087eefd1e3dd2a79004d67269264a1d72275d73..14f0f0fe246d5a253225e0502d98f0b305420f56 100644 (file)
@@ -541,10 +541,7 @@ static int __init init_elsa_cs(void)
 static void __exit exit_elsa_cs(void)
 {
        pcmcia_unregister_driver(&elsa_cs_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL)
-               elsa_cs_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_elsa_cs);
index 44545eaf8333fc28a44716492acc2a65ef65185b..3802923e8b27fd3b47f4d5d2cdc5ce3dbe8a897b 100644 (file)
@@ -648,13 +648,7 @@ static int __init init_sedlbauer_cs(void)
 static void __exit exit_sedlbauer_cs(void)
 {
        pcmcia_unregister_driver(&sedlbauer_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL) {
-               if (dev_list->state & DEV_CONFIG)
-                       sedlbauer_release(dev_list);
-               sedlbauer_detach(dev_list);
-       }
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_sedlbauer_cs);
index b84b3a21553cd54c85fc6cd82b9f330ae69d38c1..0f789f3b8df5f881706d097f9d655a8d45cf4017 100644 (file)
@@ -522,10 +522,7 @@ static int __init init_teles_cs(void)
 static void __exit exit_teles_cs(void)
 {
        pcmcia_unregister_driver(&teles_cs_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL)
-               teles_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_teles_cs);
index ec63e3b6fa6855b7126dc55ba492b6b0221d0528..9c17b52fe5a7e018d3ce0903c9e3fd4cc73fb045 100644 (file)
@@ -854,35 +854,7 @@ static void __exit exit_pcmciamtd(void)
 {
        DEBUG(1, DRIVER_DESC " unloading");
        pcmcia_unregister_driver(&pcmciamtd_driver);
-
-       while(dev_list) {
-               dev_link_t *link = dev_list;
-
-               dev_list = link->next;
-               if (link) {
-                       struct pcmciamtd_dev *dev = link->priv;
-                       
-                       if(dev) {
-                               if(link->state & DEV_PRESENT) {
-                                       if (!(link->state & DEV_STALE_LINK)) {
-                                               pcmciamtd_detach(link);
-                                       }
-                                       link->state &= ~DEV_PRESENT;
-                                       if(dev->mtd_info) {
-                                               del_mtd_device(dev->mtd_info);
-                                               info("mtd%d: Removed",
-                                                    dev->mtd_info->index);
-                                       }
-                               }
-                               if(dev->mtd_info) {
-                                       DEBUG(2, "Destroying map for mtd%d",
-                                             dev->mtd_info->index);
-                                       map_destroy(dev->mtd_info);
-                               }
-                               kfree(dev);
-                       }
-               }
-       }
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_pcmciamtd);
index 08ffa1bcb68c89c581d367b03faa510b17fee754..1154fbbc0dc428a39ffd5107d6229e04e811b3ed 100644 (file)
@@ -1308,8 +1308,7 @@ static int __init init_tc574(void)
 static void __exit exit_tc574(void)
 {
        pcmcia_unregister_driver(&tc574_driver);
-       while (dev_list != NULL)
-               tc574_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_tc574);
index 06ace14a6ba2a6c198a6d84a3ad2ab214573ac37..2dd8f774dc5aaaff4c2bb63216ecca8b3472288e 100644 (file)
@@ -1083,8 +1083,7 @@ static int __init init_tc589(void)
 static void __exit exit_tc589(void)
 {
        pcmcia_unregister_driver(&tc589_driver);
-       while (dev_list != NULL)
-               tc589_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_tc589);
index 957bd2e8ab89e1862748eb8ac2420d837683b1b0..91be6752dd39b53e0257a7daf9540f8ad1f2a0f8 100644 (file)
@@ -877,8 +877,7 @@ static int __init init_axnet_cs(void)
 static void __exit exit_axnet_cs(void)
 {
        pcmcia_unregister_driver(&axnet_cs_driver);
-       while (dev_list != NULL)
-               axnet_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_axnet_cs);
index fbdc0b7a53d763c38edd7b14a2693b91dba8f472..1cf038aa604a5f917f428307075f268346fa686b 100644 (file)
@@ -513,8 +513,7 @@ static int __init init_com20020_cs(void)
 static void __exit exit_com20020_cs(void)
 {
        pcmcia_unregister_driver(&com20020_cs_driver);
-       while (dev_list != NULL)
-               com20020_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_com20020_cs);
index d676aba69dc151dc60e1683c24c1c3516e9754b3..d5b1bb63936be4b3e7adc080eabcaddad53d9a59 100644 (file)
@@ -792,8 +792,7 @@ static int __init init_fmvj18x_cs(void)
 static void __exit exit_fmvj18x_cs(void)
 {
        pcmcia_unregister_driver(&fmvj18x_cs_driver);
-       while (dev_list != NULL)
-               fmvj18x_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_fmvj18x_cs);
index dbdcbc6cec052a1276f1a508f68f88cb8afb3f9e..886398f1d15c7ceea3bb2148c8055279a253fd82 100644 (file)
@@ -538,8 +538,7 @@ static int __init init_ibmtr_cs(void)
 static void __exit exit_ibmtr_cs(void)
 {
        pcmcia_unregister_driver(&ibmtr_cs_driver);
-       while (dev_list != NULL)
-               ibmtr_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_ibmtr_cs);
index f97ce65d76b0c4f61e780e2610394a51e10a1eed..8e616d4dccd808167e40ac17a60cf80d5b3042f8 100644 (file)
@@ -1702,8 +1702,7 @@ static int __init init_nmclan_cs(void)
 static void __exit exit_nmclan_cs(void)
 {
        pcmcia_unregister_driver(&nmclan_cs_driver);
-       while (dev_list != NULL)
-               nmclan_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_nmclan_cs);
index b17b3fb862969782251479181efad9a9d0b6ac13..b9ca8347f9e696b5a02a38801c2486b078521a89 100644 (file)
@@ -1662,8 +1662,7 @@ static void __exit exit_pcnet_cs(void)
 {
     DEBUG(0, "pcnet_cs: unloading\n");
     pcmcia_unregister_driver(&pcnet_driver);
-    while (dev_list != NULL)
-       pcnet_detach(dev_list);
+    BUG_ON(dev_list != NULL);
 }
 
 module_init(init_pcnet_cs);
index 284375f2026c48b9009abd011e636e728dd3ef21..8a381612fef7817e954074c101d2dc36b39a1218 100644 (file)
@@ -2263,8 +2263,7 @@ static int __init init_smc91c92_cs(void)
 static void __exit exit_smc91c92_cs(void)
 {
        pcmcia_unregister_driver(&smc91c92_cs_driver);
-       while (dev_list != NULL)
-               smc91c92_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_smc91c92_cs);
index 6f4eeaf7f5de26ec9599347de7d2699ef57d9158..0f5a664841b72c096a7baee9cc4d2edaa40160cd 100644 (file)
@@ -2016,9 +2016,7 @@ static void __exit
 exit_xirc2ps_cs(void)
 {
        pcmcia_unregister_driver(&xirc2ps_cs_driver);
-
-       while (dev_list)
-               xirc2ps_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_xirc2ps_cs);
index 939783ff112037a92c7b350060bfb70188a06145..48d8ec8ac7cbd409233554cbf4e57ee2ae470fca 100644 (file)
@@ -592,13 +592,7 @@ static int airo_cs_init(void)
 static void airo_cs_cleanup(void)
 {
        pcmcia_unregister_driver(&airo_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL) {
-               if (dev_list->state & DEV_CONFIG)
-                       airo_release(dev_list);
-               airo_detach(dev_list);
-       }
+       BUG_ON(dev_list != NULL);
 }
 
 /*
index 8337121c9ed97a7f810349c15938bd46eda1ede0..4ac430967f45239576bcc051f75721ff7b786e30 100644 (file)
@@ -693,13 +693,7 @@ static int atmel_cs_init(void)
 static void atmel_cs_cleanup(void)
 {
         pcmcia_unregister_driver(&atmel_driver);
-
-        /* XXX: this really needs to move into generic code.. */
-        while (dev_list != NULL) {
-                if (dev_list->state & DEV_CONFIG)
-                        atmel_release(dev_list);
-                atmel_detach(dev_list);
-        }
+       BUG_ON(dev_list != NULL);
 }
 
 /*
index 4936d7e3469d11d7e6e42403e80a3d4a1de03e05..0e3d0ebabe8ea002e967c57463b3717bab68024d 100644 (file)
@@ -1696,9 +1696,7 @@ static int __init init_netwave_cs(void)
 static void __exit exit_netwave_cs(void)
 {
        pcmcia_unregister_driver(&netwave_driver);
-
-       if (dev_list != NULL)   /* Critical situation */
-               printk("netwave_cs: devices remaining when removing module\n");
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_netwave_cs);
index d7085037eb9bca94a0cdb23cb021ffc3f6938a21..535ed99676348af2c48792f415959f3ab6ab8ce3 100644 (file)
@@ -653,14 +653,7 @@ static void __exit
 exit_orinoco_cs(void)
 {
        pcmcia_unregister_driver(&orinoco_driver);
-
-       if (dev_list)
-               DEBUG(0, PFX "Removing leftover devices.\n");
-       while (dev_list != NULL) {
-               if (dev_list->state & DEV_CONFIG)
-                       orinoco_cs_release(dev_list);
-               orinoco_cs_detach(dev_list);
-       }
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_orinoco_cs);
index 7ba64e3c87571c236267c9343700c5b7bd1e822b..b3c9d30bc3311a29459f40de62fbeeee3ab1f13c 100644 (file)
@@ -2952,8 +2952,7 @@ static void __exit exit_ray_cs(void)
 #endif
 
     pcmcia_unregister_driver(&ray_driver);
-    while (dev_list != NULL)
-        ray_detach(dev_list);
+    BUG_ON(dev_list != NULL);
 } /* exit_ray_cs */
 
 module_init(init_ray_cs);
index 58b101389ffa5014bc5ba14c4618412afa7538eb..cfb0b18a4c40102f4ef0c78cd9d25d31b1a9ded0 100644 (file)
@@ -2267,13 +2267,7 @@ static void __exit wl3501_exit_module(void)
 {
        dprintk(0, ": unloading");
        pcmcia_unregister_driver(&wl3501_driver);
-       while (wl3501_dev_list) {
-               /* Mark the device as non-existing to minimize calls to card */
-               wl3501_dev_list->state &= ~DEV_PRESENT;
-               if (wl3501_dev_list->state & DEV_CONFIG)
-                       wl3501_release(wl3501_dev_list);
-               wl3501_detach(wl3501_dev_list);
-       }
+       BUG_ON(wl3501_dev_list != NULL);
 }
 
 module_init(wl3501_init_module);
index 58706683b886d9a91f950a26614e09d7d9352890..f828b97ce9e74f1b6d1d413184aa121f49552cb8 100644 (file)
@@ -401,10 +401,7 @@ static int __init init_parport_cs(void)
 static void __exit exit_parport_cs(void)
 {
        pcmcia_unregister_driver(&parport_cs_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL)
-               parport_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_parport_cs);
index c0b9e1cc20cac7881fa3d2f82cecf68878c26c82..b82c0df05b9fdb1723e69a998819de035f5d11d2 100644 (file)
@@ -347,10 +347,7 @@ static int __init init_aha152x_cs(void)
 static void __exit exit_aha152x_cs(void)
 {
        pcmcia_unregister_driver(&aha152x_cs_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL)
-               aha152x_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_aha152x_cs);
index c841137e73a9769f0e4aca63fe2f6250383b3105..67d98b20650fdec32819b8223f2130a9fa85bce5 100644 (file)
@@ -328,10 +328,7 @@ static int __init init_fdomain_cs(void)
 static void __exit exit_fdomain_cs(void)
 {
        pcmcia_unregister_driver(&fdomain_cs_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL)
-               fdomain_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_fdomain_cs);
index 0d0bbd26a5f2543bb4b591915740c811605176bb..b6d615a6b4473a52fffd40a32ed3fc3f16e93ee8 100644 (file)
@@ -2194,10 +2194,9 @@ static void __exit nsp_cs_exit(void)
 
 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,68))
        pcmcia_unregister_driver(&nsp_driver);
+       BUG_ON(dev_list != NULL);
 #else
        unregister_pcmcia_driver(&dev_info);
-#endif
-
        /* XXX: this really needs to move into generic code.. */
        while (dev_list != NULL) {
                if (dev_list->state & DEV_CONFIG) {
@@ -2205,6 +2204,7 @@ static void __exit nsp_cs_exit(void)
                }
                nsp_cs_detach(dev_list);
        }
+#endif
 }
 
 
index 584b51314041527deb681996b0a6ba2f30ce1a0a..23ac561c849bc988e81e40803ac176c1e2acafe9 100644 (file)
@@ -432,10 +432,7 @@ static int __init init_qlogic_cs(void)
 static void __exit exit_qlogic_cs(void)
 {
        pcmcia_unregister_driver(&qlogic_cs_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL)
-               qlogic_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 MODULE_AUTHOR("Tom Zerucha, Michael Griffith");
index 6be72e5a2c4fc1659c5d0d56377d7e0e6fffc24a..6b592a0d2fac0f69314436715ad69a691fe60467 100644 (file)
@@ -749,10 +749,7 @@ static int __init init_serial_cs(void)
 static void __exit exit_serial_cs(void)
 {
        pcmcia_unregister_driver(&serial_cs_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL)
-               serial_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_serial_cs);
index f216f6a6db52fc33ce6c8ef9128817a76ba2fcb2..789c17c65b03ff3290154a3d38f4fcbb8cc5ba83 100644 (file)
@@ -313,10 +313,7 @@ static int __init ixj_pcmcia_init(void)
 static void ixj_pcmcia_exit(void)
 {
        pcmcia_unregister_driver(&ixj_driver);
-
-       /* XXX: this really needs to move into generic code.. */
-       while (dev_list != NULL)
-               ixj_detach(dev_list);
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(ixj_pcmcia_init);
index 0434acf1f75ac8b96fb675f5a80e2add5da59101..1276b3652601c39dc56c51e2f35addd108af45b4 100644 (file)
@@ -273,15 +273,6 @@ static void snd_pdacf_detach(dev_link_t *link)
        snd_card_free_in_thread(chip->card);
 }
 
-/*
- * snd_pdacf_detach_all - detach all instances linked to the hw
- */
-static void snd_pdacf_detach_all(void)
-{
-       while (dev_list != NULL)
-               snd_pdacf_detach(dev_list);
-}
-
 /*
  * configuration callback
  */
@@ -413,7 +404,7 @@ static int __init init_pdacf(void)
 static void __exit exit_pdacf(void)
 {
        pcmcia_unregister_driver(&pdacf_cs_driver);
-       snd_pdacf_detach_all();
+       BUG_ON(dev_list != NULL);
 }
 
 module_init(init_pdacf);
index 1cd4a2751124d33d9879768c276f3dfed40cae43..ad2917e4e69fd918a3c041844462ce53247c914e 100644 (file)
@@ -265,15 +265,6 @@ void snd_vxpocket_detach(struct snd_vxp_entry *hw, dev_link_t *link)
        snd_card_free_in_thread(chip->card);
 }
 
-/*
- * snd_vxpocket_detach_all - detach all instances linked to the hw
- */
-void snd_vxpocket_detach_all(struct snd_vxp_entry *hw)
-{
-       while (hw->dev_list != NULL)
-               snd_vxpocket_detach(hw, hw->dev_list);
-}
-
 /*
  * configuration callback
  */
@@ -397,4 +388,3 @@ static int vxpocket_event(event_t event, int priority, event_callback_args_t *ar
 EXPORT_SYMBOL(snd_vxpocket_ops);
 EXPORT_SYMBOL(snd_vxpocket_attach);
 EXPORT_SYMBOL(snd_vxpocket_detach);
-EXPORT_SYMBOL(snd_vxpocket_detach_all);
index 63aebb2b07f2f0f279521c97a78fc87b177a6818..0818bd448e28a834d7a7d86baae0409dba8e19ac 100644 (file)
@@ -165,7 +165,7 @@ static int __init init_vxpocket(void)
 static void __exit exit_vxpocket(void)
 {
        pcmcia_unregister_driver(&vxp_cs_driver);
-       snd_vxpocket_detach_all(&hw_entry);
+       BUG_ON(hw_entry.dev_list != NULL);
 }
 
 module_init(init_vxpocket);
index 2902a3b5d5a6b8f4a1a913dbb0e210b999b0f3c3..c051424ccf5cebc98b816e300e000e955f0375d5 100644 (file)
@@ -77,7 +77,6 @@ void vx_set_mic_level(vx_core_t *chip, int level);
  */
 dev_link_t *snd_vxpocket_attach(struct snd_vxp_entry *hw);
 void snd_vxpocket_detach(struct snd_vxp_entry *hw, dev_link_t *link);
-void snd_vxpocket_detach_all(struct snd_vxp_entry *hw);
 
 int vxp_add_mic_controls(vx_core_t *chip);