forked from luck/tmp_suning_uos_patched
enic: Get/Set interrupt resource index for transmit and receive queues
Instead of deriving the index of a transmit/receive interrupt resource from the transmit/receive queue index, always save and retrieve it using an additional variable. Signed-off-by: Christian Benvenuti <benve@cisco.com> Signed-off-by: Danny Guo <dannguo@cisco.com> Signed-off-by: Vasanthy Kolluri <vkolluri@cisco.com> Signed-off-by: Roopa Prabhu <roprabhu@cisco.com> Signed-off-by: David Wang <dwang2@cisco.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e1fb77bfd0
commit
7d260ec26e
@ -32,7 +32,7 @@
|
||||
|
||||
#define DRV_NAME "enic"
|
||||
#define DRV_DESCRIPTION "Cisco VIC Ethernet NIC Driver"
|
||||
#define DRV_VERSION "2.1.1.17"
|
||||
#define DRV_VERSION "2.1.1.19"
|
||||
#define DRV_COPYRIGHT "Copyright 2008-2011 Cisco Systems, Inc"
|
||||
|
||||
#define ENIC_BARS_MAX 6
|
||||
|
@ -153,12 +153,12 @@ static inline unsigned int enic_legacy_notify_intr(void)
|
||||
|
||||
static inline unsigned int enic_msix_rq_intr(struct enic *enic, unsigned int rq)
|
||||
{
|
||||
return rq;
|
||||
return enic->cq[enic_cq_rq(enic, rq)].interrupt_offset;
|
||||
}
|
||||
|
||||
static inline unsigned int enic_msix_wq_intr(struct enic *enic, unsigned int wq)
|
||||
{
|
||||
return enic->rq_count + wq;
|
||||
return enic->cq[enic_cq_wq(enic, wq)].interrupt_offset;
|
||||
}
|
||||
|
||||
static inline unsigned int enic_msix_err_intr(struct enic *enic)
|
||||
|
@ -74,6 +74,8 @@ void vnic_cq_init(struct vnic_cq *cq, unsigned int flow_control_enable,
|
||||
iowrite32(cq_message_enable, &cq->ctrl->cq_message_enable);
|
||||
iowrite32(interrupt_offset, &cq->ctrl->interrupt_offset);
|
||||
writeq(cq_message_addr, &cq->ctrl->cq_message_addr);
|
||||
|
||||
cq->interrupt_offset = interrupt_offset;
|
||||
}
|
||||
|
||||
void vnic_cq_clean(struct vnic_cq *cq)
|
||||
|
@ -57,6 +57,7 @@ struct vnic_cq {
|
||||
struct vnic_dev_ring ring;
|
||||
unsigned int to_clean;
|
||||
unsigned int last_color;
|
||||
unsigned int interrupt_offset;
|
||||
};
|
||||
|
||||
static inline unsigned int vnic_cq_service(struct vnic_cq *cq,
|
||||
|
Loading…
Reference in New Issue
Block a user