From: Stephen Rothwell 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 Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton --- 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<