diff options
Diffstat (limited to 'drivers/net/ethernet/intel/ixgb')
| -rw-r--r-- | drivers/net/ethernet/intel/ixgb/ixgb.h | 23 | ||||
| -rw-r--r-- | drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c | 6 | ||||
| -rw-r--r-- | drivers/net/ethernet/intel/ixgb/ixgb_hw.h | 25 | ||||
| -rw-r--r-- | drivers/net/ethernet/intel/ixgb/ixgb_main.c | 32 | 
4 files changed, 35 insertions, 51 deletions
diff --git a/drivers/net/ethernet/intel/ixgb/ixgb.h b/drivers/net/ethernet/intel/ixgb/ixgb.h index 4d2ae97ff1b..1180cd59b57 100644 --- a/drivers/net/ethernet/intel/ixgb/ixgb.h +++ b/drivers/net/ethernet/intel/ixgb/ixgb.h @@ -33,7 +33,6 @@  #include <linux/module.h>  #include <linux/types.h>  #include <asm/byteorder.h> -#include <linux/init.h>  #include <linux/mm.h>  #include <linux/errno.h>  #include <linux/ioport.h> @@ -187,21 +186,21 @@ enum ixgb_state_t {  };  /* Exported from other modules */ -extern void ixgb_check_options(struct ixgb_adapter *adapter); -extern void ixgb_set_ethtool_ops(struct net_device *netdev); +void ixgb_check_options(struct ixgb_adapter *adapter); +void ixgb_set_ethtool_ops(struct net_device *netdev);  extern char ixgb_driver_name[];  extern const char ixgb_driver_version[]; -extern void ixgb_set_speed_duplex(struct net_device *netdev); +void ixgb_set_speed_duplex(struct net_device *netdev); -extern int ixgb_up(struct ixgb_adapter *adapter); -extern void ixgb_down(struct ixgb_adapter *adapter, bool kill_watchdog); -extern void ixgb_reset(struct ixgb_adapter *adapter); -extern int ixgb_setup_rx_resources(struct ixgb_adapter *adapter); -extern int ixgb_setup_tx_resources(struct ixgb_adapter *adapter); -extern void ixgb_free_rx_resources(struct ixgb_adapter *adapter); -extern void ixgb_free_tx_resources(struct ixgb_adapter *adapter); -extern void ixgb_update_stats(struct ixgb_adapter *adapter); +int ixgb_up(struct ixgb_adapter *adapter); +void ixgb_down(struct ixgb_adapter *adapter, bool kill_watchdog); +void ixgb_reset(struct ixgb_adapter *adapter); +int ixgb_setup_rx_resources(struct ixgb_adapter *adapter); +int ixgb_setup_tx_resources(struct ixgb_adapter *adapter); +void ixgb_free_rx_resources(struct ixgb_adapter *adapter); +void ixgb_free_tx_resources(struct ixgb_adapter *adapter); +void ixgb_update_stats(struct ixgb_adapter *adapter);  #endif /* _IXGB_H_ */ diff --git a/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c b/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c index dbb7dd2f8e3..b311e9e710d 100644 --- a/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c +++ b/drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c @@ -107,8 +107,8 @@ ixgb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)  		ethtool_cmd_speed_set(ecmd, SPEED_10000);  		ecmd->duplex = DUPLEX_FULL;  	} else { -		ethtool_cmd_speed_set(ecmd, -1); -		ecmd->duplex = -1; +		ethtool_cmd_speed_set(ecmd, SPEED_UNKNOWN); +		ecmd->duplex = DUPLEX_UNKNOWN;  	}  	ecmd->autoneg = AUTONEG_DISABLE; @@ -656,5 +656,5 @@ static const struct ethtool_ops ixgb_ethtool_ops = {  void ixgb_set_ethtool_ops(struct net_device *netdev)  { -	SET_ETHTOOL_OPS(netdev, &ixgb_ethtool_ops); +	netdev->ethtool_ops = &ixgb_ethtool_ops;  } diff --git a/drivers/net/ethernet/intel/ixgb/ixgb_hw.h b/drivers/net/ethernet/intel/ixgb/ixgb_hw.h index 2a99a35c33a..0bd5d72e1af 100644 --- a/drivers/net/ethernet/intel/ixgb/ixgb_hw.h +++ b/drivers/net/ethernet/intel/ixgb/ixgb_hw.h @@ -759,27 +759,20 @@ struct ixgb_hw_stats {  };  /* Function Prototypes */ -extern bool ixgb_adapter_stop(struct ixgb_hw *hw); -extern bool ixgb_init_hw(struct ixgb_hw *hw); -extern bool ixgb_adapter_start(struct ixgb_hw *hw); -extern void ixgb_check_for_link(struct ixgb_hw *hw); -extern bool ixgb_check_for_bad_link(struct ixgb_hw *hw); - -extern void ixgb_rar_set(struct ixgb_hw *hw, -				u8 *addr, -				u32 index); +bool ixgb_adapter_stop(struct ixgb_hw *hw); +bool ixgb_init_hw(struct ixgb_hw *hw); +bool ixgb_adapter_start(struct ixgb_hw *hw); +void ixgb_check_for_link(struct ixgb_hw *hw); +bool ixgb_check_for_bad_link(struct ixgb_hw *hw); +void ixgb_rar_set(struct ixgb_hw *hw, u8 *addr, u32 index);  /* Filters (multicast, vlan, receive) */ -extern void ixgb_mc_addr_list_update(struct ixgb_hw *hw, -				   u8 *mc_addr_list, -				   u32 mc_addr_count, -				   u32 pad); +void ixgb_mc_addr_list_update(struct ixgb_hw *hw, u8 *mc_addr_list, +			      u32 mc_addr_count, u32 pad);  /* Vfta functions */ -extern void ixgb_write_vfta(struct ixgb_hw *hw, -				 u32 offset, -				 u32 value); +void ixgb_write_vfta(struct ixgb_hw *hw, u32 offset, u32 value);  /* Access functions to eeprom data */  void ixgb_get_ee_mac_addr(struct ixgb_hw *hw, u8 *mac_addr); diff --git a/drivers/net/ethernet/intel/ixgb/ixgb_main.c b/drivers/net/ethernet/intel/ixgb/ixgb_main.c index 9f6b236828e..60801273915 100644 --- a/drivers/net/ethernet/intel/ixgb/ixgb_main.c +++ b/drivers/net/ethernet/intel/ixgb/ixgb_main.c @@ -408,20 +408,14 @@ ixgb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)  		return err;  	pci_using_dac = 0; -	err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)); +	err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));  	if (!err) { -		err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64)); -		if (!err) -			pci_using_dac = 1; +		pci_using_dac = 1;  	} else { -		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32)); +		err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));  		if (err) { -			err = dma_set_coherent_mask(&pdev->dev, -						    DMA_BIT_MASK(32)); -			if (err) { -				pr_err("No usable DMA configuration, aborting\n"); -				goto err_dma_mask; -			} +			pr_err("No usable DMA configuration, aborting\n"); +			goto err_dma_mask;  		}  	} @@ -1226,17 +1220,15 @@ ixgb_tso(struct ixgb_adapter *adapter, struct sk_buff *skb)  	unsigned int i;  	u8 ipcss, ipcso, tucss, tucso, hdr_len;  	u16 ipcse, tucse, mss; -	int err;  	if (likely(skb_is_gso(skb))) {  		struct ixgb_buffer *buffer_info;  		struct iphdr *iph; +		int err; -		if (skb_header_cloned(skb)) { -			err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC); -			if (err) -				return err; -		} +		err = skb_cow_head(skb, 0); +		if (err < 0) +			return err;  		hdr_len = skb_transport_offset(skb) + tcp_hdrlen(skb);  		mss = skb_shinfo(skb)->gso_size; @@ -1527,12 +1519,12 @@ ixgb_xmit_frame(struct sk_buff *skb, struct net_device *netdev)  	int tso;  	if (test_bit(__IXGB_DOWN, &adapter->flags)) { -		dev_kfree_skb(skb); +		dev_kfree_skb_any(skb);  		return NETDEV_TX_OK;  	}  	if (skb->len <= 0) { -		dev_kfree_skb(skb); +		dev_kfree_skb_any(skb);  		return NETDEV_TX_OK;  	} @@ -1549,7 +1541,7 @@ ixgb_xmit_frame(struct sk_buff *skb, struct net_device *netdev)  	tso = ixgb_tso(adapter, skb);  	if (tso < 0) { -		dev_kfree_skb(skb); +		dev_kfree_skb_any(skb);  		return NETDEV_TX_OK;  	}  | 
