Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 10499986 authored by Mustafa Ismail's avatar Mustafa Ismail Committed by Jason Gunthorpe
Browse files

i40iw: Do not free sqbuf when event is I40IW_TIMER_TYPE_CLOSE



When the event type is I40IW_TIMER_TYPE_CLOSE, there is no sqbuf and
it should not be freed as one in i40iw_schedule_cm_timer().

Fixes: f27b4746 ("i40iw: add connection management code")
Signed-off-by: default avatarMustafa Ismail <mustafa.ismail@intel.com>
Signed-off-by: default avatarShiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
parent 100d6de2
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1043,7 +1043,7 @@ static int i40iw_parse_mpa(struct i40iw_cm_node *cm_node, u8 *buffer, u32 *type,
 * i40iw_schedule_cm_timer
 * @@cm_node: connection's node
 * @sqbuf: buffer to send
 * @type: if it es send ot close
 * @type: if it is send or close
 * @send_retrans: if rexmits to be done
 * @close_when_complete: is cm_node to be removed
 *
@@ -1067,6 +1067,7 @@ int i40iw_schedule_cm_timer(struct i40iw_cm_node *cm_node,

	new_send = kzalloc(sizeof(*new_send), GFP_ATOMIC);
	if (!new_send) {
		if (type != I40IW_TIMER_TYPE_CLOSE)
			i40iw_free_sqbuf(vsi, (void *)sqbuf);
		return -ENOMEM;
	}
@@ -1082,7 +1083,6 @@ int i40iw_schedule_cm_timer(struct i40iw_cm_node *cm_node,
		new_send->timetosend += (HZ / 10);
		if (cm_node->close_entry) {
			kfree(new_send);
			i40iw_free_sqbuf(vsi, (void *)sqbuf);
			i40iw_pr_err("already close entry\n");
			return -EINVAL;
		}