mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
netxen: fix physical port mapping
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>
This commit is contained in:
parent
50fee1dec5
commit
044fad0dbb
1 changed files with 6 additions and 3 deletions
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue