[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