aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/enic/enic.h2
-rw-r--r--drivers/net/enic/enic_main.c4
-rw-r--r--drivers/net/enic/vnic_cq.c2
-rw-r--r--drivers/net/enic/vnic_cq.h1
4 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h
index 23e21037410f..2dcf310d837c 100644
--- a/drivers/net/enic/enic.h
+++ b/drivers/net/enic/enic.h
@@ -32,7 +32,7 @@
32 32
33#define DRV_NAME "enic" 33#define DRV_NAME "enic"
34#define DRV_DESCRIPTION "Cisco VIC Ethernet NIC Driver" 34#define DRV_DESCRIPTION "Cisco VIC Ethernet NIC Driver"
35#define DRV_VERSION "2.1.1.17" 35#define DRV_VERSION "2.1.1.19"
36#define DRV_COPYRIGHT "Copyright 2008-2011 Cisco Systems, Inc" 36#define DRV_COPYRIGHT "Copyright 2008-2011 Cisco Systems, Inc"
37 37
38#define ENIC_BARS_MAX 6 38#define ENIC_BARS_MAX 6
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index ea4aededbfe1..e3bffe1aafb7 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -153,12 +153,12 @@ static inline unsigned int enic_legacy_notify_intr(void)
153 153
154static inline unsigned int enic_msix_rq_intr(struct enic *enic, unsigned int rq) 154static inline unsigned int enic_msix_rq_intr(struct enic *enic, unsigned int rq)
155{ 155{
156 return rq; 156 return enic->cq[enic_cq_rq(enic, rq)].interrupt_offset;
157} 157}
158 158
159static inline unsigned int enic_msix_wq_intr(struct enic *enic, unsigned int wq) 159static inline unsigned int enic_msix_wq_intr(struct enic *enic, unsigned int wq)
160{ 160{
161 return enic->rq_count + wq; 161 return enic->cq[enic_cq_wq(enic, wq)].interrupt_offset;
162} 162}
163 163
164static inline unsigned int enic_msix_err_intr(struct enic *enic) 164static inline unsigned int enic_msix_err_intr(struct enic *enic)
diff --git a/drivers/net/enic/vnic_cq.c b/drivers/net/enic/vnic_cq.c
index b86d6ef8dad3..0daa1c7073cb 100644
--- a/drivers/net/enic/vnic_cq.c
+++ b/drivers/net/enic/vnic_cq.c
@@ -74,6 +74,8 @@ void vnic_cq_init(struct vnic_cq *cq, unsigned int flow_control_enable,
74 iowrite32(cq_message_enable, &cq->ctrl->cq_message_enable); 74 iowrite32(cq_message_enable, &cq->ctrl->cq_message_enable);
75 iowrite32(interrupt_offset, &cq->ctrl->interrupt_offset); 75 iowrite32(interrupt_offset, &cq->ctrl->interrupt_offset);
76 writeq(cq_message_addr, &cq->ctrl->cq_message_addr); 76 writeq(cq_message_addr, &cq->ctrl->cq_message_addr);
77
78 cq->interrupt_offset = interrupt_offset;
77} 79}
78 80
79void vnic_cq_clean(struct vnic_cq *cq) 81void vnic_cq_clean(struct vnic_cq *cq)
diff --git a/drivers/net/enic/vnic_cq.h b/drivers/net/enic/vnic_cq.h
index 552d3daf2508..579315cbe803 100644
--- a/drivers/net/enic/vnic_cq.h
+++ b/drivers/net/enic/vnic_cq.h
@@ -57,6 +57,7 @@ struct vnic_cq {
57 struct vnic_dev_ring ring; 57 struct vnic_dev_ring ring;
58 unsigned int to_clean; 58 unsigned int to_clean;
59 unsigned int last_color; 59 unsigned int last_color;
60 unsigned int interrupt_offset;
60}; 61};
61 62
62static inline unsigned int vnic_cq_service(struct vnic_cq *cq, 63static inline unsigned int vnic_cq_service(struct vnic_cq *cq,