drivers/net/wireless/st/cw1200/cw1200_spi.c:440 cw1200_spi_disconnect() error: we previously assumed 'self' could be null (see line 433)

From: Dan Carpenter
Date: Sun Oct 13 2024 - 09:10:44 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 09f6b0c8904bfaa1e0601bc102e1b6aa6de8c98f
commit: 2719a9e7156c4b3983b43db467c1ff96801bda99 wifi: cw1200: Convert to GPIO descriptors
date: 8 months ago
config: x86_64-randconfig-161-20241012 (https://download.01.org/0day-ci/archive/20241012/202410121505.nyghqEkK-lkp@xxxxxxxxx/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
| Closes: https://lore.kernel.org/r/202410121505.nyghqEkK-lkp@xxxxxxxxx/

smatch warnings:
drivers/net/wireless/st/cw1200/cw1200_spi.c:440 cw1200_spi_disconnect() error: we previously assumed 'self' could be null (see line 433)

vim +/self +440 drivers/net/wireless/st/cw1200/cw1200_spi.c

a0386bba70934d drivers/net/wireless/st/cw1200/cw1200_spi.c Uwe Kleine-König 2022-01-23 429 static void cw1200_spi_disconnect(struct spi_device *func)
a910e4a94f6923 drivers/net/wireless/cw1200/cw1200_spi.c Solomon Peachy 2013-05-24 430 {
911373cca1b455 drivers/net/wireless/cw1200/cw1200_spi.c Solomon Peachy 2013-06-01 431 struct hwbus_priv *self = spi_get_drvdata(func);
a910e4a94f6923 drivers/net/wireless/cw1200/cw1200_spi.c Solomon Peachy 2013-05-24 432
a910e4a94f6923 drivers/net/wireless/cw1200/cw1200_spi.c Solomon Peachy 2013-05-24 @433 if (self) {
^^^^
If self is NULL

a910e4a94f6923 drivers/net/wireless/cw1200/cw1200_spi.c Solomon Peachy 2013-05-24 434 cw1200_spi_irq_unsubscribe(self);
a910e4a94f6923 drivers/net/wireless/cw1200/cw1200_spi.c Solomon Peachy 2013-05-24 435 if (self->core) {
a910e4a94f6923 drivers/net/wireless/cw1200/cw1200_spi.c Solomon Peachy 2013-05-24 436 cw1200_core_release(self->core);
a910e4a94f6923 drivers/net/wireless/cw1200/cw1200_spi.c Solomon Peachy 2013-05-24 437 self->core = NULL;
a910e4a94f6923 drivers/net/wireless/cw1200/cw1200_spi.c Solomon Peachy 2013-05-24 438 }
a910e4a94f6923 drivers/net/wireless/cw1200/cw1200_spi.c Solomon Peachy 2013-05-24 439 }
2719a9e7156c4b drivers/net/wireless/st/cw1200/cw1200_spi.c Linus Walleij 2024-01-31 @440 cw1200_spi_off(self, dev_get_platdata(&func->dev));
^^^^
This will oops

a910e4a94f6923 drivers/net/wireless/cw1200/cw1200_spi.c Solomon Peachy 2013-05-24 441 }

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki