Re: tg3: unable to handle null pointer dereference

2007-04-06 Thread Nishanth Aravamudan
On 06.04.2007 [17:36:00 -0700], David Miller wrote:
> From: "Michael Chan" <[EMAIL PROTECTED]>
> Date: Fri, 06 Apr 2007 15:57:13 -0700
> 
> > On Fri, 2007-04-06 at 14:40 -0700, Nishanth Aravamudan wrote:
> > 
> > > 2.6.21-rc5 is ok. 2.6.21-rc6 results in
> > > 
> > > [   14.241665] Unable to handle kernel NULL pointer dereference (address 
> > > )
> > 
> > Sorry, I think this should fix it:
> > 
> > [TG3]: Fix crash during tg3_init_one().
> > 
> > The driver will crash when the chip has been initialized by EFI before
> > tg3_init_one().  In this case, the driver will call tg3_chip_reset()
> > before allocating consistent memory.
> > 
> > The bug is fixed by checking for tp->hw_status before accessing it
> > during tg3_chip_reset().
> > 
> > Signed-off-by: Michael Chan <[EMAIL PROTECTED]>
> 
> Applied, thanks Michael.

FWIW, tested, no panic.

Tested-by: Nishanth Aravamudan <[EMAIL PROTECTED]>

Thanks,
Nish

-- 
Nishanth Aravamudan <[EMAIL PROTECTED]>
IBM Linux Technology Center
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: tg3: unable to handle null pointer dereference

2007-04-06 Thread David Miller
From: "Michael Chan" <[EMAIL PROTECTED]>
Date: Fri, 06 Apr 2007 15:57:13 -0700

> On Fri, 2007-04-06 at 14:40 -0700, Nishanth Aravamudan wrote:
> 
> > 2.6.21-rc5 is ok. 2.6.21-rc6 results in
> > 
> > [   14.241665] Unable to handle kernel NULL pointer dereference (address 
> > )
> 
> Sorry, I think this should fix it:
> 
> [TG3]: Fix crash during tg3_init_one().
> 
> The driver will crash when the chip has been initialized by EFI before
> tg3_init_one().  In this case, the driver will call tg3_chip_reset()
> before allocating consistent memory.
> 
> The bug is fixed by checking for tp->hw_status before accessing it
> during tg3_chip_reset().
> 
> Signed-off-by: Michael Chan <[EMAIL PROTECTED]>

Applied, thanks Michael.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: tg3: unable to handle null pointer dereference [Re: Linux 2.6.21-rc6]

2007-04-06 Thread Michael Chan
On Fri, 2007-04-06 at 14:40 -0700, Nishanth Aravamudan wrote:

> 2.6.21-rc5 is ok. 2.6.21-rc6 results in
> 
> [   14.241665] Unable to handle kernel NULL pointer dereference (address 
> )

Sorry, I think this should fix it:

[TG3]: Fix crash during tg3_init_one().

The driver will crash when the chip has been initialized by EFI before
tg3_init_one().  In this case, the driver will call tg3_chip_reset()
before allocating consistent memory.

The bug is fixed by checking for tp->hw_status before accessing it
during tg3_chip_reset().

Signed-off-by: Michael Chan <[EMAIL PROTECTED]>

diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 0acee9f..256969e 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -4834,8 +4834,10 @@ static int tg3_chip_reset(struct tg3 *tp)
 * sharing or irqpoll.
 */
tp->tg3_flags |= TG3_FLAG_CHIP_RESETTING;
-   tp->hw_status->status = 0;
-   tp->hw_status->status_tag = 0;
+   if (tp->hw_status) {
+   tp->hw_status->status = 0;
+   tp->hw_status->status_tag = 0;
+   }
tp->last_tag = 0;
smp_mb();
synchronize_irq(tp->pdev->irq);




-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/