Skip to content

Commit

Permalink
netxen: fix physical port mapping
Browse files Browse the repository at this point in the history
The PCI function to physical port mapping is valid only for
old firmware. New firmware (4.0.0+) abstracts this.
So driver should never try to access phy using invalid
mapping. The behavior is unpredictable when PCI functions
4-7 are enabled on the same NIC.

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 Feb 24, 2009
1 parent 50fee1d commit 044fad0
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions drivers/net/netxen/netxen_nic_main.c
Original file line number Diff line number Diff line change
@@ -795,9 +795,12 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
* See if the firmware gave us a virtual-physical port mapping.
*/
adapter->physical_port = adapter->portnum;
i = adapter->pci_read_normalize(adapter, CRB_V2P(adapter->portnum));
if (i != 0x55555555)
adapter->physical_port = i;
if (adapter->fw_major < 4) {
i = adapter->pci_read_normalize(adapter,
CRB_V2P(adapter->portnum));
if (i != 0x55555555)
adapter->physical_port = i;
}

adapter->flags &= ~(NETXEN_NIC_MSI_ENABLED | NETXEN_NIC_MSIX_ENABLED);

0 comments on commit 044fad0

Please sign in to comment.