diff mbox

[03/21] ibmveth: Remove LLTX

Message ID 20100904042815.2655.71537.sendpatchset@jupiter1-ltc-lp2.austin.ibm.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Santiago Leon Sept. 4, 2010, 4:28 a.m. UTC
The ibmveth adapter needs locking in the transmit routine to protect
the bounce_buffer but it sets LLTX and forgets to add any of its own
locking.

Just remove the deprecated LLTX option. Remove the stats lock in the process.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Santiago Leon <santil@linux.vnet.ibm.com>
---

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Eric Dumazet Sept. 4, 2010, 6:41 a.m. UTC | #1
Le vendredi 03 septembre 2010 à 23:28 -0500, Santiago Leon a écrit :
> The ibmveth adapter needs locking in the transmit routine to protect
> the bounce_buffer but it sets LLTX and forgets to add any of its own
> locking.
> 
> Just remove the deprecated LLTX option. Remove the stats lock in the process.
> 
> Signed-off-by: Anton Blanchard <anton@samba.org>
> Signed-off-by: Santiago Leon <santil@linux.vnet.ibm.com>
> ---
> 
> Index: net-next-2.6/drivers/net/ibmveth.c
> ===================================================================
> --- net-next-2.6.orig//drivers/net/ibmveth.c	2010-09-03 22:18:39.000000000 -0500
> +++ net-next-2.6/drivers/net/ibmveth.c	2010-09-03 22:18:40.000000000 -0500
> @@ -903,7 +903,6 @@ static netdev_tx_t ibmveth_start_xmit(st
>  	union ibmveth_buf_desc desc;
>  	unsigned long lpar_rc;
>  	unsigned long correlator;
> -	unsigned long flags;
>  	unsigned int retry_count;
>  	unsigned int tx_dropped = 0;
>  	unsigned int tx_bytes = 0;

Why dont you remove these local variables then ? 
tx_dropped, tx_bytes, tx_packets ?

> @@ -965,20 +964,18 @@ static netdev_tx_t ibmveth_start_xmit(st
>  	} else {
>  		tx_packets++;
>  		tx_bytes += skb->len;
> -		netdev->trans_start = jiffies; /* NETIF_F_LLTX driver :( */
>  	}
>  
>  	if (!used_bounce)
>  		dma_unmap_single(&adapter->vdev->dev, data_dma_addr,
>  				 skb->len, DMA_TO_DEVICE);
>  
> -out:	spin_lock_irqsave(&adapter->stats_lock, flags);
> +out:
>  	netdev->stats.tx_dropped += tx_dropped;
>  	netdev->stats.tx_bytes += tx_bytes;
>  	netdev->stats.tx_packets += tx_packets;
>  	adapter->tx_send_failed += tx_send_failed;
>  	adapter->tx_map_failed += tx_map_failed;
> -	spin_unlock_irqrestore(&adapter->stats_lock, flags);
>  
>  	dev_kfree_skb(skb);
>  	return NETDEV_TX_OK;
> @@ -1290,8 +1287,6 @@ static int __devinit ibmveth_probe(struc
>  	netdev->netdev_ops = &ibmveth_netdev_ops;
>  	netdev->ethtool_ops = &netdev_ethtool_ops;
>  	SET_NETDEV_DEV(netdev, &dev->dev);
> - 	netdev->features |= NETIF_F_LLTX;
> -	spin_lock_init(&adapter->stats_lock);
>  
>  	memcpy(netdev->dev_addr, &adapter->mac_addr, netdev->addr_len);
>  
> Index: net-next-2.6/drivers/net/ibmveth.h
> ===================================================================
> --- net-next-2.6.orig//drivers/net/ibmveth.h	2010-09-03 22:18:39.000000000 -0500
> +++ net-next-2.6/drivers/net/ibmveth.h	2010-09-03 22:18:40.000000000 -0500
> @@ -158,7 +158,6 @@ struct ibmveth_adapter {
>      u64 rx_no_buffer;
>      u64 tx_map_failed;
>      u64 tx_send_failed;
> -    spinlock_t stats_lock;
>  };
>  
>  struct ibmveth_buf_desc_fields {
> --


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

Index: net-next-2.6/drivers/net/ibmveth.c
===================================================================
--- net-next-2.6.orig//drivers/net/ibmveth.c	2010-09-03 22:18:39.000000000 -0500
+++ net-next-2.6/drivers/net/ibmveth.c	2010-09-03 22:18:40.000000000 -0500
@@ -903,7 +903,6 @@  static netdev_tx_t ibmveth_start_xmit(st
 	union ibmveth_buf_desc desc;
 	unsigned long lpar_rc;
 	unsigned long correlator;
-	unsigned long flags;
 	unsigned int retry_count;
 	unsigned int tx_dropped = 0;
 	unsigned int tx_bytes = 0;
@@ -965,20 +964,18 @@  static netdev_tx_t ibmveth_start_xmit(st
 	} else {
 		tx_packets++;
 		tx_bytes += skb->len;
-		netdev->trans_start = jiffies; /* NETIF_F_LLTX driver :( */
 	}
 
 	if (!used_bounce)
 		dma_unmap_single(&adapter->vdev->dev, data_dma_addr,
 				 skb->len, DMA_TO_DEVICE);
 
-out:	spin_lock_irqsave(&adapter->stats_lock, flags);
+out:
 	netdev->stats.tx_dropped += tx_dropped;
 	netdev->stats.tx_bytes += tx_bytes;
 	netdev->stats.tx_packets += tx_packets;
 	adapter->tx_send_failed += tx_send_failed;
 	adapter->tx_map_failed += tx_map_failed;
-	spin_unlock_irqrestore(&adapter->stats_lock, flags);
 
 	dev_kfree_skb(skb);
 	return NETDEV_TX_OK;
@@ -1290,8 +1287,6 @@  static int __devinit ibmveth_probe(struc
 	netdev->netdev_ops = &ibmveth_netdev_ops;
 	netdev->ethtool_ops = &netdev_ethtool_ops;
 	SET_NETDEV_DEV(netdev, &dev->dev);
- 	netdev->features |= NETIF_F_LLTX;
-	spin_lock_init(&adapter->stats_lock);
 
 	memcpy(netdev->dev_addr, &adapter->mac_addr, netdev->addr_len);
 
Index: net-next-2.6/drivers/net/ibmveth.h
===================================================================
--- net-next-2.6.orig//drivers/net/ibmveth.h	2010-09-03 22:18:39.000000000 -0500
+++ net-next-2.6/drivers/net/ibmveth.h	2010-09-03 22:18:40.000000000 -0500
@@ -158,7 +158,6 @@  struct ibmveth_adapter {
     u64 rx_no_buffer;
     u64 tx_map_failed;
     u64 tx_send_failed;
-    spinlock_t stats_lock;
 };
 
 struct ibmveth_buf_desc_fields {