diff options
Diffstat (limited to 'drivers/net/ethernet/ibm')
| -rw-r--r-- | drivers/net/ethernet/ibm/ehea/ehea_main.c | 28 | ||||
| -rw-r--r-- | drivers/net/ethernet/ibm/emac/mal.c | 9 | ||||
| -rw-r--r-- | drivers/net/ethernet/ibm/ibmveth.c | 6 | 
3 files changed, 16 insertions, 27 deletions
diff --git a/drivers/net/ethernet/ibm/ehea/ehea_main.c b/drivers/net/ethernet/ibm/ehea/ehea_main.c index 328f47c92e2..90ea0b1673c 100644 --- a/drivers/net/ethernet/ibm/ehea/ehea_main.c +++ b/drivers/net/ethernet/ibm/ehea/ehea_main.c @@ -402,7 +402,6 @@ static void ehea_refill_rq1(struct ehea_port_res *pr, int index, int nr_of_wqes)  			skb_arr_rq1[index] = netdev_alloc_skb(dev,  							      EHEA_L_PKT_SIZE);  			if (!skb_arr_rq1[index]) { -				netdev_info(dev, "Unable to allocate enough skb in the array\n");  				pr->rq1_skba.os_skbs = fill_wqes - i;  				break;  			} @@ -432,10 +431,8 @@ static void ehea_init_fill_rq1(struct ehea_port_res *pr, int nr_rq1a)  	for (i = 0; i < nr_rq1a; i++) {  		skb_arr_rq1[i] = netdev_alloc_skb(dev, EHEA_L_PKT_SIZE); -		if (!skb_arr_rq1[i]) { -			netdev_info(dev, "Not enough memory to allocate skb array\n"); +		if (!skb_arr_rq1[i])  			break; -		}  	}  	/* Ring doorbell */  	ehea_update_rq1a(pr->qp, i - 1); @@ -695,10 +692,8 @@ static int ehea_proc_rwqes(struct net_device *dev,  					skb = netdev_alloc_skb(dev,  							       EHEA_L_PKT_SIZE); -					if (!skb) { -						netdev_err(dev, "Not enough memory to allocate skb\n"); +					if (!skb)  						break; -					}  				}  				skb_copy_to_linear_data(skb, ((char *)cqe) + 64,  						 cqe->num_bytes_transfered - 4); @@ -730,7 +725,8 @@ static int ehea_proc_rwqes(struct net_device *dev,  			processed_bytes += skb->len;  			if (cqe->status & EHEA_CQE_VLAN_TAG_XTRACT) -				__vlan_hwaccel_put_tag(skb, cqe->vlan_tag); +				__vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), +						       cqe->vlan_tag);  			napi_gro_receive(&pr->napi, skb);  		} else { @@ -2115,7 +2111,7 @@ static int ehea_start_xmit(struct sk_buff *skb, struct net_device *dev)  	return NETDEV_TX_OK;  } -static int ehea_vlan_rx_add_vid(struct net_device *dev, unsigned short vid) +static int ehea_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)  {  	struct ehea_port *port = netdev_priv(dev);  	struct ehea_adapter *adapter = port->adapter; @@ -2153,7 +2149,7 @@ out:  	return err;  } -static int ehea_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid) +static int ehea_vlan_rx_kill_vid(struct net_device *dev, __be16 proto, u16 vid)  {  	struct ehea_port *port = netdev_priv(dev);  	struct ehea_adapter *adapter = port->adapter; @@ -3025,12 +3021,12 @@ static struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter,  	dev->netdev_ops = &ehea_netdev_ops;  	ehea_set_ethtool_ops(dev); -	dev->hw_features = NETIF_F_SG | NETIF_F_TSO -		      | NETIF_F_IP_CSUM | NETIF_F_HW_VLAN_TX; -	dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_TSO -		      | NETIF_F_HIGHDMA | NETIF_F_IP_CSUM | NETIF_F_HW_VLAN_TX -		      | NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_FILTER -		      | NETIF_F_RXCSUM; +	dev->hw_features = NETIF_F_SG | NETIF_F_TSO | +		      NETIF_F_IP_CSUM | NETIF_F_HW_VLAN_CTAG_TX; +	dev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_TSO | +		      NETIF_F_HIGHDMA | NETIF_F_IP_CSUM | +		      NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX | +		      NETIF_F_HW_VLAN_CTAG_FILTER | NETIF_F_RXCSUM;  	dev->vlan_features = NETIF_F_SG | NETIF_F_TSO | NETIF_F_HIGHDMA |  			NETIF_F_IP_CSUM;  	dev->watchdog_timeo = EHEA_WATCH_DOG_TIMEOUT; diff --git a/drivers/net/ethernet/ibm/emac/mal.c b/drivers/net/ethernet/ibm/emac/mal.c index 1f7ecf57181..610ed223d1d 100644 --- a/drivers/net/ethernet/ibm/emac/mal.c +++ b/drivers/net/ethernet/ibm/emac/mal.c @@ -637,17 +637,12 @@ static int mal_probe(struct platform_device *ofdev)  	bd_size = sizeof(struct mal_descriptor) *  		(NUM_TX_BUFF * mal->num_tx_chans +  		 NUM_RX_BUFF * mal->num_rx_chans); -	mal->bd_virt = -		dma_alloc_coherent(&ofdev->dev, bd_size, &mal->bd_dma, -				   GFP_KERNEL); +	mal->bd_virt = dma_alloc_coherent(&ofdev->dev, bd_size, &mal->bd_dma, +					  GFP_KERNEL | __GFP_ZERO);  	if (mal->bd_virt == NULL) { -		printk(KERN_ERR -		       "mal%d: out of memory allocating RX/TX descriptors!\n", -		       index);  		err = -ENOMEM;  		goto fail_unmap;  	} -	memset(mal->bd_virt, 0, bd_size);  	for (i = 0; i < mal->num_tx_chans; ++i)  		set_mal_dcrn(mal, MAL_TXCTPR(i), mal->bd_dma + diff --git a/drivers/net/ethernet/ibm/ibmveth.c b/drivers/net/ethernet/ibm/ibmveth.c index c859771a990..302d5940106 100644 --- a/drivers/net/ethernet/ibm/ibmveth.c +++ b/drivers/net/ethernet/ibm/ibmveth.c @@ -556,11 +556,9 @@ static int ibmveth_open(struct net_device *netdev)  	adapter->rx_queue.queue_len = sizeof(struct ibmveth_rx_q_entry) *  						rxq_entries;  	adapter->rx_queue.queue_addr = -	    dma_alloc_coherent(dev, adapter->rx_queue.queue_len, -			       &adapter->rx_queue.queue_dma, GFP_KERNEL); - +		dma_alloc_coherent(dev, adapter->rx_queue.queue_len, +				   &adapter->rx_queue.queue_dma, GFP_KERNEL);  	if (!adapter->rx_queue.queue_addr) { -		netdev_err(netdev, "unable to allocate rx queue pages\n");  		rc = -ENOMEM;  		goto err_out;  	}  |