From: sashiko-bot@kernel.org
To: lirongqing <lirongqing@baidu.com>
Cc: linux-rdma@vger.kernel.org
Subject: Re: [PATCH] RDMA/core: Fix swapped list_add_tail() arguments in ib_add_sub_device()
Date: Wed, 16 Sep 2026 06:54:21 +0000 [thread overview]
Message-ID: <20260916065422.69EC01F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260916064435.2180-1-lirongqing@baidu.com>
> From: Li RongQing <lirongqing@baidu.com>
>
> ib_add_sub_device() links a new sub-device into its parent's sub-device
> list with:
>
> list_add_tail(&parent->subdev_list_head, &sub->subdev_list);
>
> list_add_tail(new, head) expects the node to insert as the first
> argument and the list head as the second, so the call above does the
> opposite of what was intended: it treats the parent's list head as the
> new node and the sub-device's node as the list head.
>
> Because _ib_alloc_device() initialises subdev_list to a self-referencing
> empty head, the misplaced insertion does not crash, but it corrupts the
> parent->subdev_list_head list. After adding two or more sub-devices,
> only the last one is reachable through the parent's head, and
> ib_del_sub_device_and_put()'s list_del() on &sub->subdev_list rewrites
> the head pointers, potentially severing earlier sub-devices from the
> chain. During parent teardown, the reverse iteration over
> subdev_list_head then skips the orphaned sub-devices, so their
> del_sub_dev() callbacks are never invoked and ib_device_put() on the
> parent is never paired, leaking both the HW sub-devices and a refcount.
>
> Swap the arguments to match the documented intent: insert the
> sub-device node into the parent's list head.
>
> Fixes: bca51197620a ("RDMA/core: Support IB sub device with type "SMI"")
> Signed-off-by: Li RongQing <lirongqing@baidu.com>
Sashiko has reviewed this patch and found no issues. It looks great!
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260916064435.2180-1-lirongqing@baidu.com?part=1
next prev parent reply other threads:[~2026-09-16 6:54 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-16 6:44 [PATCH] RDMA/core: Fix swapped list_add_tail() arguments in ib_add_sub_device() lirongqing
2026-09-16 6:54 ` sashiko-bot [this message]
2026-09-18 12:49 ` Leon Romanovsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260916065422.69EC01F000FF@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=lirongqing@baidu.com \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.