From f99b9169f451f131b48159a443bd5204b3831d6f Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Fri, 23 Nov 2007 15:24:39 -0500 Subject: [PATCH] Linux 2.2.24-rc4 o Fix ethernet as modules problems (Alan Cox) o Fix 8139too and rtl8139 padding (Alan Cox) --- Makefile | 2 +- drivers/net/8139too.c | 8 ++++++++ drivers/net/rtl8139.c | 10 ++++++++++ net/netsyms.c | 1 + 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index a5fa1980fc79..cfcd09d7189c 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 2 SUBLEVEL = 24 -EXTRAVERSION = -rc3 +EXTRAVERSION = -rc4 ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c index 1193178119be..f894b32e276d 100644 --- a/drivers/net/8139too.c +++ b/drivers/net/8139too.c @@ -1840,6 +1840,14 @@ static int rtl8139_start_xmit (struct sk_buff *skb, struct device *dev) return 0; } } + + if(skb->len < ETH_ZLEN) + { + skb = skb_padto(skb, ETH_ZLEN); + if(skb == NULL) + return 0; + } + mb(); /* Calculate the next Tx descriptor entry. */ diff --git a/drivers/net/rtl8139.c b/drivers/net/rtl8139.c index 5b0db5de897e..f7c5bdf8c122 100644 --- a/drivers/net/rtl8139.c +++ b/drivers/net/rtl8139.c @@ -970,6 +970,16 @@ rtl8129_start_xmit(struct sk_buff *skb, struct device *dev) rtl8129_tx_timeout(dev); return 1; } + + if(skb->len < ETH_ZLEN) + { + skb = skb_padto(skb, ETH_ZLEN); + if(skb == NULL) + { + clear_bit(0, (void *)&dev->tbusy); + return 0; + } + } /* Calculate the next Tx descriptor entry. */ entry = tp->cur_tx % NUM_TX_DESC; diff --git a/net/netsyms.c b/net/netsyms.c index 58150e1a8564..cbed414d8266 100644 --- a/net/netsyms.c +++ b/net/netsyms.c @@ -489,6 +489,7 @@ EXPORT_SYMBOL(alloc_skb); EXPORT_SYMBOL(__kfree_skb); EXPORT_SYMBOL(skb_clone); EXPORT_SYMBOL(skb_copy); +EXPORT_SYMBOL(skb_pad); EXPORT_SYMBOL(netif_rx); EXPORT_SYMBOL(dev_add_pack); EXPORT_SYMBOL(dev_remove_pack); -- 2.39.5