netxen: pre calculate register addresses
For registers accessed in fast path (interrupt / softirq) avoid expensive I/O address translation. These registers are directly mapped in PCI bar 0 and do not require any window checks. Signed-off-by: Amit Kumar Salecha <amit@netxen.com> Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
d0725e4d3c
commit
195c5f9829
@@ -84,18 +84,17 @@ static void
|
||||
netxen_nic_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *drvinfo)
|
||||
{
|
||||
struct netxen_adapter *adapter = netdev_priv(dev);
|
||||
unsigned long flags;
|
||||
u32 fw_major = 0;
|
||||
u32 fw_minor = 0;
|
||||
u32 fw_build = 0;
|
||||
|
||||
strncpy(drvinfo->driver, netxen_nic_driver_name, 32);
|
||||
strncpy(drvinfo->version, NETXEN_NIC_LINUX_VERSIONID, 32);
|
||||
write_lock_irqsave(&adapter->adapter_lock, flags);
|
||||
read_lock(&adapter->adapter_lock);
|
||||
fw_major = NXRD32(adapter, NETXEN_FW_VERSION_MAJOR);
|
||||
fw_minor = NXRD32(adapter, NETXEN_FW_VERSION_MINOR);
|
||||
fw_build = NXRD32(adapter, NETXEN_FW_VERSION_SUB);
|
||||
write_unlock_irqrestore(&adapter->adapter_lock, flags);
|
||||
read_unlock(&adapter->adapter_lock);
|
||||
sprintf(drvinfo->fw_version, "%d.%d.%d", fw_major, fw_minor, fw_build);
|
||||
|
||||
strncpy(drvinfo->bus_info, pci_name(adapter->pdev), 32);
|
||||
|
Reference in New Issue
Block a user