Hi Lukasz, On Tue, Oct 1, 2019 at 11:07 AM Lukasz Majewski <lukma@xxxxxxx> wrote: > Call spi_slave_abort() only when the spidev->spi is !NULL and the > structure hasn't already been kfreed. > > Reported-by: kbuild test robot <lkp@xxxxxxxxx> > Reported-by: Julia Lawall <julia.lawall@xxxxxxx> > Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Signed-off-by: Lukasz Majewski <lukma@xxxxxxx> Thanks for your patch! > --- a/drivers/spi/spidev.c > +++ b/drivers/spi/spidev.c > @@ -600,15 +600,16 @@ static int spidev_open(struct inode *inode, struct file *filp) > static int spidev_release(struct inode *inode, struct file *filp) > { > struct spidev_data *spidev; > + int dofree; bool? > > mutex_lock(&device_list_lock); > spidev = filp->private_data; > filp->private_data = NULL; > + dofree = 0; Why not initialize it at declaration time? > > /* last close? */ > spidev->users--; > if (!spidev->users) { > - int dofree; > > kfree(spidev->tx_buffer); > spidev->tx_buffer = NULL; > @@ -628,7 +629,8 @@ static int spidev_release(struct inode *inode, struct file *filp) > kfree(spidev); > } > #ifdef CONFIG_SPI_SLAVE > - spi_slave_abort(spidev->spi); > + if (!dofree) > + spi_slave_abort(spidev->spi); Can spidev->spi be NULL, if spidev->users != 0? > #endif > mutex_unlock(&device_list_lock); Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds