drivers/platform/x86/lenovo/thinkpad_acpi.c:1206 tpacpi_new_rfkill() warn: 'atp_rfk->rfkill' is an error pointer or valid

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-kbuild
Message-ID <[email protected]>
BCC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Mark Pearson <[email protected]>
CC: "Ilpo Järvinen" <[email protected]>
CC: Andy Shevchenko <[email protected]>

Hi Mark,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   2f1baf1fc8929e6c48370be543ad028ac7ad4131
commit: 651b57dd40871d4d0d61fb291e7f26e2b8bd69b1 platform/x86: Move Lenovo files into lenovo subdir
date:   1 year, 2 months ago
:::::: branch date: 26 hours ago
:::::: commit date: 1 year, 2 months ago
config: i386-randconfig-141-20260815 (https://download.01.org/0day-ci/archive/20260815/[email protected]/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
smatch: v0.5.0-9187-g5189e3fb

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
| Fixes: 651b57dd4087 ("platform/x86: Move Lenovo files into lenovo subdir")
| Reported-by: kernel test robot <[email protected]>
| Reported-by: Dan Carpenter <[email protected]>
| Closes: https://lore.kernel.org/r/[email protected]/

New smatch warnings:
drivers/platform/x86/lenovo/thinkpad_acpi.c:1206 tpacpi_new_rfkill() warn: 'atp_rfk->rfkill' is an error pointer or valid

Old smatch warnings:
drivers/platform/x86/lenovo/thinkpad_acpi.c:2662 hotkey_inputdev_close() warn: bitwise AND condition is false here
drivers/platform/x86/lenovo/thinkpad_acpi.c:3669 hotkey_notify_hotkey() warn: bitwise AND condition is false here

vim +1206 drivers/platform/x86/lenovo/thinkpad_acpi.c

19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1184  
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1185  static int __init tpacpi_new_rfkill(const enum tpacpi_rfk_id id,
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1186  			const struct tpacpi_rfk_ops *tp_rfkops,
0e74dc2646db04 drivers/misc/thinkpad_acpi.c         Henrique de Moraes Holschuh 2008-07-21  1187  			const enum rfkill_type rfktype,
0e74dc2646db04 drivers/misc/thinkpad_acpi.c         Henrique de Moraes Holschuh 2008-07-21  1188  			const char *name,
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1189  			const bool set_default)
0e74dc2646db04 drivers/misc/thinkpad_acpi.c         Henrique de Moraes Holschuh 2008-07-21  1190  {
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1191  	struct tpacpi_rfk *atp_rfk;
0e74dc2646db04 drivers/misc/thinkpad_acpi.c         Henrique de Moraes Holschuh 2008-07-21  1192  	int res;
06d5caf47ef4fb drivers/platform/x86/thinkpad_acpi.c Alan Jenkins                2009-06-16  1193  	bool sw_state = false;
5451a923bbdcff drivers/platform/x86/thinkpad_acpi.c Henrique de Moraes Holschuh 2009-12-15  1194  	bool hw_state;
06d5caf47ef4fb drivers/platform/x86/thinkpad_acpi.c Alan Jenkins                2009-06-16  1195  	int sw_status;
90d9d3c79c44bc drivers/platform/x86/thinkpad_acpi.c Henrique de Moraes Holschuh 2009-01-11  1196  
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1197  	BUG_ON(id >= TPACPI_RFK_SW_MAX || tpacpi_rfkill_switches[id]);
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1198  
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1199  	atp_rfk = kzalloc(sizeof(struct tpacpi_rfk), GFP_KERNEL);
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1200  	if (atp_rfk)
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1201  		atp_rfk->rfkill = rfkill_alloc(name,
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1202  						&tpacpi_pdev->dev,
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1203  						rfktype,
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1204  						&tpacpi_rfk_rfkill_ops,
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1205  						atp_rfk);
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02 @1206  	if (!atp_rfk || !atp_rfk->rfkill) {
0978e012cfbaca drivers/platform/x86/thinkpad_acpi.c Joe Perches                 2011-04-04  1207  		pr_err("failed to allocate memory for rfkill class\n");
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1208  		kfree(atp_rfk);
0e74dc2646db04 drivers/misc/thinkpad_acpi.c         Henrique de Moraes Holschuh 2008-07-21  1209  		return -ENOMEM;
0e74dc2646db04 drivers/misc/thinkpad_acpi.c         Henrique de Moraes Holschuh 2008-07-21  1210  	}
0e74dc2646db04 drivers/misc/thinkpad_acpi.c         Henrique de Moraes Holschuh 2008-07-21  1211  
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1212  	atp_rfk->id = id;
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1213  	atp_rfk->ops = tp_rfkops;
0e74dc2646db04 drivers/misc/thinkpad_acpi.c         Henrique de Moraes Holschuh 2008-07-21  1214  
06d5caf47ef4fb drivers/platform/x86/thinkpad_acpi.c Alan Jenkins                2009-06-16  1215  	sw_status = (tp_rfkops->get_status)();
06d5caf47ef4fb drivers/platform/x86/thinkpad_acpi.c Alan Jenkins                2009-06-16  1216  	if (sw_status < 0) {
0978e012cfbaca drivers/platform/x86/thinkpad_acpi.c Joe Perches                 2011-04-04  1217  		pr_err("failed to read initial state for %s, error %d\n",
06d5caf47ef4fb drivers/platform/x86/thinkpad_acpi.c Alan Jenkins                2009-06-16  1218  		       name, sw_status);
b3fa1329eaf2a7 drivers/platform/x86/thinkpad_acpi.c Alan Jenkins                2009-06-08  1219  	} else {
06d5caf47ef4fb drivers/platform/x86/thinkpad_acpi.c Alan Jenkins                2009-06-16  1220  		sw_state = (sw_status == TPACPI_RFK_RADIO_OFF);
b3fa1329eaf2a7 drivers/platform/x86/thinkpad_acpi.c Alan Jenkins                2009-06-08  1221  		if (set_default) {
b3fa1329eaf2a7 drivers/platform/x86/thinkpad_acpi.c Alan Jenkins                2009-06-08  1222  			/* try to keep the initial state, since we ask the
b3fa1329eaf2a7 drivers/platform/x86/thinkpad_acpi.c Alan Jenkins                2009-06-08  1223  			 * firmware to preserve it across S5 in NVRAM */
06d5caf47ef4fb drivers/platform/x86/thinkpad_acpi.c Alan Jenkins                2009-06-16  1224  			rfkill_init_sw_state(atp_rfk->rfkill, sw_state);
b3fa1329eaf2a7 drivers/platform/x86/thinkpad_acpi.c Alan Jenkins                2009-06-08  1225  		}
b3fa1329eaf2a7 drivers/platform/x86/thinkpad_acpi.c Alan Jenkins                2009-06-08  1226  	}
5451a923bbdcff drivers/platform/x86/thinkpad_acpi.c Henrique de Moraes Holschuh 2009-12-15  1227  	hw_state = tpacpi_rfk_check_hwblock_state();
5451a923bbdcff drivers/platform/x86/thinkpad_acpi.c Henrique de Moraes Holschuh 2009-12-15  1228  	rfkill_set_hw_state(atp_rfk->rfkill, hw_state);
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1229  
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1230  	res = rfkill_register(atp_rfk->rfkill);
0e74dc2646db04 drivers/misc/thinkpad_acpi.c         Henrique de Moraes Holschuh 2008-07-21  1231  	if (res < 0) {
0978e012cfbaca drivers/platform/x86/thinkpad_acpi.c Joe Perches                 2011-04-04  1232  		pr_err("failed to register %s rfkill switch: %d\n", name, res);
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1233  		rfkill_destroy(atp_rfk->rfkill);
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1234  		kfree(atp_rfk);
0e74dc2646db04 drivers/misc/thinkpad_acpi.c         Henrique de Moraes Holschuh 2008-07-21  1235  		return res;
0e74dc2646db04 drivers/misc/thinkpad_acpi.c         Henrique de Moraes Holschuh 2008-07-21  1236  	}
0e74dc2646db04 drivers/misc/thinkpad_acpi.c         Henrique de Moraes Holschuh 2008-07-21  1237  
19d337dff95cbf drivers/platform/x86/thinkpad_acpi.c Johannes Berg               2009-06-02  1238  	tpacpi_rfkill_switches[id] = atp_rfk;
5451a923bbdcff drivers/platform/x86/thinkpad_acpi.c Henrique de Moraes Holschuh 2009-12-15  1239  
0978e012cfbaca drivers/platform/x86/thinkpad_acpi.c Joe Perches                 2011-04-04  1240  	pr_info("rfkill switch %s: radio is %sblocked\n",
5451a923bbdcff drivers/platform/x86/thinkpad_acpi.c Henrique de Moraes Holschuh 2009-12-15  1241  		name, (sw_state || hw_state) ? "" : "un");
0e74dc2646db04 drivers/misc/thinkpad_acpi.c         Henrique de Moraes Holschuh 2008-07-21  1242  	return 0;
0e74dc2646db04 drivers/misc/thinkpad_acpi.c         Henrique de Moraes Holschuh 2008-07-21  1243  }
0e74dc2646db04 drivers/misc/thinkpad_acpi.c         Henrique de Moraes Holschuh 2008-07-21  1244  

:::::: The code at line 1206 was first introduced by commit
:::::: 19d337dff95cbf76edd3ad95c0cee2732c3e1ec5 rfkill: rewrite

:::::: TO: Johannes Berg <[email protected]>
:::::: CC: John W. Linville <[email protected]>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.