[Intel-wired-lan] [tnguy-next-queue:dev-queue 16/69] drivers/net/ethernet/intel/ice/devlink/health.c:95 ice_tx_hang_reporter_dump() warn: variable dereferenced before check 'event' (see line 93)
Dan Carpenter
dan.carpenter at linaro.org
Sat Nov 30 09:24:47 UTC 2024
tree: https://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue.git dev-queue
head: 4b8b07968dc902d751d23a775c1a02220db267c9
commit: 9f889e8ffb48536622852fbe2501dc8b75887239 [16/69] ice: dump ethtool stats and skb by Tx hang devlink health reporter
config: microblaze-randconfig-r072-20241124 (https://download.01.org/0day-ci/archive/20241124/202411242101.qlvmbfLB-lkp@intel.com/config)
compiler: microblaze-linux-gcc (GCC) 14.2.0
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 at intel.com>
| Reported-by: Dan Carpenter <dan.carpenter at linaro.org>
| Closes: https://lore.kernel.org/r/202411242101.qlvmbfLB-lkp@intel.com/
smatch warnings:
drivers/net/ethernet/intel/ice/devlink/health.c:95 ice_tx_hang_reporter_dump() warn: variable dereferenced before check 'event' (see line 93)
vim +/event +95 drivers/net/ethernet/intel/ice/devlink/health.c
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 86 static int ice_tx_hang_reporter_dump(struct devlink_health_reporter *reporter,
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 87 struct devlink_fmsg *fmsg, void *priv_ctx,
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 88 struct netlink_ext_ack *extack)
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 89 {
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 90 struct ice_tx_hang_event *event = priv_ctx;
9f889e8ffb4853 Przemek Kitszel 2024-09-30 91 struct sk_buff *skb;
9f889e8ffb4853 Przemek Kitszel 2024-09-30 92
9f889e8ffb4853 Przemek Kitszel 2024-09-30 @93 skb = event->tx_ring->tx_buf->skb;
^^^^^^^
Dereference
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 94
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 @95 if (!event)
^^^^^^
Too late
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 96 return 0;
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 97
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 98 devlink_fmsg_obj_nest_start(fmsg);
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 99 ICE_DEVLINK_FMSG_PUT_FIELD(fmsg, event, head);
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 100 ICE_DEVLINK_FMSG_PUT_FIELD(fmsg, event, intr);
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 101 ICE_DEVLINK_FMSG_PUT_FIELD(fmsg, event, vsi_num);
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 102 ICE_DEVLINK_FMSG_PUT_FIELD(fmsg, event, queue);
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 103 ICE_DEVLINK_FMSG_PUT_FIELD(fmsg, event, next_to_clean);
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 104 ICE_DEVLINK_FMSG_PUT_FIELD(fmsg, event, next_to_use);
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 105 devlink_fmsg_put(fmsg, "irq-mapping", event->tx_ring->q_vector->name);
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 106 ice_fmsg_put_ptr(fmsg, "desc-ptr", event->tx_ring->desc);
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 107 ice_fmsg_put_ptr(fmsg, "dma-ptr", (void *)(long)event->tx_ring->dma);
9f889e8ffb4853 Przemek Kitszel 2024-09-30 108 ice_fmsg_put_ptr(fmsg, "skb-ptr", skb);
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 109 devlink_fmsg_binary_pair_put(fmsg, "desc", event->tx_ring->desc,
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 110 event->tx_ring->count * sizeof(struct ice_tx_desc));
9f889e8ffb4853 Przemek Kitszel 2024-09-30 111 devlink_fmsg_dump_skb(fmsg, skb);
9f889e8ffb4853 Przemek Kitszel 2024-09-30 112 ice_dump_ethtool_stats_to_fmsg(fmsg, event->tx_ring->vsi->netdev);
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 113 devlink_fmsg_obj_nest_end(fmsg);
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 114
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 115 return 0;
f19878b2a2e6e4 Przemek Kitszel 2024-09-30 116 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the Intel-wired-lan
mailing list