diff options
Diffstat (limited to 'drivers/net/ksz884x.c')
| -rw-r--r-- | drivers/net/ksz884x.c | 21 | 
1 files changed, 8 insertions, 13 deletions
diff --git a/drivers/net/ksz884x.c b/drivers/net/ksz884x.c index f3357ae13f8..cc0bc8a2608 100644 --- a/drivers/net/ksz884x.c +++ b/drivers/net/ksz884x.c @@ -19,7 +19,6 @@  #include <linux/init.h>  #include <linux/kernel.h>  #include <linux/module.h> -#include <linux/version.h>  #include <linux/ioport.h>  #include <linux/pci.h>  #include <linux/proc_fs.h> @@ -32,6 +31,7 @@  #include <linux/if_vlan.h>  #include <linux/crc32.h>  #include <linux/sched.h> +#include <linux/slab.h>  /* DMA Registers */ @@ -4684,7 +4684,7 @@ static void send_packet(struct sk_buff *skb, struct net_device *dev)  		int frag;  		skb_frag_t *this_frag; -		dma_buf->len = skb->len - skb->data_len; +		dma_buf->len = skb_headlen(skb);  		dma_buf->dma = pci_map_single(  			hw_priv->pdev, skb->data, dma_buf->len, @@ -5044,8 +5044,6 @@ static inline int rx_proc(struct net_device *dev, struct ksz_hw* hw,  			dma_buf->skb->data, packet_len);  	} while (0); -	skb->dev = dev; -  	skb->protocol = eth_type_trans(skb, dev);  	if (hw->rx_cfg & (DMA_RX_CSUM_UDP | DMA_RX_CSUM_TCP)) @@ -5056,8 +5054,6 @@ static inline int rx_proc(struct net_device *dev, struct ksz_hw* hw,  	priv->stats.rx_bytes += packet_len;  	/* Notify upper layer for received packet. */ -	dev->last_rx = jiffies; -  	rx_status = netif_rx(skb);  	return 0; @@ -5766,7 +5762,7 @@ static void netdev_set_rx_mode(struct net_device *dev)  	struct dev_priv *priv = netdev_priv(dev);  	struct dev_info *hw_priv = priv->adapter;  	struct ksz_hw *hw = &hw_priv->hw; -	struct dev_mc_list *mc_ptr; +	struct netdev_hw_addr *ha;  	int multicast = (dev->flags & IFF_ALLMULTI);  	dev_set_promiscuous(dev, priv, hw, (dev->flags & IFF_PROMISC)); @@ -5783,7 +5779,7 @@ static void netdev_set_rx_mode(struct net_device *dev)  		int i = 0;  		/* List too big to support so turn on all multicast mode. */ -		if (dev->mc_count > MAX_MULTICAST_LIST) { +		if (netdev_mc_count(dev) > MAX_MULTICAST_LIST) {  			if (MAX_MULTICAST_LIST != hw->multi_list_size) {  				hw->multi_list_size = MAX_MULTICAST_LIST;  				++hw->all_multi; @@ -5792,13 +5788,12 @@ static void netdev_set_rx_mode(struct net_device *dev)  			return;  		} -		netdev_for_each_mc_addr(mc_ptr, dev) { -			if (!(*mc_ptr->dmi_addr & 1)) +		netdev_for_each_mc_addr(ha, dev) { +			if (!(*ha->addr & 1))  				continue;  			if (i >= MAX_MULTICAST_LIST)  				break; -			memcpy(hw->multi_list[i++], mc_ptr->dmi_addr, -				MAC_ADDR_LEN); +			memcpy(hw->multi_list[i++], ha->addr, MAC_ADDR_LEN);  		}  		hw->multi_list_size = (u8) i;  		hw_set_grp_addr(hw); @@ -6322,7 +6317,7 @@ static int netdev_set_eeprom(struct net_device *dev,  	int len;  	if (eeprom->magic != EEPROM_MAGIC) -		return 1; +		return -EINVAL;  	len = (eeprom->offset + eeprom->len + 1) / 2;  	for (i = eeprom->offset / 2; i < len; i++)  |