diff options
author | 2012-01-03 20:36:48 -0800 | |
---|---|---|
committer | 2012-01-03 20:36:48 -0800 | |
commit | e214a0fe2b382fa302c036ecd6e6ffe99e3b9875 (patch) | |
tree | 6cfd92715630e3406521f700a3df3cf3295e7770 /tools/perf/scripts/python/syscall-counts.py | |
parent | Linux 3.2-rc7 (diff) | |
download | linux-dev-e214a0fe2b382fa302c036ecd6e6ffe99e3b9875.tar.xz linux-dev-e214a0fe2b382fa302c036ecd6e6ffe99e3b9875.zip |
IB/uverbs: Protect QP multicast list
Userspace verbs multicast attach/detach operations on a QP are done
while holding the rwsem of the QP for reading. That's not sufficient
since a reader lock allows more than one reader to acquire the
lock. However, multicast attach/detach does list manipulation that
can corrupt the list if multiple threads run in parallel.
Fix this by acquiring the rwsem as a writer to serialize attach/detach
operations. Add idr_write_qp() and put_qp_write() to encapsulate
this.
This fixes oops seen when running applications that perform multicast
joins/leaves.
Reported by: Mike Dubman <miked@mellanox.com>
Signed-off-by: Eli Cohen <eli@mellanox.com>
Cc: <stable@kernel.org>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'tools/perf/scripts/python/syscall-counts.py')
0 files changed, 0 insertions, 0 deletions