Automatically cleaned up pointers need to be initialized before exiting
their scope.  In this case, they need to be initialized to NULL before
any return statement.

Fixes: 90f821d72e11 ("ice: avoid unnecessary devm_ usage")
Signed-off-by: Dan Carpenter <[email protected]>
---
v2: I missed a couple pointers in v1.

The change to ice_update_link_info() isn't required because it's
assigned on the very next line...  But I did that because it's harmless
and makes __free() stuff easier to verify.  I felt like moving the
declarations into the code would be controversial and it also ends up
making the lines really long.

                goto goto err_unroll_sched;

        struct ice_aqc_get_phy_caps_data *pcaps __free(kfree) =
                kzalloc(sizeof(*pcaps), GFP_KERNEL);

 drivers/net/ethernet/intel/ice/ice_common.c | 10 +++++-----
 drivers/net/ethernet/intel/ice/ice_ethtool.c | 2 +-
 2 file changed, 6 insertion(+), 6 deletion(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_common.c 
b/drivers/net/ethernet/intel/ice/ice_common.c
index 4d8111aeb0ff..6f2db603b36e 100644
--- a/drivers/net/ethernet/intel/ice/ice_common.c
+++ b/drivers/net/ethernet/intel/ice/ice_common.c
@@ -1002,8 +1002,8 @@ static void ice_get_itr_intrl_gran(struct ice_hw *hw)
  */
 int ice_init_hw(struct ice_hw *hw)
 {
-       struct ice_aqc_get_phy_caps_data *pcaps __free(kfree);
-       void *mac_buf __free(kfree);
+       struct ice_aqc_get_phy_caps_data *pcaps __free(kfree) = NULL;
+       void *mac_buf __free(kfree) = NULL;
        u16 mac_buf_len;
        int status;
 
@@ -3272,7 +3272,7 @@ int ice_update_link_info(struct ice_port_info *pi)
                return status;
 
        if (li->link_info & ICE_AQ_MEDIA_AVAILABLE) {
-               struct ice_aqc_get_phy_caps_data *pcaps __free(kfree);
+               struct ice_aqc_get_phy_caps_data *pcaps __free(kfree) = NULL;
 
                pcaps = kzalloc(sizeof(*pcaps), GFP_KERNEL);
                if (!pcaps)
@@ -3420,7 +3420,7 @@ ice_cfg_phy_fc(struct ice_port_info *pi, struct 
ice_aqc_set_phy_cfg_data *cfg,
 int
 ice_set_fc(struct ice_port_info *pi, u8 *aq_failures, bool 
ena_auto_link_update)
 {
-       struct ice_aqc_get_phy_caps_data *pcaps __free(kfree);
+       struct ice_aqc_get_phy_caps_data *pcaps __free(kfree) = NULL;
        struct ice_aqc_set_phy_cfg_data cfg = { 0 };
        struct ice_hw *hw;
        int status;
@@ -3561,7 +3561,7 @@ int
 ice_cfg_phy_fec(struct ice_port_info *pi, struct ice_aqc_set_phy_cfg_data *cfg,
                enum ice_fec_mode fec)
 {
-       struct ice_aqc_get_phy_caps_data *pcaps __free(kfree);
+       struct ice_aqc_get_phy_caps_data *pcaps __free(kfree) = NULL;
        struct ice_hw *hw;
        int status;
 
diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c 
b/drivers/net/ethernet/intel/ice/ice_ethtool.c
index 255a9c8151b4..78b833b3e1d7 100644
--- a/drivers/net/ethernet/intel/ice/ice_ethtool.c
+++ 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");
-- 
2.43.0


Reply via email to