summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorPietro Borrello <borrello@diag.uniroma1.it>2023-02-07 18:26:34 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-02-14 19:11:48 +0100
commit1d52bbfd469af69fbcae88c67f160ce1b968e7f3 (patch)
tree66c8c21fbd9a3341e10f705dbc6867efaa75bbc2 /net
parentda32c2d9f64b959145e86f9f2afdf974ea351be3 (diff)
downloadlinux-stable-1d52bbfd469af69fbcae88c67f160ce1b968e7f3.tar.gz
linux-stable-1d52bbfd469af69fbcae88c67f160ce1b968e7f3.tar.bz2
linux-stable-1d52bbfd469af69fbcae88c67f160ce1b968e7f3.zip
rds: rds_rm_zerocopy_callback() use list_first_entry()
[ Upstream commit f753a68980cf4b59a80fe677619da2b1804f526d ] rds_rm_zerocopy_callback() uses list_entry() on the head of a list causing a type confusion. Use list_first_entry() to actually access the first element of the rs_zcookie_queue list. Fixes: 9426bbc6de99 ("rds: use list structure to track information for zerocopy completion notification") Reviewed-by: Willem de Bruijn <willemb@google.com> Signed-off-by: Pietro Borrello <borrello@diag.uniroma1.it> Link: https://lore.kernel.org/r/20230202-rds-zerocopy-v3-1-83b0df974f9a@diag.uniroma1.it Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'net')
-rw-r--r--net/rds/message.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/rds/message.c b/net/rds/message.c
index 44dbc612ef54..9402bc941823 100644
--- a/net/rds/message.c
+++ b/net/rds/message.c
@@ -104,9 +104,9 @@ static void rds_rm_zerocopy_callback(struct rds_sock *rs,
spin_lock_irqsave(&q->lock, flags);
head = &q->zcookie_head;
if (!list_empty(head)) {
- info = list_entry(head, struct rds_msg_zcopy_info,
- rs_zcookie_next);
- if (info && rds_zcookie_add(info, cookie)) {
+ info = list_first_entry(head, struct rds_msg_zcopy_info,
+ rs_zcookie_next);
+ if (rds_zcookie_add(info, cookie)) {
spin_unlock_irqrestore(&q->lock, flags);
kfree(rds_info_from_znotifier(znotif));
/* caller invokes rds_wake_sk_sleep() */