diff options
author | Prabhakar Kushwaha <pkushwaha@marvell.com> | 2021-07-13 11:31:56 +0200 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2021-07-13 11:34:24 +0200 |
commit | 8b43ced64d2baca72a13caf2a7182f2853e054bd (patch) | |
tree | 31e2f7b0db1760bf36a0a90f3af6d502745dea85 /drivers/nvme/host/pci.c | |
parent | a731763fc479a9c64456e0643d0ccf64203100c9 (diff) | |
download | lwn-8b43ced64d2baca72a13caf2a7182f2853e054bd.tar.gz lwn-8b43ced64d2baca72a13caf2a7182f2853e054bd.zip |
nvme-tcp: use __dev_get_by_name instead dev_get_by_name for OPT_HOST_IFACE
dev_get_by_name() finds network device by name but it also increases the
reference count.
If a nvme-tcp queue is present and the network device driver is removed
before nvme_tcp, we will face the following continuous log:
"kernel:unregister_netdevice: waiting for <eth> to become free. Usage count = 2"
And rmmod further halts. Similar case arises during reboot/shutdown
with nvme-tcp queue present and both never completes.
To fix this, use __dev_get_by_name() which finds network device by
name without increasing any reference counter.
Fixes: 3ede8f72a9a2 ("nvme-tcp: allow selecting the network interface for connections")
Signed-off-by: Omkar Kulkarni <okulkarni@marvell.com>
Signed-off-by: Shai Malin <smalin@marvell.com>
Signed-off-by: Prabhakar Kushwaha <pkushwaha@marvell.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
[hch: remove the ->ndev member entirely]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers/nvme/host/pci.c')
0 files changed, 0 insertions, 0 deletions