Commit fa919a30 authored by Lee Trager's avatar Lee Trager Committed by Jakub Kicinski
Browse files

eth: fbnic: Replace kzalloc/fbnic_fw_init_cmpl with fbnic_fw_alloc_cmpl



Replace the pattern of calling and validating kzalloc then
fbnic_fw_init_cmpl with a single function, fbnic_fw_alloc_cmpl.

Signed-off-by: default avatarLee Trager <lee@trager.us>
Reviewed-by: default avatarJacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/20250516164804.741348-1-lee@trager.us


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent d65a74d6
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -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;
+12 −5
Original line number Diff line number Diff line
@@ -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,
+1 −2
Original line number Diff line number Diff line
@@ -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);
+1 −4
Original line number Diff line number Diff line
@@ -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;