eth: fbnic: Replace kzalloc/fbnic_fw_init_cmpl with fbnic_fw_alloc_cmpl
authorLee Trager <lee@trager.us>
Fri, 16 May 2025 16:46:41 +0000 (09:46 -0700)
committerJakub Kicinski <kuba@kernel.org>
Wed, 21 May 2025 01:12:37 +0000 (18:12 -0700)
Replace the pattern of calling and validating kzalloc then
fbnic_fw_init_cmpl with a single function, fbnic_fw_alloc_cmpl.

Signed-off-by: Lee Trager <lee@trager.us>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/20250516164804.741348-1-lee@trager.us
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/meta/fbnic/fbnic_devlink.c
drivers/net/ethernet/meta/fbnic/fbnic_fw.c
drivers/net/ethernet/meta/fbnic/fbnic_fw.h
drivers/net/ethernet/meta/fbnic/fbnic_mac.c

index 71d9461a0d1b0f6e0864b49006542596a812bde2..4c4938eedd7bf9496a33fc19c60979d43548a542 100644 (file)
@@ -166,11 +166,10 @@ fbnic_flash_start(struct fbnic_dev *fbd, struct pldmfw_component *component)
        struct fbnic_fw_completion *cmpl;
        int err;
 
-       cmpl = kzalloc(sizeof(*cmpl), GFP_KERNEL);
+       cmpl = fbnic_fw_alloc_cmpl(FBNIC_TLV_MSG_ID_FW_START_UPGRADE_REQ);
        if (!cmpl)
                return -ENOMEM;
 
-       fbnic_fw_init_cmpl(cmpl, FBNIC_TLV_MSG_ID_FW_START_UPGRADE_REQ);
        err = fbnic_fw_xmit_fw_start_upgrade(fbd, cmpl,
                                             component->identifier,
                                             component->component_size);
@@ -237,11 +236,10 @@ fbnic_flash_component(struct pldmfw *context,
         * Setup completions for write before issuing the start message so
         * the driver can catch both messages.
         */
-       cmpl = kzalloc(sizeof(*cmpl), GFP_KERNEL);
+       cmpl = fbnic_fw_alloc_cmpl(FBNIC_TLV_MSG_ID_FW_WRITE_CHUNK_REQ);
        if (!cmpl)
                return -ENOMEM;
 
-       fbnic_fw_init_cmpl(cmpl, FBNIC_TLV_MSG_ID_FW_WRITE_CHUNK_REQ);
        err = fbnic_mbx_set_cmpl(fbd, cmpl);
        if (err)
                goto cmpl_free;
index 6a803a59dc25a0e67749e1bba175870af902cd89..e2368075ab8c60171b5b3f3d08d178005b59dc7d 100644 (file)
@@ -1232,12 +1232,19 @@ void fbnic_get_fw_ver_commit_str(struct fbnic_dev *fbd, char *fw_version,
                                 fw_version, str_sz);
 }
 
-void fbnic_fw_init_cmpl(struct fbnic_fw_completion *fw_cmpl,
-                       u32 msg_type)
+struct fbnic_fw_completion *fbnic_fw_alloc_cmpl(u32 msg_type)
 {
-       fw_cmpl->msg_type = msg_type;
-       init_completion(&fw_cmpl->done);
-       kref_init(&fw_cmpl->ref_count);
+       struct fbnic_fw_completion *cmpl;
+
+       cmpl = kzalloc(sizeof(*cmpl), GFP_KERNEL);
+       if (!cmpl)
+               return NULL;
+
+       cmpl->msg_type = msg_type;
+       init_completion(&cmpl->done);
+       kref_init(&cmpl->ref_count);
+
+       return cmpl;
 }
 
 void fbnic_fw_clear_cmpl(struct fbnic_dev *fbd,
index 6baac10fd68888a2a8d166cf43c4f09f53e016b6..08bc4b918de75ddf5f3b29b30f8c8331d2e252e1 100644 (file)
@@ -80,8 +80,7 @@ int fbnic_fw_xmit_fw_write_chunk(struct fbnic_dev *fbd,
                                 int cancel_error);
 int fbnic_fw_xmit_tsene_read_msg(struct fbnic_dev *fbd,
                                 struct fbnic_fw_completion *cmpl_data);
-void fbnic_fw_init_cmpl(struct fbnic_fw_completion *cmpl_data,
-                       u32 msg_type);
+struct fbnic_fw_completion *fbnic_fw_alloc_cmpl(u32 msg_type);
 void fbnic_fw_clear_cmpl(struct fbnic_dev *fbd,
                         struct fbnic_fw_completion *cmpl_data);
 void fbnic_fw_put_cmpl(struct fbnic_fw_completion *cmpl_data);
index 4ba6f8d107754b8f2f3646656ab3ab1480d77108..10e108c1fcd003564fc101453b73352d8ee2a60e 100644 (file)
@@ -687,13 +687,10 @@ static int fbnic_mac_get_sensor_asic(struct fbnic_dev *fbd, int id,
        int err = 0, retries = 5;
        s32 *sensor;
 
-       fw_cmpl = kzalloc(sizeof(*fw_cmpl), GFP_KERNEL);
+       fw_cmpl = fbnic_fw_alloc_cmpl(FBNIC_TLV_MSG_ID_TSENE_READ_RESP);
        if (!fw_cmpl)
                return -ENOMEM;
 
-       /* Initialize completion and queue it for FW to process */
-       fbnic_fw_init_cmpl(fw_cmpl, FBNIC_TLV_MSG_ID_TSENE_READ_RESP);
-
        switch (id) {
        case FBNIC_SENSOR_TEMP:
                sensor = &fw_cmpl->u.tsene.millidegrees;