[frank-w-bpi-r2-4.14:pr/187 1/1] drivers/net/ethernet/mediatek/mtk_eth_soc.c:5565: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/ethernet/mediatek/mtk_eth_soc.c:5565: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: 8678640e804a2d9b6bf1ca78825accdcd2a8ebb5 [1/1] net: ethernet: mtk_eth_soc: support ethernet passive mux :::::: branch date: 5 days ago :::::: commit date: 5 days ago config: openrisc-randconfig-r112-20260702 (https://download.01.org/0day-ci/archive/20260702/[email protected]/config) compiler: or1k-linux-gcc (GCC) 16.1.0 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/ethernet/mediatek/mtk_eth_soc.c:1973:45: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __sum16 [usertype] check @@ got restricted __be16 [usertype] @@ drivers/net/ethernet/mediatek/mtk_eth_soc.c:1973:45: sparse: expected restricted __sum16 [usertype] check drivers/net/ethernet/mediatek/mtk_eth_soc.c:1973:45: sparse: got restricted __be16 [usertype] drivers/net/ethernet/mediatek/mtk_eth_soc.c: note: in included file (through include/linux/if_ether.h, include/linux/ethtool.h, include/linux/phy.h, include/linux/of_mdio.h): include/linux/skbuff.h:2905:28: sparse: sparse: unsigned value that used to be signed checked against zero? include/linux/skbuff.h:2905:28: sparse: signed value source >> drivers/net/ethernet/mediatek/mtk_eth_soc.c:5565:18: sparse: sparse: unsigned value that used to be signed checked against zero? drivers/net/ethernet/mediatek/mtk_eth_soc.c: note: in included file (through include/linux/byteorder/big_endian.h, arch/openrisc/include/uapi/asm/byteorder.h, include/asm-generic/bitops/le.h, ...): include/uapi/linux/byteorder/big_endian.h:83:32: sparse: signed value source vim +5565 drivers/net/ethernet/mediatek/mtk_eth_soc.c 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5550 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5551 static int mtk_add_mux(struct mtk_eth *eth, struct device_node *np) 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5552 { 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5553 const __be32 *_id = of_get_property(np, "reg", NULL); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5554 struct device_node *child; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5555 struct mtk_mux *mux; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5556 unsigned int id; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5557 int err; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5558 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5559 if (!_id) { 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5560 dev_err(eth->dev, "missing attach mac id\n"); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5561 return -EINVAL; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5562 } 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5563 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5564 id = be32_to_cpup(_id); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 @5565 if (id < 0 || id >= MTK_MAX_DEVS) { 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5566 dev_err(eth->dev, "%d is not a valid attach mac id\n", id); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5567 return -EINVAL; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5568 } 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5569 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5570 mux = kmalloc(sizeof(struct mtk_mux), GFP_KERNEL); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5571 if (unlikely(!mux)) { 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5572 dev_err(eth->dev, "failed to create mux structure\n"); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5573 return -ENOMEM; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5574 } 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5575 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5576 eth->mux[id] = mux; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5577 mux->mac = eth->mac[id]; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5578 mux->channel = 0; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5579 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5580 mux->mod_def0_gpio = fwnode_gpiod_get_index(of_fwnode_handle(np), 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5581 "mod-def0", 0, GPIOD_IN | 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5582 GPIOD_FLAGS_BIT_NONEXCLUSIVE, "?"); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5583 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5584 if (IS_ERR(mux->mod_def0_gpio)) { 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5585 dev_err(eth->dev, "failed to requset gpio for mod-def0\n"); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5586 err = PTR_ERR(mux->mod_def0_gpio); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5587 goto err_free_mux; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5588 } 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5589 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5590 mux->chan_sel_gpio = fwnode_gpiod_get_index(of_fwnode_handle(np), 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5591 "chan-sel", 0, GPIOD_OUT_LOW, "?"); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5592 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5593 if (IS_ERR(mux->chan_sel_gpio)) { 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5594 dev_err(eth->dev, "failed to requset gpio for chan-sel\n"); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5595 err = PTR_ERR(mux->chan_sel_gpio); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5596 goto err_put_mod_def0; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5597 } 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5598 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5599 of_property_read_u32(np, "sfp-present-channel", 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5600 &mux->sfp_present_channel); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5601 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5602 for_each_child_of_node(np, child) { 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5603 err = mtk_add_mux_channel(mux, child); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5604 if (err) { 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5605 dev_err(eth->dev, "failed to add mtk_mux\n"); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5606 of_node_put(child); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5607 goto err_put_chan_sel; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5608 } 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5609 } 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5610 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5611 INIT_DELAYED_WORK(&mux->poll, mux_poll); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5612 mod_delayed_work(system_wq, &mux->poll, msecs_to_jiffies(3000)); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5613 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5614 return 0; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5615 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5616 err_put_chan_sel: 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5617 gpiod_put(mux->chan_sel_gpio); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5618 err_put_mod_def0: 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5619 gpiod_put(mux->mod_def0_gpio); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5620 err_free_mux: 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5621 kfree(mux); 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5622 eth->mux[id] = NULL; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5623 return err; 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5624 } 8678640e804a2d9 Bo-Cun Chen 2024-11-28 5625 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki