[patch] handle kmalloc fails: tokenring/3c359
DORMANTno replies
From: maximilian attems <hidden>
Date: 2003-12-23 10:57:57
Attachments
- (unnamed) [application/pgp-signature] 189 bytes
From: maximilian attems <hidden>
Date: 2003-12-23 10:57:57
while looking at kj mails from 200212 and 200301 this patch slept through originally from: Pablo Menichini [off-list ref] rediffed and compile tested patch applies on plain 2.6.0 a++ max
--- a/drivers/net/tokenring/3c359.c 2003-10-08 21:24:51.000000000 +0200
+++ b/drivers/net/tokenring/3c359.c 2003-12-23 10:18:27.000000000 +0100@@ -642,7 +642,20 @@ */ /* 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) ;