diff options
| author | Rongzheng Wang <testwrzwrz@gmail.com> | 2026-10-24 03:18:51 +0800 |
|---|---|---|
| committer | Keith Busch <kbusch@kernel.org> | 2026-10-28 08:11:22 -0700 |
| commit | 60385038754ed9fb05dab127b35f88c702252505 (patch) | |
| tree | 88ebb753cbc86034ab309053e4cb18cf41cff1fe /tools/lib/python/kdoc/python_version.py | |
| parent | cead6beb89256ae7145b65fbe8e8a5fedba4a47c (diff) | |
nvmet: use the enabled transport when disabling a port
nvmet_disable_port() looks up the transport from the current
disc_addr.trtype, while nvmet_enable_port() records the transport in
port->tr_ops. If trtype is changed while a port is being enabled, the
port can be removed through a different transport, passing the private
data of the original transport to the wrong ->remove_port().
The same mismatch is reachable with loop and RDMA: loop add_port()
leaves port->priv NULL, and RDMA remove_port() dereferences it.
Use port->tr_ops for removal and serialize trtype changes with
nvmet_config_sem in nvmet_addr_trtype_store(), so the transport that
added the port is also the one that removes it.
Fixes: 8f000cac6e7a ("nvmet-rdma: add a NVMe over Fabrics RDMA target driver")
Reported-by: syzbot+c98b21427617af7f547a@syzkaller.appspotmail.com
Link: https://syzkaller.appspot.com/bug?extid=c98b21427617af7f547a
Link: https://lore.kernel.org/all/6acbc835.a150a118.27e199.003c.GAE@google.com/T/
Signed-off-by: Rongzheng Wang <testwrzwrz@gmail.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc/python_version.py')
0 files changed, 0 insertions, 0 deletions
