Hi,
Please apply to 2.6.current.
From: Pablo Menichini <pablo@xxxxxxxxxxxxxxxx>
and maximilian attems <janitor@xxxxxxxxxxxxxx>
while looking at kj mails from 200212 and 200301
this patch slept through
originally from: Pablo Menichini <pablo@xxxxxxxxxxxxxxxx>
rediffed and compile tested
patch applies on plain 2.6.0
maximilian attems <janitor@xxxxxxxxxxxxxx>
handle kmalloc failures during init
diff -puN drivers/net/tokenring/3c359.c~tr3c_kmalloc
drivers/net/tokenring/3c359.c
linux-261-bk4-kj1-rddunlap/drivers/net/tokenring/3c359.c | 13 +++++++++++++
1 files changed, 13 insertions(+)
diff -puN drivers/net/tokenring/3c359.c~tr3c_kmalloc
drivers/net/tokenring/3c359.c
--- linux-261-bk4-kj1/drivers/net/tokenring/3c359.c~tr3c_kmalloc
2004-01-16 16:03:29.000000000 -0800
+++ linux-261-bk4-kj1-rddunlap/drivers/net/tokenring/3c359.c 2004-01-16
16:03:29.000000000 -0800
@@ -642,7 +642,20 @@ static int xl_open(struct net_device *de
*/
/* These MUST be on 8 byte boundaries */
xl_priv->xl_tx_ring = kmalloc((sizeof(struct xl_tx_desc) *
XL_TX_RING_SIZE) + 7, GFP_DMA | GFP_KERNEL) ;
+ if (xl_priv->xl_tx_ring == NULL) {
+ printk(KERN_WARNING "%s: Not enough memory to allocate rx
buffers.\n",
+ dev->name);
+ free_irq(dev->irq,dev);
+ return -ENOMEM;
+ }
xl_priv->xl_rx_ring = kmalloc((sizeof(struct xl_rx_desc) *
XL_RX_RING_SIZE) +7, GFP_DMA | GFP_KERNEL) ;
+ if (xl_priv->xl_tx_ring == NULL) {
+ printk(KERN_WARNING "%s: Not enough memory to allocate rx
buffers.\n",
+ dev->name);
+ free_irq(dev->irq,dev);
+ kfree(xl_priv->xl_tx_ring);
+ return -ENOMEM;
+ }
memset(xl_priv->xl_tx_ring,0,sizeof(struct xl_tx_desc) *
XL_TX_RING_SIZE) ;
memset(xl_priv->xl_rx_ring,0,sizeof(struct xl_rx_desc) *
XL_RX_RING_SIZE) ;
_
--
~Randy
|