bogus kfree() in ibmtr
PATCH 1/1 bogus kfree() in ibmtr
On several failure exits in ibmtr we end up doing kfree() ondev->priv, with dev allocated by alloc_trdev() and ->priv never reassigned.
Signed-off-by Al Viro <[email protected]>
----
drivers/net/tokenring/ibmtr.c +0 -5
@@ -531,7 +531,6 @@if (!time_after (jiffies, timeout))continue ;DPRINTK ("Hardware timeout during initialization.\n" );iounmap (t_mmio); -kfree (ti);return -ENODEV ; } ti->sram_phys =
@@ -645,7 +644,6 @@DPRINTK ("Unknown shared ram paging info %01X\n" , ti->shared_ram_paging);iounmap (t_mmio); -kfree (ti);return -ENODEV ;break ; }/*end switch shared_ram_paging */
@@ -675,7 +673,6 @@"driver limit (%05x), adapter not started.\n" , chk_base, ibmtr_mem_base + IBMTR_SHARED_RAM_SIZE);iounmap (t_mmio); -kfree (ti);return -ENODEV ; }else {/* seems cool, record what we have figured out */ ti->sram_base = new_base >>12 ;
@@ -690,7 +687,6 @@DPRINTK ("Could not grab irq %d. Halting Token Ring driver.\n" , irq);iounmap (t_mmio); -kfree (ti);return -ENODEV ; }/*?? Now, allocate some of the PIO PORTs for this driver.. */
@@ -699,7 +695,6 @@DPRINTK ("Could not grab PIO range. Halting driver.\n" );free_irq (dev->irq, dev);iounmap (t_mmio); -kfree (ti);return -EBUSY ; }