Commit 732b33d0 authored by Harshvardhan Jha's avatar Harshvardhan Jha Committed by Dominique Martinet
Browse files

9p/xen: Fix end of loop tests for list_for_each_entry

This patch addresses the following problems:
 - priv can never be NULL, so this part of the check is useless
 - if the loop ran through the whole list, priv->client is invalid and
it is more appropriate and sufficient to check for the end of
list_for_each_entry loop condition.

Link: http://lkml.kernel.org/r/20210727000709.225032-1-harshvardhan.jha@oracle.com


Signed-off-by: default avatarHarshvardhan Jha <harshvardhan.jha@oracle.com>
Reviewed-by: default avatarStefano Stabellini <sstabellini@kernel.org>
Tested-by: default avatarStefano Stabellini <sstabellini@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarDominique Martinet <asmadeus@codewreck.org>
parent f997ea3b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -138,7 +138,7 @@ static bool p9_xen_write_todo(struct xen_9pfs_dataring *ring, RING_IDX size)

static int p9_xen_request(struct p9_client *client, struct p9_req_t *p9_req)
{
	struct xen_9pfs_front_priv *priv = NULL;
	struct xen_9pfs_front_priv *priv;
	RING_IDX cons, prod, masked_cons, masked_prod;
	unsigned long flags;
	u32 size = p9_req->tc.size;
@@ -151,7 +151,7 @@ static int p9_xen_request(struct p9_client *client, struct p9_req_t *p9_req)
			break;
	}
	read_unlock(&xen_9pfs_lock);
	if (!priv || priv->client != client)
	if (list_entry_is_head(priv, &xen_9pfs_devs, list))
		return -EINVAL;

	num = p9_req->tc.tag % priv->num_rings;