On Thu, Mar 21, 2024 at 06:59:00PM +0100, Markus Elfring wrote: … > > +++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c > > @@ -941,11 +941,11 @@ static u64 ice_loopback_test(struct net_device *netdev) > > struct ice_netdev_priv *np = netdev_priv(netdev); > > struct ice_vsi *orig_vsi = np->vsi, *test_vsi; > > struct ice_pf *pf = orig_vsi->back; > > + u8 *tx_frame __free(kfree) = NULL; > > u8 broadcast[ETH_ALEN], ret = 0; > > int num_frames, valid_frames; > > struct ice_tx_ring *tx_ring; > > struct ice_rx_ring *rx_ring; > > - u8 *tx_frame __free(kfree); > > int i; > > > > netdev_info(netdev, "loopback test\n"); > > How do you think about to reduce the scope for the affected local variable instead > with the help of a small script (like the following) for the semantic patch language? > > @movement@ > attribute name __free; > @@ > -u8 *tx_frame __free(kfree); > int i; > ... when any > if (ice_fltr_add_mac(test_vsi, ...)) > { ... } > + > +{ > +u8 *tx_frame __free(kfree) = NULL; > if (ice_lbtest_create_frame(pf, &tx_frame, ...)) > { ... } > ... when any > +} > + > valid_frames = ice_lbtest_receive_frames(...); I believe you don't understand what the scope of the above can be. -- With Best Regards, Andy Shevchenko