mirror of https://gitee.com/openkylin/linux.git
netxen: stop second phy correctly
This patch fixes bug that doesn't quiesce second port when interface is brought down, which could lead to unwarranted interrupt during rmmod / ifdown. Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
001a731ecf
commit
72b0a7a8a4
|
@ -732,11 +732,6 @@ static void __devexit netxen_nic_remove(struct pci_dev *pdev)
|
|||
|
||||
unregister_netdev(netdev);
|
||||
|
||||
if (adapter->stop_port)
|
||||
adapter->stop_port(adapter);
|
||||
|
||||
netxen_nic_disable_int(adapter);
|
||||
|
||||
if (adapter->is_up == NETXEN_ADAPTER_UP_MAGIC) {
|
||||
init_firmware_done++;
|
||||
netxen_free_hw_resources(adapter);
|
||||
|
@ -919,6 +914,9 @@ static int netxen_nic_close(struct net_device *netdev)
|
|||
netif_stop_queue(netdev);
|
||||
napi_disable(&adapter->napi);
|
||||
|
||||
if (adapter->stop_port)
|
||||
adapter->stop_port(adapter);
|
||||
|
||||
netxen_nic_disable_int(adapter);
|
||||
|
||||
cmd_buff = adapter->cmd_buf_arr;
|
||||
|
|
|
@ -736,12 +736,12 @@ int netxen_niu_disable_xg_port(struct netxen_adapter *adapter)
|
|||
__u32 mac_cfg;
|
||||
u32 port = physical_port[adapter->portnum];
|
||||
|
||||
if (port != 0)
|
||||
if (port > NETXEN_NIU_MAX_XG_PORTS)
|
||||
return -EINVAL;
|
||||
|
||||
mac_cfg = 0;
|
||||
netxen_xg_soft_reset(mac_cfg);
|
||||
if (netxen_nic_hw_write_wx(adapter, NETXEN_NIU_XGE_CONFIG_0,
|
||||
&mac_cfg, 4))
|
||||
if (netxen_nic_hw_write_wx(adapter,
|
||||
NETXEN_NIU_XGE_CONFIG_0 + (0x10000 * port), &mac_cfg, 4))
|
||||
return -EIO;
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue