diff mbox series

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

Message ID 1603265889-8967-1-git-send-email-bodefang@126.com (mailing list archive)
State Not Applicable
Delegated to: Netdev Maintainers
Headers show
Series [v3] tg3: Avoid NULL pointer dereference in netif_device_attach() | expand

Commit Message

Defang Bo Oct. 21, 2020, 7:38 a.m. UTC
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@126.com>
---
 drivers/net/ethernet/broadcom/tg3.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Jakub Kicinski Oct. 21, 2020, 5:23 p.m. UTC | #1
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@126.com>

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);
diff mbox series

Patch

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);