Re: [PATCH v3] tg3: Avoid NULL pointer dereference in netif_device_attach()

From: Jakub Kicinski
Date: Wed Oct 21 2020 - 13:23:22 EST


On Wed, 21 Oct 2020 15:38:09 +0800 Defang Bo wrote:
> Similar to commit<1b0ff89852d7>("tg3: Avoid NULL pointer dereference in tg3_io_error_detected()")
> This patch avoids NULL pointer dereference add a check for netdev being NULL on tg3_resume().
>
> Signed-off-by: Defang Bo <bodefang@xxxxxxx>

Are you actually hitting this error or can otherwise prove it may
happen?

PCIe error handlers could reasonably happen asynchronously during
probe, but suspend/resume getting called on a device that wasn't fully
probed sounds like something that should be prevented by the bus.

> diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
> index ae756dd..345c6aa 100644
> --- a/drivers/net/ethernet/broadcom/tg3.c
> +++ b/drivers/net/ethernet/broadcom/tg3.c
> @@ -18099,7 +18099,7 @@ static int tg3_resume(struct device *device)
>
> rtnl_lock();
>
> - if (!netdev || !netif_running(dev))
> + if (!dev || !netif_running(dev))
> goto unlock;
>
> netif_device_attach(dev);