netxen: support for ethtool set ringparam
Add support for ethtool -G to tune rx and tx ring sizes per interface basis. This is only supported for NX3031 based cards. 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
028afe7198
commit
7042cd8f14
@@ -910,6 +910,9 @@ netxen_nic_attach(struct netxen_adapter *adapter)
|
||||
struct nx_host_rds_ring *rds_ring;
|
||||
struct nx_host_tx_ring *tx_ring;
|
||||
|
||||
if (adapter->is_up == NETXEN_ADAPTER_UP_MAGIC)
|
||||
return 0;
|
||||
|
||||
err = netxen_init_firmware(adapter);
|
||||
if (err != 0) {
|
||||
printk(KERN_ERR "Failed to init firmware\n");
|
||||
@@ -973,6 +976,9 @@ err_out_free_sw:
|
||||
static void
|
||||
netxen_nic_detach(struct netxen_adapter *adapter)
|
||||
{
|
||||
if (adapter->is_up != NETXEN_ADAPTER_UP_MAGIC)
|
||||
return;
|
||||
|
||||
netxen_free_hw_resources(adapter);
|
||||
netxen_release_rx_buffers(adapter);
|
||||
netxen_nic_free_irq(adapter);
|
||||
@@ -981,6 +987,30 @@ netxen_nic_detach(struct netxen_adapter *adapter)
|
||||
adapter->is_up = 0;
|
||||
}
|
||||
|
||||
int
|
||||
netxen_nic_reset_context(struct netxen_adapter *adapter)
|
||||
{
|
||||
int err = 0;
|
||||
struct net_device *netdev = adapter->netdev;
|
||||
|
||||
if (adapter->is_up == NETXEN_ADAPTER_UP_MAGIC) {
|
||||
|
||||
if (netif_running(netdev))
|
||||
netxen_nic_down(adapter, netdev);
|
||||
|
||||
netxen_nic_detach(adapter);
|
||||
|
||||
err = netxen_nic_attach(adapter);
|
||||
if (err)
|
||||
goto done;
|
||||
|
||||
if (netif_running(netdev))
|
||||
err = netxen_nic_up(adapter, netdev);
|
||||
}
|
||||
done:
|
||||
return err;
|
||||
}
|
||||
|
||||
static int
|
||||
netxen_setup_netdev(struct netxen_adapter *adapter,
|
||||
struct net_device *netdev)
|
||||
@@ -1202,9 +1232,7 @@ static void __devexit netxen_nic_remove(struct pci_dev *pdev)
|
||||
|
||||
unregister_netdev(netdev);
|
||||
|
||||
if (adapter->is_up == NETXEN_ADAPTER_UP_MAGIC) {
|
||||
netxen_nic_detach(adapter);
|
||||
}
|
||||
netxen_nic_detach(adapter);
|
||||
|
||||
if (adapter->portnum == 0)
|
||||
netxen_free_dummy_dma(adapter);
|
||||
@@ -1236,8 +1264,7 @@ netxen_nic_suspend(struct pci_dev *pdev, pm_message_t state)
|
||||
if (netif_running(netdev))
|
||||
netxen_nic_down(adapter, netdev);
|
||||
|
||||
if (adapter->is_up == NETXEN_ADAPTER_UP_MAGIC)
|
||||
netxen_nic_detach(adapter);
|
||||
netxen_nic_detach(adapter);
|
||||
|
||||
pci_save_state(pdev);
|
||||
|
||||
@@ -1298,11 +1325,9 @@ static int netxen_nic_open(struct net_device *netdev)
|
||||
if (adapter->driver_mismatch)
|
||||
return -EIO;
|
||||
|
||||
if (adapter->is_up != NETXEN_ADAPTER_UP_MAGIC) {
|
||||
err = netxen_nic_attach(adapter);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
err = netxen_nic_attach(adapter);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = netxen_nic_up(adapter, netdev);
|
||||
if (err)
|
||||
|
Reference in New Issue
Block a user