
From: Stephen Rothwell <sfr@canb.auug.org.au>

This has only been adjusted by me to apply after David Gibson's patch to
add a watchdog timer.

The iseries_veth driver does skb_clone, it should only need to skb_get,
which is cheaper.  Should help performance a little.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/net/iseries_veth.c |   11 +----------
 1 files changed, 1 insertion(+), 10 deletions(-)

diff -puN drivers/net/iseries_veth.c~ppc64-iseries-virtual-ethernet-minor-optimisation drivers/net/iseries_veth.c
--- 25/drivers/net/iseries_veth.c~ppc64-iseries-virtual-ethernet-minor-optimisation	2004-05-31 16:51:57.982035496 -0700
+++ 25-akpm/drivers/net/iseries_veth.c	2004-05-31 16:51:57.987034736 -0700
@@ -983,19 +983,10 @@ static HvLpIndexMap veth_transmit_to_man
 	int rc;
 
 	for (i = 0; i < HVMAXARCHITECTEDLPS; i++) {
-		struct sk_buff *clone;
-
 		if ((lpmask & (1 << i)) == 0)
 			continue;
 
-		clone = skb_clone(skb, GFP_ATOMIC);
-		if (! clone) {
-			veth_error("%s: skb_clone failed %p\n",
-				   dev->name, skb);
-			continue;
-		}
-
-		rc = veth_transmit_to_one(clone, i, dev);
+		rc = veth_transmit_to_one(skb_get(skb), i, dev);
 		if (! rc)
 			lpmask &= ~(1<<i);
 	}
_
