[frank-w-bpi-r2-4.14:pr/187 1/1] drivers/net/dsa/mxl862xx/mxl862xx.c:4518:18: sparse: sparse: unsigned value that used to be signed checked against zero?
kernel test robot <[email protected]>
| Newsgroups | dev.linux.lists.oe-kbuild |
|---|---|
| Message-ID | <[email protected]> |
:::::: :::::: Manual check reason: "low confidence static check warning: drivers/net/dsa/mxl862xx/mxl862xx.c:4518:18: sparse: sparse: unsigned value that used to be signed checked against zero?" :::::: BCC: [email protected] CC: [email protected] TO: Frank Wunderlich <[email protected]> tree: https://github.com/frank-w/BPI-R2-4.14 pr/187 head: 3591b14936035fc6eaa4ffb659d63289367e34d4 commit: 577f2ee0515d84bb0aa78dbe0d3b3b1fe4d2658d [1/1] net: dsa: mxl862xx: add ds-mux (WIP) :::::: branch date: 4 days ago :::::: commit date: 5 days ago config: sparc64-randconfig-r121-20260702 (https://download.01.org/0day-ci/archive/20260702/[email protected]/config) compiler: clang version 22.1.3 (https://github.com/llvm/llvm-project e9846648fd6183ee6d8cbdb4502213fcf902a211) sparse: v0.6.5-rc1 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260702/[email protected]/reproduce) 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 <[email protected]> | Closes: https://lore.kernel.org/r/[email protected]/ sparse warnings: (new ones prefixed by >>) >> drivers/net/dsa/mxl862xx/mxl862xx.c:4518:18: sparse: sparse: unsigned value that used to be signed checked against zero? drivers/net/dsa/mxl862xx/mxl862xx.c: note: in included file (through include/linux/byteorder/big_endian.h, arch/sparc/include/uapi/asm/byteorder.h, include/linux/bitfield.h): include/uapi/linux/byteorder/big_endian.h:83:32: sparse: signed value source vim +4518 drivers/net/dsa/mxl862xx/mxl862xx.c 577f2ee0515d84 Frank Wunderlich 2025-10-21 4503 577f2ee0515d84 Frank Wunderlich 2025-10-21 4504 static int ds_add_mux(struct mxl862xx_priv *priv, struct device_node *np) 577f2ee0515d84 Frank Wunderlich 2025-10-21 4505 { 577f2ee0515d84 Frank Wunderlich 2025-10-21 4506 const __be32 *_id = of_get_property(np, "reg", NULL); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4507 struct device_node *child; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4508 struct combo_port_mux *mux; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4509 unsigned int id; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4510 int err; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4511 577f2ee0515d84 Frank Wunderlich 2025-10-21 4512 if (!_id) { 577f2ee0515d84 Frank Wunderlich 2025-10-21 4513 dev_err(priv->ds->dev, "missing attach dp id\n"); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4514 return -EINVAL; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4515 } 577f2ee0515d84 Frank Wunderlich 2025-10-21 4516 577f2ee0515d84 Frank Wunderlich 2025-10-21 4517 id = be32_to_cpup(_id); 577f2ee0515d84 Frank Wunderlich 2025-10-21 @4518 if (id < 0 || id >= MXL862XX_MAX_PORTS) { 577f2ee0515d84 Frank Wunderlich 2025-10-21 4519 dev_err(priv->ds->dev, "%d is not a valid attach dp id\n", id); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4520 return -EINVAL; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4521 } 577f2ee0515d84 Frank Wunderlich 2025-10-21 4522 577f2ee0515d84 Frank Wunderlich 2025-10-21 4523 mux = kmalloc(sizeof(struct combo_port_mux), GFP_KERNEL); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4524 if (unlikely(!mux)) { 577f2ee0515d84 Frank Wunderlich 2025-10-21 4525 dev_err(priv->ds->dev, "failed to create mux structure\n"); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4526 return -ENOMEM; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4527 } 577f2ee0515d84 Frank Wunderlich 2025-10-21 4528 577f2ee0515d84 Frank Wunderlich 2025-10-21 4529 mux->mod_def0_gpio = fwnode_gpiod_get_index(of_fwnode_handle(np), 577f2ee0515d84 Frank Wunderlich 2025-10-21 4530 "mod-def0", 0, GPIOD_IN | 577f2ee0515d84 Frank Wunderlich 2025-10-21 4531 GPIOD_FLAGS_BIT_NONEXCLUSIVE, "?"); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4532 577f2ee0515d84 Frank Wunderlich 2025-10-21 4533 if (IS_ERR(mux->mod_def0_gpio)) { 577f2ee0515d84 Frank Wunderlich 2025-10-21 4534 dev_err(priv->ds->dev, "failed to requset gpio for mod-def0\n"); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4535 err = PTR_ERR(mux->mod_def0_gpio); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4536 goto err_free_mux; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4537 } 577f2ee0515d84 Frank Wunderlich 2025-10-21 4538 577f2ee0515d84 Frank Wunderlich 2025-10-21 4539 mux->chan_sel_gpio = fwnode_gpiod_get_index(of_fwnode_handle(np), 577f2ee0515d84 Frank Wunderlich 2025-10-21 4540 "chan-sel", 0, GPIOD_OUT_LOW, "?"); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4541 577f2ee0515d84 Frank Wunderlich 2025-10-21 4542 if (IS_ERR(mux->chan_sel_gpio)) { 577f2ee0515d84 Frank Wunderlich 2025-10-21 4543 dev_err(priv->ds->dev, "failed to requset gpio for chan-sel\n"); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4544 err = PTR_ERR(mux->chan_sel_gpio); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4545 goto err_put_mod_def0; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4546 } 577f2ee0515d84 Frank Wunderlich 2025-10-21 4547 577f2ee0515d84 Frank Wunderlich 2025-10-21 4548 of_property_read_u32(np, "sfp-present-channel", 577f2ee0515d84 Frank Wunderlich 2025-10-21 4549 &mux->sfp_present_channel); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4550 577f2ee0515d84 Frank Wunderlich 2025-10-21 4551 priv->ds_mux[id] = mux; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4552 mux->dp = dsa_to_port(priv->ds, id); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4553 /* configure default channel to 10G PHY */ 577f2ee0515d84 Frank Wunderlich 2025-10-21 4554 mux->channel = !mux->sfp_present_channel; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4555 mux->initialized = false; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4556 577f2ee0515d84 Frank Wunderlich 2025-10-21 4557 for_each_child_of_node(np, child) { 577f2ee0515d84 Frank Wunderlich 2025-10-21 4558 err = ds_add_mux_channel(mux, child); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4559 if (err) { 577f2ee0515d84 Frank Wunderlich 2025-10-21 4560 dev_err(priv->ds->dev, "failed to add ds_mux\n"); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4561 of_node_put(child); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4562 goto err_put_chan_sel; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4563 } 577f2ee0515d84 Frank Wunderlich 2025-10-21 4564 } 577f2ee0515d84 Frank Wunderlich 2025-10-21 4565 577f2ee0515d84 Frank Wunderlich 2025-10-21 4566 INIT_DELAYED_WORK(&mux->sfp_monitor_work, sfp_monitor_work_func); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4567 mod_delayed_work(system_wq, &mux->sfp_monitor_work, msecs_to_jiffies(3000)); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4568 577f2ee0515d84 Frank Wunderlich 2025-10-21 4569 return 0; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4570 577f2ee0515d84 Frank Wunderlich 2025-10-21 4571 err_put_chan_sel: 577f2ee0515d84 Frank Wunderlich 2025-10-21 4572 gpiod_put(mux->chan_sel_gpio); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4573 err_put_mod_def0: 577f2ee0515d84 Frank Wunderlich 2025-10-21 4574 gpiod_put(mux->mod_def0_gpio); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4575 err_free_mux: 577f2ee0515d84 Frank Wunderlich 2025-10-21 4576 kfree(mux); 577f2ee0515d84 Frank Wunderlich 2025-10-21 4577 priv->ds_mux[id] = NULL; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4578 return err; 577f2ee0515d84 Frank Wunderlich 2025-10-21 4579 } 577f2ee0515d84 Frank Wunderlich 2025-10-21 4580 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki