SUN3/3X Lance trivial fix improved
PATCH 1/1 SUN3/3X Lance trivial fix improved
This patch adds checking for allocated DVMA memory and granted IRQ line.
Signed-off-by Cyrill V. Gorcunov <[email protected]>
---
Andrew, I've sent the patch almost the month ago... It seems the patch was lost :(
drivers/net/sun3lance.c | 16 +++++++++++++++-
1 files changed, 15 insertions(+), 1 deletions(-)
drivers/net/sun3lance.c +15 -1
@@ -336,13 +336,27 @@ static int __init lance_probe( struct net_device *dev)/* XXX - leak? */ MEM =dvma_malloc_align (sizeof (struct lance_memory ),0x10000 ); +if (MEM ==NULL ) { +#ifdef CONFIG_SUN3 +iounmap ((void __iomem *)ioaddr); +#endif +printk (KERN_WARNING "SUN3 Lance couldn't allocate DVMA memory\n" ); +return 0 ; + } lp->iobase = (volatile unsigned short *)ioaddr; dev->base_addr = (unsigned long )ioaddr;/* informational only */ REGA (CSR0 ) =CSR0_STOP ; -request_irq (LANCE_IRQ , lance_interrupt,IRQF_DISABLED ,"SUN3 Lance" , dev); +if (request_irq (LANCE_IRQ , lance_interrupt,IRQF_DISABLED ,"SUN3 Lance" , dev) <0 ) { +#ifdef CONFIG_SUN3 +iounmap ((void __iomem *)ioaddr); +#endif +dvma_free ((void *)MEM ); +printk (KERN_WARNING "SUN3 Lance unable to allocate IRQ\n" ); +return 0 ; + } dev->irq = (unsigned short )LANCE_IRQ ;