]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ice: Fix freeing uninitialized pointers
authorDan Carpenter <dan.carpenter@linaro.org>
Thu, 21 Mar 2024 14:42:12 +0000 (17:42 +0300)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Wed, 3 Apr 2024 16:15:18 +0000 (09:15 -0700)
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 <dan.carpenter@linaro.org>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_common.c
drivers/net/ethernet/intel/ice/ice_ethtool.c

index db4b2844e1f71820494ffe30cb67d87e8af91edc..d9f6cc71d900aa4e91ebe2ca5878a3ea467a89a2 100644 (file)
@@ -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;
 
index 255a9c8151b451713e31a88ecbf9f57c10e2b411..78b833b3e1d7ef05fcb1b91ede0d526acc19d7fd 100644 (file)
@@ -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");