Skip to content

Commit

Permalink
netxen: cache msi register offset
Browse files Browse the repository at this point in the history
Store msi target status register offset in adapter struct.
This avoids contention on msi_tgt_status table from interrupt
hadlers of different pci function.

Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Dhananjay Phadke authored and David S. Miller committed May 9, 2009
1 parent 61de71c commit 7a2469c
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 1 deletion.
3 changes: 3 additions & 0 deletions drivers/net/netxen/netxen_nic.h
Original file line number Diff line number Diff line change
Expand Up @@ -1257,6 +1257,9 @@ struct netxen_adapter {
u32 irq;
u32 temp;

u32 msi_tgt_status;
u32 resv4;

struct netxen_adapter_stats stats;

struct netxen_recv_context recv_ctx;
Expand Down
4 changes: 3 additions & 1 deletion drivers/net/netxen/netxen_nic_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -525,6 +525,8 @@ netxen_setup_intr(struct netxen_adapter *adapter)
request_msi:
if (use_msi && !pci_enable_msi(pdev)) {
adapter->flags |= NETXEN_NIC_MSI_ENABLED;
adapter->msi_tgt_status =
msi_tgt_status[adapter->ahw.pci_func];
dev_info(&pdev->dev, "using msi interrupts\n");
} else
dev_info(&pdev->dev, "using legacy interrupts\n");
Expand Down Expand Up @@ -1701,7 +1703,7 @@ static irqreturn_t netxen_msi_intr(int irq, void *data)

/* clear interrupt */
adapter->pci_write_immediate(adapter,
msi_tgt_status[adapter->ahw.pci_func], 0xffffffff);
adapter->msi_tgt_status, 0xffffffff);

napi_schedule(&sds_ring->napi);
return IRQ_HANDLED;
Expand Down

0 comments on commit 7a2469c

Please sign in to comment.