aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_isr.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_isr.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index c8e906c702a1..41e50c2bec0f 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -1718,6 +1718,25 @@ qla24xx_msix_rsp_q(int irq, void *dev_id)
1718} 1718}
1719 1719
1720static irqreturn_t 1720static irqreturn_t
1721qla25xx_msix_rsp_q(int irq, void *dev_id)
1722{
1723 struct qla_hw_data *ha;
1724 struct rsp_que *rsp;
1725
1726 rsp = (struct rsp_que *) dev_id;
1727 if (!rsp) {
1728 printk(KERN_INFO
1729 "%s(): NULL response queue pointer\n", __func__);
1730 return IRQ_NONE;
1731 }
1732 ha = rsp->hw;
1733
1734 queue_work_on((int) (rsp->id - 1), ha->wq, &rsp->q_work);
1735
1736 return IRQ_HANDLED;
1737}
1738
1739static irqreturn_t
1721qla24xx_msix_default(int irq, void *dev_id) 1740qla24xx_msix_default(int irq, void *dev_id)
1722{ 1741{
1723 scsi_qla_host_t *vha; 1742 scsi_qla_host_t *vha;
@@ -1806,9 +1825,10 @@ struct qla_init_msix_entry {
1806 irq_handler_t handler; 1825 irq_handler_t handler;
1807}; 1826};
1808 1827
1809static struct qla_init_msix_entry msix_entries[2] = { 1828static struct qla_init_msix_entry msix_entries[3] = {
1810 { "qla2xxx (default)", qla24xx_msix_default }, 1829 { "qla2xxx (default)", qla24xx_msix_default },
1811 { "qla2xxx (rsp_q)", qla24xx_msix_rsp_q }, 1830 { "qla2xxx (rsp_q)", qla24xx_msix_rsp_q },
1831 { "qla2xxx (multiq)", qla25xx_msix_rsp_q },
1812}; 1832};
1813 1833
1814static void 1834static void