diff options
Diffstat (limited to 'drivers/net/dsa/microchip/ksz8795_spi.c')
| -rw-r--r-- | drivers/net/dsa/microchip/ksz8795_spi.c | 11 | 
1 files changed, 10 insertions, 1 deletions
| diff --git a/drivers/net/dsa/microchip/ksz8795_spi.c b/drivers/net/dsa/microchip/ksz8795_spi.c index ea7550d1b634..866767b70d65 100644 --- a/drivers/net/dsa/microchip/ksz8795_spi.c +++ b/drivers/net/dsa/microchip/ksz8795_spi.c @@ -94,6 +94,8 @@ static int ksz8795_spi_remove(struct spi_device *spi)  	if (dev)  		ksz_switch_remove(dev); +	spi_set_drvdata(spi, NULL); +  	return 0;  } @@ -101,8 +103,15 @@ static void ksz8795_spi_shutdown(struct spi_device *spi)  {  	struct ksz_device *dev = spi_get_drvdata(spi); -	if (dev && dev->dev_ops->shutdown) +	if (!dev) +		return; + +	if (dev->dev_ops->shutdown)  		dev->dev_ops->shutdown(dev); + +	dsa_switch_shutdown(dev->ds); + +	spi_set_drvdata(spi, NULL);  }  static const struct of_device_id ksz8795_dt_ids[] = { |