From: Michael Chan Date: Sat, 7 Apr 2007 00:35:37 +0000 (-0700) Subject: [TG3]: Fix crash during tg3_init_one(). X-Git-Tag: v2.6.21-rc7~44^2 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=b8fa2f3a82069304acac1f9e957d491585f4f49a;p=~shefty%2Frdma-dev.git [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 Signed-off-by: David S. Miller --- diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 0acee9f324e..256969e1300 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);