aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/bfa/include/defs/bfa_defs_cee.h2
-rw-r--r--drivers/scsi/bfa/include/defs/bfa_defs_status.h4
-rw-r--r--drivers/scsi/fcoe/fcoe.c18
-rw-r--r--drivers/scsi/ipr.c6
-rw-r--r--drivers/scsi/iscsi_tcp.c4
-rw-r--r--drivers/scsi/libsas/sas_scsi_host.c2
-rw-r--r--drivers/scsi/pcmcia/aha152x_stub.c9
-rw-r--r--drivers/scsi/pcmcia/fdomain_stub.c9
-rw-r--r--drivers/scsi/pcmcia/nsp_cs.c23
-rw-r--r--drivers/scsi/pcmcia/nsp_cs.h1
-rw-r--r--drivers/scsi/pcmcia/qlogic_stub.c13
-rw-r--r--drivers/scsi/pcmcia/sym53c500_cs.c9
-rw-r--r--drivers/scsi/zorro7xx.c1
13 files changed, 34 insertions, 67 deletions
diff --git a/drivers/scsi/bfa/include/defs/bfa_defs_cee.h b/drivers/scsi/bfa/include/defs/bfa_defs_cee.h
index b0ac9ac15c5d..6eaf519eccdc 100644
--- a/drivers/scsi/bfa/include/defs/bfa_defs_cee.h
+++ b/drivers/scsi/bfa/include/defs/bfa_defs_cee.h
@@ -50,7 +50,7 @@ struct bfa_cee_lldp_str_s {
50}; 50};
51 51
52 52
53/* LLDP paramters */ 53/* LLDP parameters */
54struct bfa_cee_lldp_cfg_s { 54struct bfa_cee_lldp_cfg_s {
55 struct bfa_cee_lldp_str_s chassis_id; 55 struct bfa_cee_lldp_str_s chassis_id;
56 struct bfa_cee_lldp_str_s port_id; 56 struct bfa_cee_lldp_str_s port_id;
diff --git a/drivers/scsi/bfa/include/defs/bfa_defs_status.h b/drivers/scsi/bfa/include/defs/bfa_defs_status.h
index 4374494bd566..ec78b4cb121a 100644
--- a/drivers/scsi/bfa/include/defs/bfa_defs_status.h
+++ b/drivers/scsi/bfa/include/defs/bfa_defs_status.h
@@ -223,9 +223,9 @@ enum bfa_status {
223 BFA_STATUS_IM_PVID_NON_ZERO = 140, /* Port VLAN ID (PVID) is Set to 223 BFA_STATUS_IM_PVID_NON_ZERO = 140, /* Port VLAN ID (PVID) is Set to
224 * Non-Zero Value */ 224 * Non-Zero Value */
225 BFA_STATUS_IM_INETCFG_LOCK_FAILED = 141, /* Acquiring Network 225 BFA_STATUS_IM_INETCFG_LOCK_FAILED = 141, /* Acquiring Network
226 * Subsytem Lock Failed.Please 226 * Subsystem Lock Failed.Please
227 * try after some time */ 227 * try after some time */
228 BFA_STATUS_IM_GET_INETCFG_FAILED = 142, /* Acquiring Network Subsytem 228 BFA_STATUS_IM_GET_INETCFG_FAILED = 142, /* Acquiring Network Subsystem
229 * handle Failed. Please try 229 * handle Failed. Please try
230 * after some time */ 230 * after some time */
231 BFA_STATUS_IM_NOT_BOUND = 143, /* IM driver is not active */ 231 BFA_STATUS_IM_NOT_BOUND = 143, /* IM driver is not active */
diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c
index f01b9b44e8aa..54c870b8c328 100644
--- a/drivers/scsi/fcoe/fcoe.c
+++ b/drivers/scsi/fcoe/fcoe.c
@@ -309,10 +309,10 @@ static int fcoe_interface_setup(struct fcoe_interface *fcoe,
309 * for multiple unicast MACs. 309 * for multiple unicast MACs.
310 */ 310 */
311 memcpy(flogi_maddr, (u8[6]) FC_FCOE_FLOGI_MAC, ETH_ALEN); 311 memcpy(flogi_maddr, (u8[6]) FC_FCOE_FLOGI_MAC, ETH_ALEN);
312 dev_unicast_add(netdev, flogi_maddr); 312 dev_uc_add(netdev, flogi_maddr);
313 if (fip->spma) 313 if (fip->spma)
314 dev_unicast_add(netdev, fip->ctl_src_addr); 314 dev_uc_add(netdev, fip->ctl_src_addr);
315 dev_mc_add(netdev, FIP_ALL_ENODE_MACS, ETH_ALEN, 0); 315 dev_mc_add(netdev, FIP_ALL_ENODE_MACS);
316 316
317 /* 317 /*
318 * setup the receive function from ethernet driver 318 * setup the receive function from ethernet driver
@@ -395,10 +395,10 @@ void fcoe_interface_cleanup(struct fcoe_interface *fcoe)
395 395
396 /* Delete secondary MAC addresses */ 396 /* Delete secondary MAC addresses */
397 memcpy(flogi_maddr, (u8[6]) FC_FCOE_FLOGI_MAC, ETH_ALEN); 397 memcpy(flogi_maddr, (u8[6]) FC_FCOE_FLOGI_MAC, ETH_ALEN);
398 dev_unicast_delete(netdev, flogi_maddr); 398 dev_uc_del(netdev, flogi_maddr);
399 if (fip->spma) 399 if (fip->spma)
400 dev_unicast_delete(netdev, fip->ctl_src_addr); 400 dev_uc_del(netdev, fip->ctl_src_addr);
401 dev_mc_delete(netdev, FIP_ALL_ENODE_MACS, ETH_ALEN, 0); 401 dev_mc_del(netdev, FIP_ALL_ENODE_MACS);
402 402
403 /* Tell the LLD we are done w/ FCoE */ 403 /* Tell the LLD we are done w/ FCoE */
404 ops = netdev->netdev_ops; 404 ops = netdev->netdev_ops;
@@ -491,9 +491,9 @@ static void fcoe_update_src_mac(struct fc_lport *lport, u8 *addr)
491 491
492 rtnl_lock(); 492 rtnl_lock();
493 if (!is_zero_ether_addr(port->data_src_addr)) 493 if (!is_zero_ether_addr(port->data_src_addr))
494 dev_unicast_delete(fcoe->netdev, port->data_src_addr); 494 dev_uc_del(fcoe->netdev, port->data_src_addr);
495 if (!is_zero_ether_addr(addr)) 495 if (!is_zero_ether_addr(addr))
496 dev_unicast_add(fcoe->netdev, addr); 496 dev_uc_add(fcoe->netdev, addr);
497 memcpy(port->data_src_addr, addr, ETH_ALEN); 497 memcpy(port->data_src_addr, addr, ETH_ALEN);
498 rtnl_unlock(); 498 rtnl_unlock();
499} 499}
@@ -820,7 +820,7 @@ static void fcoe_if_destroy(struct fc_lport *lport)
820 820
821 rtnl_lock(); 821 rtnl_lock();
822 if (!is_zero_ether_addr(port->data_src_addr)) 822 if (!is_zero_ether_addr(port->data_src_addr))
823 dev_unicast_delete(netdev, port->data_src_addr); 823 dev_uc_del(netdev, port->data_src_addr);
824 rtnl_unlock(); 824 rtnl_unlock();
825 825
826 /* receives may not be stopped until after this */ 826 /* receives may not be stopped until after this */
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index 520461b9bc09..b90c118119d7 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -4295,7 +4295,7 @@ static void ipr_slave_destroy(struct scsi_device *sdev)
4295 res = (struct ipr_resource_entry *) sdev->hostdata; 4295 res = (struct ipr_resource_entry *) sdev->hostdata;
4296 if (res) { 4296 if (res) {
4297 if (res->sata_port) 4297 if (res->sata_port)
4298 ata_port_disable(res->sata_port->ap); 4298 res->sata_port->ap->link.device[0].class = ATA_DEV_NONE;
4299 sdev->hostdata = NULL; 4299 sdev->hostdata = NULL;
4300 res->sdev = NULL; 4300 res->sdev = NULL;
4301 res->sata_port = NULL; 4301 res->sata_port = NULL;
@@ -5751,13 +5751,13 @@ static void ipr_ata_phy_reset(struct ata_port *ap)
5751 rc = ipr_device_reset(ioa_cfg, res); 5751 rc = ipr_device_reset(ioa_cfg, res);
5752 5752
5753 if (rc) { 5753 if (rc) {
5754 ata_port_disable(ap); 5754 ap->link.device[0].class = ATA_DEV_NONE;
5755 goto out_unlock; 5755 goto out_unlock;
5756 } 5756 }
5757 5757
5758 ap->link.device[0].class = res->ata_class; 5758 ap->link.device[0].class = res->ata_class;
5759 if (ap->link.device[0].class == ATA_DEV_UNKNOWN) 5759 if (ap->link.device[0].class == ATA_DEV_UNKNOWN)
5760 ata_port_disable(ap); 5760 ap->link.device[0].class = ATA_DEV_NONE;
5761 5761
5762out_unlock: 5762out_unlock:
5763 spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags); 5763 spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags);
diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c
index 02143af7c1af..9eae04afa9a0 100644
--- a/drivers/scsi/iscsi_tcp.c
+++ b/drivers/scsi/iscsi_tcp.c
@@ -599,9 +599,9 @@ static void iscsi_sw_tcp_conn_stop(struct iscsi_cls_conn *cls_conn, int flag)
599 set_bit(ISCSI_SUSPEND_BIT, &conn->suspend_rx); 599 set_bit(ISCSI_SUSPEND_BIT, &conn->suspend_rx);
600 write_unlock_bh(&tcp_sw_conn->sock->sk->sk_callback_lock); 600 write_unlock_bh(&tcp_sw_conn->sock->sk->sk_callback_lock);
601 601
602 if (sock->sk->sk_sleep) { 602 if (sk_sleep(sock->sk) && waitqueue_active(sk_sleep(sock->sk))) {
603 sock->sk->sk_err = EIO; 603 sock->sk->sk_err = EIO;
604 wake_up_interruptible(sock->sk->sk_sleep); 604 wake_up_interruptible(sk_sleep(sock->sk));
605 } 605 }
606 606
607 iscsi_conn_stop(cls_conn, flag); 607 iscsi_conn_stop(cls_conn, flag);
diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
index 822835055cef..b71b6d41baa1 100644
--- a/drivers/scsi/libsas/sas_scsi_host.c
+++ b/drivers/scsi/libsas/sas_scsi_host.c
@@ -818,7 +818,7 @@ void sas_slave_destroy(struct scsi_device *scsi_dev)
818 struct domain_device *dev = sdev_to_domain_dev(scsi_dev); 818 struct domain_device *dev = sdev_to_domain_dev(scsi_dev);
819 819
820 if (dev_is_sata(dev)) 820 if (dev_is_sata(dev))
821 ata_port_disable(dev->sata_dev.ap); 821 dev->sata_dev.ap->link.device[0].class = ATA_DEV_NONE;
822} 822}
823 823
824int sas_change_queue_depth(struct scsi_device *scsi_dev, int new_depth, 824int sas_change_queue_depth(struct scsi_device *scsi_dev, int new_depth,
diff --git a/drivers/scsi/pcmcia/aha152x_stub.c b/drivers/scsi/pcmcia/aha152x_stub.c
index 528733b4a392..9d70aef99227 100644
--- a/drivers/scsi/pcmcia/aha152x_stub.c
+++ b/drivers/scsi/pcmcia/aha152x_stub.c
@@ -80,7 +80,6 @@ MODULE_LICENSE("Dual MPL/GPL");
80 80
81typedef struct scsi_info_t { 81typedef struct scsi_info_t {
82 struct pcmcia_device *p_dev; 82 struct pcmcia_device *p_dev;
83 dev_node_t node;
84 struct Scsi_Host *host; 83 struct Scsi_Host *host;
85} scsi_info_t; 84} scsi_info_t;
86 85
@@ -105,7 +104,6 @@ static int aha152x_probe(struct pcmcia_device *link)
105 link->io.NumPorts1 = 0x20; 104 link->io.NumPorts1 = 0x20;
106 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; 105 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
107 link->io.IOAddrLines = 10; 106 link->io.IOAddrLines = 10;
108 link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
109 link->conf.Attributes = CONF_ENABLE_IRQ; 107 link->conf.Attributes = CONF_ENABLE_IRQ;
110 link->conf.IntType = INT_MEMORY_AND_IO; 108 link->conf.IntType = INT_MEMORY_AND_IO;
111 link->conf.Present = PRESENT_OPTION; 109 link->conf.Present = PRESENT_OPTION;
@@ -160,8 +158,7 @@ static int aha152x_config_cs(struct pcmcia_device *link)
160 if (ret) 158 if (ret)
161 goto failed; 159 goto failed;
162 160
163 ret = pcmcia_request_irq(link, &link->irq); 161 if (!link->irq)
164 if (ret)
165 goto failed; 162 goto failed;
166 163
167 ret = pcmcia_request_configuration(link, &link->conf); 164 ret = pcmcia_request_configuration(link, &link->conf);
@@ -172,7 +169,7 @@ static int aha152x_config_cs(struct pcmcia_device *link)
172 memset(&s, 0, sizeof(s)); 169 memset(&s, 0, sizeof(s));
173 s.conf = "PCMCIA setup"; 170 s.conf = "PCMCIA setup";
174 s.io_port = link->io.BasePort1; 171 s.io_port = link->io.BasePort1;
175 s.irq = link->irq.AssignedIRQ; 172 s.irq = link->irq;
176 s.scsiid = host_id; 173 s.scsiid = host_id;
177 s.reconnect = reconnect; 174 s.reconnect = reconnect;
178 s.parity = parity; 175 s.parity = parity;
@@ -187,8 +184,6 @@ static int aha152x_config_cs(struct pcmcia_device *link)
187 goto failed; 184 goto failed;
188 } 185 }
189 186
190 sprintf(info->node.dev_name, "scsi%d", host->host_no);
191 link->dev_node = &info->node;
192 info->host = host; 187 info->host = host;
193 188
194 return 0; 189 return 0;
diff --git a/drivers/scsi/pcmcia/fdomain_stub.c b/drivers/scsi/pcmcia/fdomain_stub.c
index 914040684079..21b141151dfc 100644
--- a/drivers/scsi/pcmcia/fdomain_stub.c
+++ b/drivers/scsi/pcmcia/fdomain_stub.c
@@ -63,7 +63,6 @@ MODULE_LICENSE("Dual MPL/GPL");
63 63
64typedef struct scsi_info_t { 64typedef struct scsi_info_t {
65 struct pcmcia_device *p_dev; 65 struct pcmcia_device *p_dev;
66 dev_node_t node;
67 struct Scsi_Host *host; 66 struct Scsi_Host *host;
68} scsi_info_t; 67} scsi_info_t;
69 68
@@ -88,7 +87,6 @@ static int fdomain_probe(struct pcmcia_device *link)
88 link->io.NumPorts1 = 0x10; 87 link->io.NumPorts1 = 0x10;
89 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; 88 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
90 link->io.IOAddrLines = 10; 89 link->io.IOAddrLines = 10;
91 link->irq.Attributes = IRQ_TYPE_EXCLUSIVE;
92 link->conf.Attributes = CONF_ENABLE_IRQ; 90 link->conf.Attributes = CONF_ENABLE_IRQ;
93 link->conf.IntType = INT_MEMORY_AND_IO; 91 link->conf.IntType = INT_MEMORY_AND_IO;
94 link->conf.Present = PRESENT_OPTION; 92 link->conf.Present = PRESENT_OPTION;
@@ -133,8 +131,7 @@ static int fdomain_config(struct pcmcia_device *link)
133 if (ret) 131 if (ret)
134 goto failed; 132 goto failed;
135 133
136 ret = pcmcia_request_irq(link, &link->irq); 134 if (!link->irq)
137 if (ret)
138 goto failed; 135 goto failed;
139 ret = pcmcia_request_configuration(link, &link->conf); 136 ret = pcmcia_request_configuration(link, &link->conf);
140 if (ret) 137 if (ret)
@@ -144,7 +141,7 @@ static int fdomain_config(struct pcmcia_device *link)
144 release_region(link->io.BasePort1, link->io.NumPorts1); 141 release_region(link->io.BasePort1, link->io.NumPorts1);
145 142
146 /* Set configuration options for the fdomain driver */ 143 /* Set configuration options for the fdomain driver */
147 sprintf(str, "%d,%d", link->io.BasePort1, link->irq.AssignedIRQ); 144 sprintf(str, "%d,%d", link->io.BasePort1, link->irq);
148 fdomain_setup(str); 145 fdomain_setup(str);
149 146
150 host = __fdomain_16x0_detect(&fdomain_driver_template); 147 host = __fdomain_16x0_detect(&fdomain_driver_template);
@@ -157,8 +154,6 @@ static int fdomain_config(struct pcmcia_device *link)
157 goto failed; 154 goto failed;
158 scsi_scan_host(host); 155 scsi_scan_host(host);
159 156
160 sprintf(info->node.dev_name, "scsi%d", host->host_no);
161 link->dev_node = &info->node;
162 info->host = host; 157 info->host = host;
163 158
164 return 0; 159 return 0;
diff --git a/drivers/scsi/pcmcia/nsp_cs.c b/drivers/scsi/pcmcia/nsp_cs.c
index 021246454872..0f0e112c3f8e 100644
--- a/drivers/scsi/pcmcia/nsp_cs.c
+++ b/drivers/scsi/pcmcia/nsp_cs.c
@@ -1563,13 +1563,6 @@ static int nsp_cs_probe(struct pcmcia_device *link)
1563 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; 1563 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
1564 link->io.IOAddrLines = 10; /* not used */ 1564 link->io.IOAddrLines = 10; /* not used */
1565 1565
1566 /* Interrupt setup */
1567 link->irq.Attributes = IRQ_TYPE_EXCLUSIVE;
1568
1569 /* Interrupt handler */
1570 link->irq.Handler = &nspintr;
1571 link->irq.Attributes |= IRQF_SHARED;
1572
1573 /* General socket configuration */ 1566 /* General socket configuration */
1574 link->conf.Attributes = CONF_ENABLE_IRQ; 1567 link->conf.Attributes = CONF_ENABLE_IRQ;
1575 link->conf.IntType = INT_MEMORY_AND_IO; 1568 link->conf.IntType = INT_MEMORY_AND_IO;
@@ -1646,8 +1639,7 @@ static int nsp_cs_config_check(struct pcmcia_device *p_dev,
1646 } 1639 }
1647 1640
1648 /* Do we need to allocate an interrupt? */ 1641 /* Do we need to allocate an interrupt? */
1649 if (cfg->irq.IRQInfo1 || dflt->irq.IRQInfo1) 1642 p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
1650 p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
1651 1643
1652 /* IO window settings */ 1644 /* IO window settings */
1653 p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0; 1645 p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
@@ -1720,10 +1712,8 @@ static int nsp_cs_config(struct pcmcia_device *link)
1720 if (ret) 1712 if (ret)
1721 goto cs_failed; 1713 goto cs_failed;
1722 1714
1723 if (link->conf.Attributes & CONF_ENABLE_IRQ) { 1715 if (pcmcia_request_irq(link, nspintr))
1724 if (pcmcia_request_irq(link, &link->irq)) 1716 goto cs_failed;
1725 goto cs_failed;
1726 }
1727 1717
1728 ret = pcmcia_request_configuration(link, &link->conf); 1718 ret = pcmcia_request_configuration(link, &link->conf);
1729 if (ret) 1719 if (ret)
@@ -1741,7 +1731,7 @@ static int nsp_cs_config(struct pcmcia_device *link)
1741 /* Set port and IRQ */ 1731 /* Set port and IRQ */
1742 data->BaseAddress = link->io.BasePort1; 1732 data->BaseAddress = link->io.BasePort1;
1743 data->NumAddress = link->io.NumPorts1; 1733 data->NumAddress = link->io.NumPorts1;
1744 data->IrqNumber = link->irq.AssignedIRQ; 1734 data->IrqNumber = link->irq;
1745 1735
1746 nsp_dbg(NSP_DEBUG_INIT, "I/O[0x%x+0x%x] IRQ %d", 1736 nsp_dbg(NSP_DEBUG_INIT, "I/O[0x%x+0x%x] IRQ %d",
1747 data->BaseAddress, data->NumAddress, data->IrqNumber); 1737 data->BaseAddress, data->NumAddress, data->IrqNumber);
@@ -1764,8 +1754,6 @@ static int nsp_cs_config(struct pcmcia_device *link)
1764 1754
1765 scsi_scan_host(host); 1755 scsi_scan_host(host);
1766 1756
1767 snprintf(info->node.dev_name, sizeof(info->node.dev_name), "scsi%d", host->host_no);
1768 link->dev_node = &info->node;
1769 info->host = host; 1757 info->host = host;
1770 1758
1771 /* Finally, report what we've done */ 1759 /* Finally, report what we've done */
@@ -1775,7 +1763,7 @@ static int nsp_cs_config(struct pcmcia_device *link)
1775 printk(", Vpp %d.%d", link->conf.Vpp/10, link->conf.Vpp%10); 1763 printk(", Vpp %d.%d", link->conf.Vpp/10, link->conf.Vpp%10);
1776 } 1764 }
1777 if (link->conf.Attributes & CONF_ENABLE_IRQ) { 1765 if (link->conf.Attributes & CONF_ENABLE_IRQ) {
1778 printk(", irq %d", link->irq.AssignedIRQ); 1766 printk(", irq %d", link->irq);
1779 } 1767 }
1780 if (link->io.NumPorts1) { 1768 if (link->io.NumPorts1) {
1781 printk(", io 0x%04x-0x%04x", link->io.BasePort1, 1769 printk(", io 0x%04x-0x%04x", link->io.BasePort1,
@@ -1823,7 +1811,6 @@ static void nsp_cs_release(struct pcmcia_device *link)
1823 if (info->host != NULL) { 1811 if (info->host != NULL) {
1824 scsi_remove_host(info->host); 1812 scsi_remove_host(info->host);
1825 } 1813 }
1826 link->dev_node = NULL;
1827 1814
1828 if (link->win) { 1815 if (link->win) {
1829 if (data != NULL) { 1816 if (data != NULL) {
diff --git a/drivers/scsi/pcmcia/nsp_cs.h b/drivers/scsi/pcmcia/nsp_cs.h
index 8c61a4fe1db9..d68c9f267c5e 100644
--- a/drivers/scsi/pcmcia/nsp_cs.h
+++ b/drivers/scsi/pcmcia/nsp_cs.h
@@ -224,7 +224,6 @@
224typedef struct scsi_info_t { 224typedef struct scsi_info_t {
225 struct pcmcia_device *p_dev; 225 struct pcmcia_device *p_dev;
226 struct Scsi_Host *host; 226 struct Scsi_Host *host;
227 dev_node_t node;
228 int stop; 227 int stop;
229} scsi_info_t; 228} scsi_info_t;
230 229
diff --git a/drivers/scsi/pcmcia/qlogic_stub.c b/drivers/scsi/pcmcia/qlogic_stub.c
index f85f094870b4..f0fc6baed9fc 100644
--- a/drivers/scsi/pcmcia/qlogic_stub.c
+++ b/drivers/scsi/pcmcia/qlogic_stub.c
@@ -82,7 +82,6 @@ static struct scsi_host_template qlogicfas_driver_template = {
82 82
83typedef struct scsi_info_t { 83typedef struct scsi_info_t {
84 struct pcmcia_device *p_dev; 84 struct pcmcia_device *p_dev;
85 dev_node_t node;
86 struct Scsi_Host *host; 85 struct Scsi_Host *host;
87 unsigned short manf_id; 86 unsigned short manf_id;
88} scsi_info_t; 87} scsi_info_t;
@@ -161,7 +160,6 @@ static int qlogic_probe(struct pcmcia_device *link)
161 link->io.NumPorts1 = 16; 160 link->io.NumPorts1 = 16;
162 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; 161 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
163 link->io.IOAddrLines = 10; 162 link->io.IOAddrLines = 10;
164 link->irq.Attributes = IRQ_TYPE_EXCLUSIVE;
165 link->conf.Attributes = CONF_ENABLE_IRQ; 163 link->conf.Attributes = CONF_ENABLE_IRQ;
166 link->conf.IntType = INT_MEMORY_AND_IO; 164 link->conf.IntType = INT_MEMORY_AND_IO;
167 link->conf.Present = PRESENT_OPTION; 165 link->conf.Present = PRESENT_OPTION;
@@ -209,8 +207,7 @@ static int qlogic_config(struct pcmcia_device * link)
209 if (ret) 207 if (ret)
210 goto failed; 208 goto failed;
211 209
212 ret = pcmcia_request_irq(link, &link->irq); 210 if (!link->irq)
213 if (ret)
214 goto failed; 211 goto failed;
215 212
216 ret = pcmcia_request_configuration(link, &link->conf); 213 ret = pcmcia_request_configuration(link, &link->conf);
@@ -227,18 +224,16 @@ static int qlogic_config(struct pcmcia_device * link)
227 /* The KXL-810AN has a bigger IO port window */ 224 /* The KXL-810AN has a bigger IO port window */
228 if (link->io.NumPorts1 == 32) 225 if (link->io.NumPorts1 == 32)
229 host = qlogic_detect(&qlogicfas_driver_template, link, 226 host = qlogic_detect(&qlogicfas_driver_template, link,
230 link->io.BasePort1 + 16, link->irq.AssignedIRQ); 227 link->io.BasePort1 + 16, link->irq);
231 else 228 else
232 host = qlogic_detect(&qlogicfas_driver_template, link, 229 host = qlogic_detect(&qlogicfas_driver_template, link,
233 link->io.BasePort1, link->irq.AssignedIRQ); 230 link->io.BasePort1, link->irq);
234 231
235 if (!host) { 232 if (!host) {
236 printk(KERN_INFO "%s: no SCSI devices found\n", qlogic_name); 233 printk(KERN_INFO "%s: no SCSI devices found\n", qlogic_name);
237 goto failed; 234 goto failed;
238 } 235 }
239 236
240 sprintf(info->node.dev_name, "scsi%d", host->host_no);
241 link->dev_node = &info->node;
242 info->host = host; 237 info->host = host;
243 238
244 return 0; 239 return 0;
@@ -258,7 +253,7 @@ static void qlogic_release(struct pcmcia_device *link)
258 253
259 scsi_remove_host(info->host); 254 scsi_remove_host(info->host);
260 255
261 free_irq(link->irq.AssignedIRQ, info->host); 256 free_irq(link->irq, info->host);
262 pcmcia_disable_device(link); 257 pcmcia_disable_device(link);
263 258
264 scsi_host_put(info->host); 259 scsi_host_put(info->host);
diff --git a/drivers/scsi/pcmcia/sym53c500_cs.c b/drivers/scsi/pcmcia/sym53c500_cs.c
index e7564d8f0cbf..a51164171179 100644
--- a/drivers/scsi/pcmcia/sym53c500_cs.c
+++ b/drivers/scsi/pcmcia/sym53c500_cs.c
@@ -191,7 +191,6 @@
191 191
192struct scsi_info_t { 192struct scsi_info_t {
193 struct pcmcia_device *p_dev; 193 struct pcmcia_device *p_dev;
194 dev_node_t node;
195 struct Scsi_Host *host; 194 struct Scsi_Host *host;
196 unsigned short manf_id; 195 unsigned short manf_id;
197}; 196};
@@ -719,8 +718,7 @@ SYM53C500_config(struct pcmcia_device *link)
719 if (ret) 718 if (ret)
720 goto failed; 719 goto failed;
721 720
722 ret = pcmcia_request_irq(link, &link->irq); 721 if (!link->irq)
723 if (ret)
724 goto failed; 722 goto failed;
725 723
726 ret = pcmcia_request_configuration(link, &link->conf); 724 ret = pcmcia_request_configuration(link, &link->conf);
@@ -752,7 +750,7 @@ SYM53C500_config(struct pcmcia_device *link)
752 * 0x320, 0x330, 0x340, 0x350 750 * 0x320, 0x330, 0x340, 0x350
753 */ 751 */
754 port_base = link->io.BasePort1; 752 port_base = link->io.BasePort1;
755 irq_level = link->irq.AssignedIRQ; 753 irq_level = link->irq;
756 754
757 DEB(printk("SYM53C500: port_base=0x%x, irq=%d, fast_pio=%d\n", 755 DEB(printk("SYM53C500: port_base=0x%x, irq=%d, fast_pio=%d\n",
758 port_base, irq_level, USE_FAST_PIO);) 756 port_base, irq_level, USE_FAST_PIO);)
@@ -793,8 +791,6 @@ SYM53C500_config(struct pcmcia_device *link)
793 */ 791 */
794 data->fast_pio = USE_FAST_PIO; 792 data->fast_pio = USE_FAST_PIO;
795 793
796 sprintf(info->node.dev_name, "scsi%d", host->host_no);
797 link->dev_node = &info->node;
798 info->host = host; 794 info->host = host;
799 795
800 if (scsi_add_host(host, NULL)) 796 if (scsi_add_host(host, NULL))
@@ -866,7 +862,6 @@ SYM53C500_probe(struct pcmcia_device *link)
866 link->io.NumPorts1 = 16; 862 link->io.NumPorts1 = 16;
867 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO; 863 link->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
868 link->io.IOAddrLines = 10; 864 link->io.IOAddrLines = 10;
869 link->irq.Attributes = IRQ_TYPE_EXCLUSIVE;
870 link->conf.Attributes = CONF_ENABLE_IRQ; 865 link->conf.Attributes = CONF_ENABLE_IRQ;
871 link->conf.IntType = INT_MEMORY_AND_IO; 866 link->conf.IntType = INT_MEMORY_AND_IO;
872 867
diff --git a/drivers/scsi/zorro7xx.c b/drivers/scsi/zorro7xx.c
index 105449c15fa9..e17764d71476 100644
--- a/drivers/scsi/zorro7xx.c
+++ b/drivers/scsi/zorro7xx.c
@@ -69,6 +69,7 @@ static struct zorro_device_id zorro7xx_zorro_tbl[] __devinitdata = {
69 }, 69 },
70 { 0 } 70 { 0 }
71}; 71};
72MODULE_DEVICE_TABLE(zorro, zorro7xx_zorro_tbl);
72 73
73static int __devinit zorro7xx_init_one(struct zorro_dev *z, 74static int __devinit zorro7xx_init_one(struct zorro_dev *z,
74 const struct zorro_device_id *ent) 75 const struct zorro_device_id *ent)