diff for duplicates of <202605230211.567ddMEp-lkp@intel.com> diff --git a/a/1.txt b/N1/1.txt index 0d3c72b..d46b774 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,15 +1,6 @@ -BCC: lkp@intel.com -CC: oe-kbuild-all@lists.linux.dev -CC: devel@driverdev.osuosl.org -TO: Saravana Kannan <saravanak@google.com> -CC: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org> -CC: Herve Codina <herve.codina@bootlin.com> - tree: https://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core.git driver-core-testing head: 024480bf8d75bd16894c5b0eb6082b6e6dae4970 commit: 81e7c6befa36cecdcbf7244393bd67e8f8c59bf5 [12/18] of: dynamic: Fix overlayed devices not probing because of fw_devlink -:::::: branch date: 7 hours ago -:::::: commit date: 7 hours ago config: arm-randconfig-r071-20260523 (https://download.01.org/0day-ci/archive/20260523/202605230211.567ddMEp-lkp@intel.com/config) compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 5bac06718f502014fade905512f1d26d578a18f3) smatch: v0.5.0-9185-gbcc58b9c @@ -23,21 +14,8 @@ the same patch/commit), kindly add following tags New smatch warnings: drivers/base/core.c:286 fw_devlink_refresh_fwnode() error: we previously assumed 'dev' could be null (see line 270) -Old smatch warnings: -drivers/base/core.c:2551 device_store_int() warn: impossible condition '(new > ((~0 >> 1))) => (s32min-s32max > s32max)' -drivers/base/core.c:2551 device_store_int() warn: impossible condition '(new < (-((~0 >> 1)) - 1)) => (s32min-s32max < s32min)' -drivers/base/core.c:3297 class_dir_create_and_add() warn: Calling kobject_put|get with state->initialized unset from line: 3286 - vim +/dev +286 drivers/base/core.c -81e7c6befa36ce Saravana Kannan 2026-05-11 248 -81e7c6befa36ce Saravana Kannan 2026-05-11 249 /** -81e7c6befa36ce Saravana Kannan 2026-05-11 250 * fw_devlink_refresh_fwnode - Recheck the tree under this firmware node -81e7c6befa36ce Saravana Kannan 2026-05-11 251 * @fwnode: The fwnode under which the fwnode tree has changed -81e7c6befa36ce Saravana Kannan 2026-05-11 252 * -81e7c6befa36ce Saravana Kannan 2026-05-11 253 * This function is mainly meant to adjust the supplier/consumer dependencies -81e7c6befa36ce Saravana Kannan 2026-05-11 254 * after a fwnode tree overlay has occurred. -81e7c6befa36ce Saravana Kannan 2026-05-11 255 */ 81e7c6befa36ce Saravana Kannan 2026-05-11 256 void fw_devlink_refresh_fwnode(struct fwnode_handle *fwnode) 81e7c6befa36ce Saravana Kannan 2026-05-11 257 { 81e7c6befa36ce Saravana Kannan 2026-05-11 258 struct device *dev; @@ -54,6 +32,13 @@ vim +/dev +286 drivers/base/core.c 81e7c6befa36ce Saravana Kannan 2026-05-11 269 dev = get_dev_from_fwnode(fwnode); 81e7c6befa36ce Saravana Kannan 2026-05-11 @270 if (!dev) 81e7c6befa36ce Saravana Kannan 2026-05-11 271 continue; + +Smatch doesn't like how this code tests for NULL and but then later +we dereference "dev" without testing. + +get_dev_from_fwnode() can only return NULL if "fwnode" is NULL which +it can't be. We can just remove this test. + 81e7c6befa36ce Saravana Kannan 2026-05-11 272 81e7c6befa36ce Saravana Kannan 2026-05-11 273 if (dev->bus) 81e7c6befa36ce Saravana Kannan 2026-05-11 274 break; @@ -69,30 +54,12 @@ vim +/dev +286 drivers/base/core.c 81e7c6befa36ce Saravana Kannan 2026-05-11 284 return; 81e7c6befa36ce Saravana Kannan 2026-05-11 285 81e7c6befa36ce Saravana Kannan 2026-05-11 @286 WARN(device_is_bound(dev) && dev->links.status != DL_DEV_DRIVER_BOUND, + ^^^^^^^^^^^^^^^^^ + 81e7c6befa36ce Saravana Kannan 2026-05-11 287 "Don't multithread overlaying and probing the same device!\n"); 81e7c6befa36ce Saravana Kannan 2026-05-11 288 81e7c6befa36ce Saravana Kannan 2026-05-11 289 /* 81e7c6befa36ce Saravana Kannan 2026-05-11 290 * If the device has already bound to a driver, then we need to redo -81e7c6befa36ce Saravana Kannan 2026-05-11 291 * some of the work that was done after the device was bound to a -81e7c6befa36ce Saravana Kannan 2026-05-11 292 * driver. If the device hasn't bound to a driver, running things too -81e7c6befa36ce Saravana Kannan 2026-05-11 293 * soon would incorrectly pick up consumers that it shouldn't. -81e7c6befa36ce Saravana Kannan 2026-05-11 294 */ -81e7c6befa36ce Saravana Kannan 2026-05-11 295 if (dev->links.status == DL_DEV_DRIVER_BOUND) { -81e7c6befa36ce Saravana Kannan 2026-05-11 296 fw_devlink_pickup_dangling_consumers(dev); -81e7c6befa36ce Saravana Kannan 2026-05-11 297 /* -81e7c6befa36ce Saravana Kannan 2026-05-11 298 * Some of dangling consumers could have been put previously in -81e7c6befa36ce Saravana Kannan 2026-05-11 299 * the deferred probe list due to the unavailability of their -81e7c6befa36ce Saravana Kannan 2026-05-11 300 * suppliers. Those consumers have been picked up and some of -81e7c6befa36ce Saravana Kannan 2026-05-11 301 * their suppliers links have been updated. Time to re-try their -81e7c6befa36ce Saravana Kannan 2026-05-11 302 * probe sequence. -81e7c6befa36ce Saravana Kannan 2026-05-11 303 */ -81e7c6befa36ce Saravana Kannan 2026-05-11 304 driver_deferred_probe_trigger(); -81e7c6befa36ce Saravana Kannan 2026-05-11 305 } -81e7c6befa36ce Saravana Kannan 2026-05-11 306 -81e7c6befa36ce Saravana Kannan 2026-05-11 307 put_device(dev); -81e7c6befa36ce Saravana Kannan 2026-05-11 308 fwnode_handle_put(fwnode); -81e7c6befa36ce Saravana Kannan 2026-05-11 309 } -81e7c6befa36ce Saravana Kannan 2026-05-11 310 -- 0-DAY CI Kernel Test Service diff --git a/a/content_digest b/N1/content_digest index 473b45d..0b4a77d 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,23 +1,18 @@ - "From\0kernel test robot <lkp@intel.com>\0" + "From\0Dan Carpenter <error27@gmail.com>\0" "Subject\0[driver-core:driver-core-testing 12/18] drivers/base/core.c:286 fw_devlink_refresh_fwnode() error: we previously assumed 'dev' could be null (see line 270)\0" - "Date\0Sat, 23 May 2026 02:55:26 +0800\0" - "To\0oe-kbuild@lists.linux.dev\0" + "Date\0Sat, 23 May 2026 12:46:14 +0300\0" + "To\0oe-kbuild@lists.linux.dev" + " Saravana Kannan <saravanak@google.com>\0" "Cc\0lkp@intel.com" - " Dan Carpenter <error27@gmail.com>\0" + oe-kbuild-all@lists.linux.dev + devel@driverdev.osuosl.org + Greg Kroah-Hartman <gregkh@linuxfoundation.org> + " Herve Codina <herve.codina@bootlin.com>\0" "\00:1\0" "b\0" - "BCC: lkp@intel.com\n" - "CC: oe-kbuild-all@lists.linux.dev\n" - "CC: devel@driverdev.osuosl.org\n" - "TO: Saravana Kannan <saravanak@google.com>\n" - "CC: \"Greg Kroah-Hartman\" <gregkh@linuxfoundation.org>\n" - "CC: Herve Codina <herve.codina@bootlin.com>\n" - "\n" "tree: https://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core.git driver-core-testing\n" "head: 024480bf8d75bd16894c5b0eb6082b6e6dae4970\n" "commit: 81e7c6befa36cecdcbf7244393bd67e8f8c59bf5 [12/18] of: dynamic: Fix overlayed devices not probing because of fw_devlink\n" - ":::::: branch date: 7 hours ago\n" - ":::::: commit date: 7 hours ago\n" "config: arm-randconfig-r071-20260523 (https://download.01.org/0day-ci/archive/20260523/202605230211.567ddMEp-lkp@intel.com/config)\n" "compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 5bac06718f502014fade905512f1d26d578a18f3)\n" "smatch: v0.5.0-9185-gbcc58b9c\n" @@ -31,21 +26,8 @@ "New smatch warnings:\n" "drivers/base/core.c:286 fw_devlink_refresh_fwnode() error: we previously assumed 'dev' could be null (see line 270)\n" "\n" - "Old smatch warnings:\n" - "drivers/base/core.c:2551 device_store_int() warn: impossible condition '(new > ((~0 >> 1))) => (s32min-s32max > s32max)'\n" - "drivers/base/core.c:2551 device_store_int() warn: impossible condition '(new < (-((~0 >> 1)) - 1)) => (s32min-s32max < s32min)'\n" - "drivers/base/core.c:3297 class_dir_create_and_add() warn: Calling kobject_put|get with state->initialized unset from line: 3286\n" - "\n" "vim +/dev +286 drivers/base/core.c\n" "\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 248 \n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 249 /**\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 250 * fw_devlink_refresh_fwnode - Recheck the tree under this firmware node\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 251 * @fwnode: The fwnode under which the fwnode tree has changed\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 252 *\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 253 * This function is mainly meant to adjust the supplier/consumer dependencies\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 254 * after a fwnode tree overlay has occurred.\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 255 */\n" "81e7c6befa36ce Saravana Kannan 2026-05-11 256 void fw_devlink_refresh_fwnode(struct fwnode_handle *fwnode)\n" "81e7c6befa36ce Saravana Kannan 2026-05-11 257 {\n" "81e7c6befa36ce Saravana Kannan 2026-05-11 258 \tstruct device *dev;\n" @@ -62,6 +44,13 @@ "81e7c6befa36ce Saravana Kannan 2026-05-11 269 \t\tdev = get_dev_from_fwnode(fwnode);\n" "81e7c6befa36ce Saravana Kannan 2026-05-11 @270 \t\tif (!dev)\n" "81e7c6befa36ce Saravana Kannan 2026-05-11 271 \t\t\tcontinue;\n" + "\n" + "Smatch doesn't like how this code tests for NULL and but then later\n" + "we dereference \"dev\" without testing.\n" + "\n" + "get_dev_from_fwnode() can only return NULL if \"fwnode\" is NULL which\n" + "it can't be. We can just remove this test.\n" + "\n" "81e7c6befa36ce Saravana Kannan 2026-05-11 272 \n" "81e7c6befa36ce Saravana Kannan 2026-05-11 273 \t\tif (dev->bus)\n" "81e7c6befa36ce Saravana Kannan 2026-05-11 274 \t\t\tbreak;\n" @@ -77,33 +66,15 @@ "81e7c6befa36ce Saravana Kannan 2026-05-11 284 \t\treturn;\n" "81e7c6befa36ce Saravana Kannan 2026-05-11 285 \n" "81e7c6befa36ce Saravana Kannan 2026-05-11 @286 \tWARN(device_is_bound(dev) && dev->links.status != DL_DEV_DRIVER_BOUND,\n" + " ^^^^^^^^^^^^^^^^^\n" + "\n" "81e7c6befa36ce Saravana Kannan 2026-05-11 287 \t \"Don't multithread overlaying and probing the same device!\\n\");\n" "81e7c6befa36ce Saravana Kannan 2026-05-11 288 \n" "81e7c6befa36ce Saravana Kannan 2026-05-11 289 \t/*\n" "81e7c6befa36ce Saravana Kannan 2026-05-11 290 \t * If the device has already bound to a driver, then we need to redo\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 291 \t * some of the work that was done after the device was bound to a\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 292 \t * driver. If the device hasn't bound to a driver, running things too\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 293 \t * soon would incorrectly pick up consumers that it shouldn't.\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 294 \t */\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 295 \tif (dev->links.status == DL_DEV_DRIVER_BOUND) {\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 296 \t\tfw_devlink_pickup_dangling_consumers(dev);\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 297 \t\t/*\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 298 \t\t * Some of dangling consumers could have been put previously in\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 299 \t\t * the deferred probe list due to the unavailability of their\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 300 \t\t * suppliers. Those consumers have been picked up and some of\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 301 \t\t * their suppliers links have been updated. Time to re-try their\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 302 \t\t * probe sequence.\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 303 \t\t */\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 304 \t\tdriver_deferred_probe_trigger();\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 305 \t}\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 306 \n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 307 \tput_device(dev);\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 308 \tfwnode_handle_put(fwnode);\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 309 }\n" - "81e7c6befa36ce Saravana Kannan 2026-05-11 310 \n" "\n" "--\n" "0-DAY CI Kernel Test Service\n" https://github.com/intel/lkp-tests/wiki -2a2beb490759108bd92619bffcb2f342245153ff300cefb72b9a8bb5ee6f2b7d +84ee1220f7b2e15dc173abf94c45f3e0897fbf6027fe4138d2cb3b67f7dc09df
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.