diff options
author | 2022-02-22 12:17:38 +0800 | |
---|---|---|
committer | 2022-02-23 12:29:15 +0000 | |
commit | dc121c0084910db985cf1c8ba6fce5d8c307cc02 (patch) | |
tree | d9a2d56d1ded9a273b032beb317d36ea86ffb6f3 /drivers/net/ethernet/intel/ice | |
parent | Merge branch 'dsa-realtek-phy-read-corruption' (diff) | |
download | linux-dev-dc121c0084910db985cf1c8ba6fce5d8c307cc02.tar.xz linux-dev-dc121c0084910db985cf1c8ba6fce5d8c307cc02.zip |
mctp: make __mctp_dev_get() take a refcount hold
Previously there was a race that could allow the mctp_dev refcount
to hit zero:
rcu_read_lock();
mdev = __mctp_dev_get(dev);
// mctp_unregister() happens here, mdev->refs hits zero
mctp_dev_hold(dev);
rcu_read_unlock();
Now we make __mctp_dev_get() take the hold itself. It is safe to test
against the zero refcount because __mctp_dev_get() is called holding
rcu_read_lock and mctp_dev uses kfree_rcu().
Reported-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Matt Johnston <matt@codeconstruct.com.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/intel/ice')
0 files changed, 0 insertions, 0 deletions