diff options
Diffstat (limited to 'drivers/net/netxen/netxen_nic_main.c')
| -rw-r--r-- | drivers/net/netxen/netxen_nic_main.c | 57 | 
1 files changed, 34 insertions, 23 deletions
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c index 6ef3f0d84bcf..ba01524b5531 100644 --- a/drivers/net/netxen/netxen_nic_main.c +++ b/drivers/net/netxen/netxen_nic_main.c @@ -439,7 +439,6 @@ netxen_read_mac_addr(struct netxen_adapter *adapter)  	int i;  	unsigned char *p;  	__le64 mac_addr; -	DECLARE_MAC_BUF(mac);  	struct net_device *netdev = adapter->netdev;  	struct pci_dev *pdev = adapter->pdev; @@ -462,15 +461,39 @@ netxen_read_mac_addr(struct netxen_adapter *adapter)  	/* set station address */ -	if (!is_valid_ether_addr(netdev->perm_addr)) { -		dev_warn(&pdev->dev, "Bad MAC address %s.\n", -				print_mac(mac, netdev->dev_addr)); -	} else +	if (!is_valid_ether_addr(netdev->perm_addr)) +		dev_warn(&pdev->dev, "Bad MAC address %pM.\n", netdev->dev_addr); +	else  		adapter->macaddr_set(adapter, netdev->dev_addr);  	return 0;  } +static void netxen_set_multicast_list(struct net_device *dev) +{ +	struct netxen_adapter *adapter = netdev_priv(dev); + +	if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) +		netxen_p3_nic_set_multi(dev); +	else +		netxen_p2_nic_set_multi(dev); +} + +static const struct net_device_ops netxen_netdev_ops = { +	.ndo_open	   = netxen_nic_open, +	.ndo_stop	   = netxen_nic_close, +	.ndo_start_xmit    = netxen_nic_xmit_frame, +	.ndo_get_stats	   = netxen_nic_get_stats, +	.ndo_validate_addr = eth_validate_addr, +	.ndo_set_multicast_list = netxen_set_multicast_list, +	.ndo_set_mac_address    = netxen_nic_set_mac, +	.ndo_change_mtu	   = netxen_nic_change_mtu, +	.ndo_tx_timeout	   = netxen_tx_timeout, +#ifdef CONFIG_NET_POLL_CONTROLLER +	.ndo_poll_controller = netxen_nic_poll_controller, +#endif +}; +  /*   * netxen_nic_probe()   * @@ -543,7 +566,7 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)  	SET_NETDEV_DEV(netdev, &pdev->dev); -	adapter = netdev->priv; +	adapter = netdev_priv(netdev);  	adapter->netdev  = netdev;  	adapter->pdev    = pdev;  	adapter->ahw.pci_func  = pci_func_id; @@ -682,25 +705,13 @@ netxen_nic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)  	else  		adapter->max_mc_count = 16; -	netdev->open		   = netxen_nic_open; -	netdev->stop		   = netxen_nic_close; -	netdev->hard_start_xmit    = netxen_nic_xmit_frame; -	netdev->get_stats	   = netxen_nic_get_stats; -	if (NX_IS_REVISION_P3(revision_id)) -		netdev->set_multicast_list = netxen_p3_nic_set_multi; -	else -		netdev->set_multicast_list = netxen_p2_nic_set_multi; -	netdev->set_mac_address    = netxen_nic_set_mac; -	netdev->change_mtu	   = netxen_nic_change_mtu; -	netdev->tx_timeout	   = netxen_tx_timeout; +	netdev->netdev_ops	   = &netxen_netdev_ops;  	netdev->watchdog_timeo     = 2*HZ;  	netxen_nic_change_mtu(netdev, netdev->mtu);  	SET_ETHTOOL_OPS(netdev, &netxen_nic_ethtool_ops); -#ifdef CONFIG_NET_POLL_CONTROLLER -	netdev->poll_controller = netxen_nic_poll_controller; -#endif +  	/* ScatterGather support */  	netdev->features = NETIF_F_SG;  	netdev->features |= NETIF_F_IP_CSUM; @@ -988,7 +999,7 @@ static void __devexit netxen_nic_remove(struct pci_dev *pdev)   */  static int netxen_nic_open(struct net_device *netdev)  { -	struct netxen_adapter *adapter = (struct netxen_adapter *)netdev->priv; +	struct netxen_adapter *adapter = netdev_priv(netdev);  	int err = 0;  	int ctx, ring;  	irq_handler_t handler; @@ -1077,7 +1088,7 @@ static int netxen_nic_open(struct net_device *netdev)  	netxen_nic_set_link_parameters(adapter); -	netdev->set_multicast_list(netdev); +	netxen_set_multicast_list(netdev);  	if (adapter->set_mtu)  		adapter->set_mtu(adapter, netdev->mtu); @@ -1572,7 +1583,7 @@ static int netxen_nic_poll(struct napi_struct *napi, int budget)  	}  	if ((work_done < budget) && tx_complete) { -		netif_rx_complete(adapter->netdev, &adapter->napi); +		netif_rx_complete(&adapter->napi);  		netxen_nic_enable_int(adapter);  	}  | 
