diff options
Diffstat (limited to 'drivers/net/ethernet/intel/e1000')
| -rw-r--r-- | drivers/net/ethernet/intel/e1000/e1000_ethtool.c | 12 | ||||
| -rw-r--r-- | drivers/net/ethernet/intel/e1000/e1000_hw.h | 5 | ||||
| -rw-r--r-- | drivers/net/ethernet/intel/e1000/e1000_main.c | 61 | 
3 files changed, 38 insertions, 40 deletions
diff --git a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c index 2b223ac99c4..3103f0b6bf5 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c +++ b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c @@ -515,14 +515,14 @@ static void e1000_get_drvinfo(struct net_device *netdev,  			      struct ethtool_drvinfo *drvinfo)  {  	struct e1000_adapter *adapter = netdev_priv(netdev); -	char firmware_version[32]; -	strncpy(drvinfo->driver,  e1000_driver_name, 32); -	strncpy(drvinfo->version, e1000_driver_version, 32); +	strlcpy(drvinfo->driver,  e1000_driver_name, +		sizeof(drvinfo->driver)); +	strlcpy(drvinfo->version, e1000_driver_version, +		sizeof(drvinfo->version)); -	sprintf(firmware_version, "N/A"); -	strncpy(drvinfo->fw_version, firmware_version, 32); -	strncpy(drvinfo->bus_info, pci_name(adapter->pdev), 32); +	strlcpy(drvinfo->bus_info, pci_name(adapter->pdev), +		sizeof(drvinfo->bus_info));  	drvinfo->regdump_len = e1000_get_regs_len(netdev);  	drvinfo->eedump_len = e1000_get_eeprom_len(netdev);  } diff --git a/drivers/net/ethernet/intel/e1000/e1000_hw.h b/drivers/net/ethernet/intel/e1000/e1000_hw.h index 5c9a8403668..f6c4d7e2560 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_hw.h +++ b/drivers/net/ethernet/intel/e1000/e1000_hw.h @@ -448,7 +448,6 @@ void e1000_io_write(struct e1000_hw *hw, unsigned long port, u32 value);  #define E1000_DEV_ID_INTEL_CE4100_GBE    0x2E6E  #define NODE_ADDRESS_SIZE 6 -#define ETH_LENGTH_OF_ADDRESS 6  /* MAC decode size is 128K - This is the size of BAR0 */  #define MAC_DECODE_SIZE (128 * 1024) @@ -813,8 +812,7 @@ struct e1000_ffvt_entry {  #define E1000_FLA      0x0001C	/* Flash Access - RW */  #define E1000_MDIC     0x00020	/* MDI Control - RW */ -extern void __iomem *ce4100_gbe_mdio_base_virt; -#define INTEL_CE_GBE_MDIO_RCOMP_BASE    (ce4100_gbe_mdio_base_virt) +#define INTEL_CE_GBE_MDIO_RCOMP_BASE    (hw->ce4100_gbe_mdio_base_virt)  #define E1000_MDIO_STS  (INTEL_CE_GBE_MDIO_RCOMP_BASE + 0)  #define E1000_MDIO_CMD  (INTEL_CE_GBE_MDIO_RCOMP_BASE + 4)  #define E1000_MDIO_DRV  (INTEL_CE_GBE_MDIO_RCOMP_BASE + 8) @@ -1344,6 +1342,7 @@ struct e1000_hw_stats {  struct e1000_hw {  	u8 __iomem *hw_addr;  	u8 __iomem *flash_address; +	void __iomem *ce4100_gbe_mdio_base_virt;  	e1000_mac_type mac_type;  	e1000_phy_type phy_type;  	u32 phy_init_script; diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c index cf480b55462..669ca3800c0 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_main.c +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c @@ -33,11 +33,6 @@  #include <linux/bitops.h>  #include <linux/if_vlan.h> -/* Intel Media SOC GbE MDIO physical base address */ -static unsigned long ce4100_gbe_mdio_base_phy; -/* Intel Media SOC GbE MDIO virtual base address */ -void __iomem *ce4100_gbe_mdio_base_virt; -  char e1000_driver_name[] = "e1000";  static char e1000_driver_string[] = "Intel(R) PRO/1000 Network Driver";  #define DRV_VERSION "7.3.21-k8-NAPI" @@ -167,9 +162,10 @@ static int e1000_82547_fifo_workaround(struct e1000_adapter *adapter,                                         struct sk_buff *skb);  static bool e1000_vlan_used(struct e1000_adapter *adapter); -static void e1000_vlan_mode(struct net_device *netdev, u32 features); -static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid); -static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid); +static void e1000_vlan_mode(struct net_device *netdev, +			    netdev_features_t features); +static int e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid); +static int e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid);  static void e1000_restore_vlan(struct e1000_adapter *adapter);  #ifdef CONFIG_PM @@ -806,7 +802,8 @@ static int e1000_is_need_ioport(struct pci_dev *pdev)  	}  } -static u32 e1000_fix_features(struct net_device *netdev, u32 features) +static netdev_features_t e1000_fix_features(struct net_device *netdev, +	netdev_features_t features)  {  	/*  	 * Since there is no support for separate rx/tx vlan accel @@ -820,10 +817,11 @@ static u32 e1000_fix_features(struct net_device *netdev, u32 features)  	return features;  } -static int e1000_set_features(struct net_device *netdev, u32 features) +static int e1000_set_features(struct net_device *netdev, +	netdev_features_t features)  {  	struct e1000_adapter *adapter = netdev_priv(netdev); -	u32 changed = features ^ netdev->features; +	netdev_features_t changed = features ^ netdev->features;  	if (changed & NETIF_F_HW_VLAN_RX)  		e1000_vlan_mode(netdev, features); @@ -1051,11 +1049,11 @@ static int __devinit e1000_probe(struct pci_dev *pdev,  	err = -EIO;  	if (hw->mac_type == e1000_ce4100) { -		ce4100_gbe_mdio_base_phy = pci_resource_start(pdev, BAR_1); -		ce4100_gbe_mdio_base_virt = ioremap(ce4100_gbe_mdio_base_phy, +		hw->ce4100_gbe_mdio_base_virt = +					ioremap(pci_resource_start(pdev, BAR_1),  		                                pci_resource_len(pdev, BAR_1)); -		if (!ce4100_gbe_mdio_base_virt) +		if (!hw->ce4100_gbe_mdio_base_virt)  			goto err_mdio_ioremap;  	} @@ -1182,7 +1180,7 @@ static int __devinit e1000_probe(struct pci_dev *pdev,  		if (global_quad_port_a != 0)  			adapter->eeprom_wol = 0;  		else -			adapter->quad_port_a = 1; +			adapter->quad_port_a = true;  		/* Reset for multiple quad port adapters */  		if (++global_quad_port_a == 4)  			global_quad_port_a = 0; @@ -1246,7 +1244,7 @@ err_eeprom:  err_dma:  err_sw_init:  err_mdio_ioremap: -	iounmap(ce4100_gbe_mdio_base_virt); +	iounmap(hw->ce4100_gbe_mdio_base_virt);  	iounmap(hw->hw_addr);  err_ioremap:  	free_netdev(netdev); @@ -1283,6 +1281,8 @@ static void __devexit e1000_remove(struct pci_dev *pdev)  	kfree(adapter->tx_ring);  	kfree(adapter->rx_ring); +	if (hw->mac_type == e1000_ce4100) +		iounmap(hw->ce4100_gbe_mdio_base_virt);  	iounmap(hw->hw_addr);  	if (hw->flash_address)  		iounmap(hw->flash_address); @@ -1676,7 +1676,7 @@ static void e1000_configure_tx(struct e1000_adapter *adapter)  	 * need this to apply a workaround later in the send path. */  	if (hw->mac_type == e1000_82544 &&  	    hw->bus_type == e1000_bus_type_pcix) -		adapter->pcix_82544 = 1; +		adapter->pcix_82544 = true;  	ew32(TCTL, tctl); @@ -1999,7 +1999,7 @@ static void e1000_clean_tx_ring(struct e1000_adapter *adapter,  	tx_ring->next_to_use = 0;  	tx_ring->next_to_clean = 0; -	tx_ring->last_tx_tso = 0; +	tx_ring->last_tx_tso = false;  	writel(0, hw->hw_addr + tx_ring->tdh);  	writel(0, hw->hw_addr + tx_ring->tdt); @@ -2848,7 +2848,7 @@ static int e1000_tx_map(struct e1000_adapter *adapter,  		 * DMA'd to the controller */  		if (!skb->data_len && tx_ring->last_tx_tso &&  		    !skb_is_gso(skb)) { -			tx_ring->last_tx_tso = 0; +			tx_ring->last_tx_tso = false;  			size -= 4;  		} @@ -3216,7 +3216,7 @@ static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb,  	if (likely(tso)) {  		if (likely(hw->mac_type != e1000_82544)) -			tx_ring->last_tx_tso = 1; +			tx_ring->last_tx_tso = true;  		tx_flags |= E1000_TX_FLAGS_TSO;  	} else if (likely(e1000_tx_csum(adapter, tx_ring, skb)))  		tx_flags |= E1000_TX_FLAGS_CSUM; @@ -4577,7 +4577,8 @@ static void e1000_vlan_filter_on_off(struct e1000_adapter *adapter,  		e1000_irq_enable(adapter);  } -static void e1000_vlan_mode(struct net_device *netdev, u32 features) +static void e1000_vlan_mode(struct net_device *netdev, +	netdev_features_t features)  {  	struct e1000_adapter *adapter = netdev_priv(netdev);  	struct e1000_hw *hw = &adapter->hw; @@ -4600,7 +4601,7 @@ static void e1000_vlan_mode(struct net_device *netdev, u32 features)  		e1000_irq_enable(adapter);  } -static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid) +static int e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid)  {  	struct e1000_adapter *adapter = netdev_priv(netdev);  	struct e1000_hw *hw = &adapter->hw; @@ -4609,7 +4610,7 @@ static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid)  	if ((hw->mng_cookie.status &  	     E1000_MNG_DHCP_COOKIE_STATUS_VLAN_SUPPORT) &&  	    (vid == adapter->mng_vlan_id)) -		return; +		return 0;  	if (!e1000_vlan_used(adapter))  		e1000_vlan_filter_on_off(adapter, true); @@ -4621,9 +4622,11 @@ static void e1000_vlan_rx_add_vid(struct net_device *netdev, u16 vid)  	e1000_write_vfta(hw, index, vfta);  	set_bit(vid, adapter->active_vlans); + +	return 0;  } -static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid) +static int e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid)  {  	struct e1000_adapter *adapter = netdev_priv(netdev);  	struct e1000_hw *hw = &adapter->hw; @@ -4644,6 +4647,8 @@ static void e1000_vlan_rx_kill_vid(struct net_device *netdev, u16 vid)  	if (!e1000_vlan_used(adapter))  		e1000_vlan_filter_on_off(adapter, false); + +	return 0;  }  static void e1000_restore_vlan(struct e1000_adapter *adapter) @@ -4716,8 +4721,6 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake)  	netif_device_detach(netdev); -	mutex_lock(&adapter->mutex); -  	if (netif_running(netdev)) {  		WARN_ON(test_bit(__E1000_RESETTING, &adapter->flags));  		e1000_down(adapter); @@ -4725,10 +4728,8 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake)  #ifdef CONFIG_PM  	retval = pci_save_state(pdev); -	if (retval) { -		mutex_unlock(&adapter->mutex); +	if (retval)  		return retval; -	}  #endif  	status = er32(STATUS); @@ -4783,8 +4784,6 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake)  	if (netif_running(netdev))  		e1000_free_irq(adapter); -	mutex_unlock(&adapter->mutex); -  	pci_disable_device(pdev);  	return 0;  |