@@ -1351,12 +1351,6 @@ static struct pcmcia_driver cb_gpib_cs_driver = {
13511351 .resume = cb_gpib_resume ,
13521352};
13531353
1354- int cb_pcmcia_init_module (void )
1355- {
1356- pcmcia_register_driver (& cb_gpib_cs_driver );
1357- return 0 ;
1358- }
1359-
13601354void cb_pcmcia_cleanup_module (void )
13611355{
13621356 DEBUG (0 , "cb_gpib_cs: unloading\n" );
@@ -1506,32 +1500,102 @@ void cb_pcmcia_detach(gpib_board_t *board)
15061500
15071501static int __init cb7210_init_module (void )
15081502{
1509- int err = 0 ;
1510- int result ;
1503+ int ret ;
1504+
1505+ ret = pci_register_driver (& cb7210_pci_driver );
1506+ if (ret ) {
1507+ pr_err ("cb7210: pci_register_driver failed: error = %d\n" , ret );
1508+ return ret ;
1509+ }
1510+
1511+ ret = gpib_register_driver (& cb_pci_interface , THIS_MODULE );
1512+ if (ret ) {
1513+ pr_err ("cb7210: gpib_register_driver failed: error = %d\n" , ret );
1514+ goto err_pci ;
1515+ }
1516+
1517+ ret = gpib_register_driver (& cb_isa_interface , THIS_MODULE );
1518+ if (ret ) {
1519+ pr_err ("cb7210: gpib_register_driver failed: error = %d\n" , ret );
1520+ goto err_isa ;
1521+ }
15111522
1512- result = pci_register_driver ( & cb7210_pci_driver );
1513- if (result ) {
1514- pr_err ("cb7210: pci_driver_register failed! \n" );
1515- return result ;
1523+ ret = gpib_register_driver ( & cb_pci_accel_interface , THIS_MODULE );
1524+ if (ret ) {
1525+ pr_err ("cb7210: gpib_register_driver failed: error = %d \n" , ret );
1526+ goto err_pci_accel ;
15161527 }
15171528
1518- gpib_register_driver (& cb_pci_interface , THIS_MODULE );
1519- gpib_register_driver (& cb_isa_interface , THIS_MODULE );
1520- gpib_register_driver (& cb_pci_accel_interface , THIS_MODULE );
1521- gpib_register_driver (& cb_pci_unaccel_interface , THIS_MODULE );
1522- gpib_register_driver (& cb_isa_accel_interface , THIS_MODULE );
1523- gpib_register_driver (& cb_isa_unaccel_interface , THIS_MODULE );
1524-
1525- #ifdef GPIB__PCMCIA
1526- gpib_register_driver (& cb_pcmcia_interface , THIS_MODULE );
1527- gpib_register_driver (& cb_pcmcia_accel_interface , THIS_MODULE );
1528- gpib_register_driver (& cb_pcmcia_unaccel_interface , THIS_MODULE );
1529- err += cb_pcmcia_init_module ();
1529+ ret = gpib_register_driver (& cb_pci_unaccel_interface , THIS_MODULE );
1530+ if (ret ) {
1531+ pr_err ("cb7210: gpib_register_driver failed: error = %d\n" , ret );
1532+ goto err_pci_unaccel ;
1533+ }
1534+
1535+ ret = gpib_register_driver (& cb_isa_accel_interface , THIS_MODULE );
1536+ if (ret ) {
1537+ pr_err ("cb7210: gpib_register_driver failed: error = %d\n" , ret );
1538+ goto err_isa_accel ;
1539+ }
1540+
1541+ ret = gpib_register_driver (& cb_isa_unaccel_interface , THIS_MODULE );
1542+ if (ret ) {
1543+ pr_err ("cb7210: gpib_register_driver failed: error = %d\n" , ret );
1544+ goto err_isa_unaccel ;
1545+ }
1546+
1547+ #ifdef GPIB_PCMCIA
1548+ ret = gpib_register_driver (& cb_pcmcia_interface , THIS_MODULE );
1549+ if (ret ) {
1550+ pr_err ("cb7210: gpib_register_driver failed: error = %d\n" , ret );
1551+ goto err_pcmcia ;
1552+ }
1553+
1554+ ret = gpib_register_driver (& cb_pcmcia_accel_interface , THIS_MODULE );
1555+ if (ret ) {
1556+ pr_err ("cb7210: gpib_register_driver failed: error = %d\n" , ret );
1557+ goto err_pcmcia_accel ;
1558+ }
1559+
1560+ ret = gpib_register_driver (& cb_pcmcia_unaccel_interface , THIS_MODULE );
1561+ if (ret ) {
1562+ pr_err ("cb7210: gpib_register_driver failed: error = %d\n" , ret );
1563+ goto err_pcmcia_unaccel ;
1564+ }
1565+
1566+ ret = pcmcia_register_driver (& cb_gpib_cs_driver );
1567+ if (ret ) {
1568+ pr_err ("cb7210: pcmcia_register_driver failed: error = %d\n" , ret );
1569+ goto err_pcmcia_driver ;
1570+ }
15301571#endif
1531- if (err )
1532- return -1 ;
15331572
15341573 return 0 ;
1574+
1575+ #ifdef GPIB_PCMCIA
1576+ err_pcmcia_driver :
1577+ gpib_unregister_driver (& cb_pcmcia_unaccel_interface );
1578+ err_pcmcia_unaccel :
1579+ gpib_unregister_driver (& cb_pcmcia_accel_interface );
1580+ err_pcmcia_accel :
1581+ gpib_unregister_driver (& cb_pcmcia_interface );
1582+ err_pcmcia :
1583+ #endif
1584+ gpib_unregister_driver (& cb_isa_unaccel_interface );
1585+ err_isa_unaccel :
1586+ gpib_unregister_driver (& cb_isa_accel_interface );
1587+ err_isa_accel :
1588+ gpib_unregister_driver (& cb_pci_unaccel_interface );
1589+ err_pci_unaccel :
1590+ gpib_unregister_driver (& cb_pci_accel_interface );
1591+ err_pci_accel :
1592+ gpib_unregister_driver (& cb_isa_interface );
1593+ err_isa :
1594+ gpib_unregister_driver (& cb_pci_interface );
1595+ err_pci :
1596+ pci_unregister_driver (& cb7210_pci_driver );
1597+
1598+ return ret ;
15351599}
15361600
15371601static void __exit cb7210_exit_module (void )
0 commit comments