diff options
author | Scott Feldman <scofeldm@cisco.com> | 2008-09-24 14:23:42 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-09-24 20:48:38 -0400 |
commit | 8f4d248cb7c1873275608f267e525e08bcbd543b (patch) | |
tree | f0ded910948a8a4c77f2f3f7a7287ef015872275 /drivers/net/enic | |
parent | 25f0a061d9e491c4b17976065443271e2ddd383f (diff) |
enic: Bug fix: Free MSI intr with correct data handle
Bug fix: Free MSI intr with correct data handle
Use davem proposed naming for MSI-X tx/rx vectors (ethX-tx-0, ethX-rx-0)
Signed-off-by: Scott Feldman <scofeldm@cisco.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net/enic')
-rw-r--r-- | drivers/net/enic/enic_main.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c index 03b646a5aec8..d403ce29a141 100644 --- a/drivers/net/enic/enic_main.c +++ b/drivers/net/enic/enic_main.c | |||
@@ -1133,9 +1133,11 @@ static void enic_free_intr(struct enic *enic) | |||
1133 | 1133 | ||
1134 | switch (vnic_dev_get_intr_mode(enic->vdev)) { | 1134 | switch (vnic_dev_get_intr_mode(enic->vdev)) { |
1135 | case VNIC_DEV_INTR_MODE_INTX: | 1135 | case VNIC_DEV_INTR_MODE_INTX: |
1136 | case VNIC_DEV_INTR_MODE_MSI: | ||
1137 | free_irq(enic->pdev->irq, netdev); | 1136 | free_irq(enic->pdev->irq, netdev); |
1138 | break; | 1137 | break; |
1138 | case VNIC_DEV_INTR_MODE_MSI: | ||
1139 | free_irq(enic->pdev->irq, enic); | ||
1140 | break; | ||
1139 | case VNIC_DEV_INTR_MODE_MSIX: | 1141 | case VNIC_DEV_INTR_MODE_MSIX: |
1140 | for (i = 0; i < ARRAY_SIZE(enic->msix); i++) | 1142 | for (i = 0; i < ARRAY_SIZE(enic->msix); i++) |
1141 | if (enic->msix[i].requested) | 1143 | if (enic->msix[i].requested) |
@@ -1170,12 +1172,12 @@ static int enic_request_intr(struct enic *enic) | |||
1170 | case VNIC_DEV_INTR_MODE_MSIX: | 1172 | case VNIC_DEV_INTR_MODE_MSIX: |
1171 | 1173 | ||
1172 | sprintf(enic->msix[ENIC_MSIX_RQ].devname, | 1174 | sprintf(enic->msix[ENIC_MSIX_RQ].devname, |
1173 | "%.11s-rx", netdev->name); | 1175 | "%.11s-rx-0", netdev->name); |
1174 | enic->msix[ENIC_MSIX_RQ].isr = enic_isr_msix_rq; | 1176 | enic->msix[ENIC_MSIX_RQ].isr = enic_isr_msix_rq; |
1175 | enic->msix[ENIC_MSIX_RQ].devid = enic; | 1177 | enic->msix[ENIC_MSIX_RQ].devid = enic; |
1176 | 1178 | ||
1177 | sprintf(enic->msix[ENIC_MSIX_WQ].devname, | 1179 | sprintf(enic->msix[ENIC_MSIX_WQ].devname, |
1178 | "%.11s-tx", netdev->name); | 1180 | "%.11s-tx-0", netdev->name); |
1179 | enic->msix[ENIC_MSIX_WQ].isr = enic_isr_msix_wq; | 1181 | enic->msix[ENIC_MSIX_WQ].isr = enic_isr_msix_wq; |
1180 | enic->msix[ENIC_MSIX_WQ].devid = enic; | 1182 | enic->msix[ENIC_MSIX_WQ].devid = enic; |
1181 | 1183 | ||