a2fd4042ae
commit a8ee30f45d5d57467ddb7877ed6914d0eba0af7f upstream.
The `LockedBy::access` method only requires a shared reference to the
owner, so if we have shared access to the `LockedBy` from several
threads at once, then two threads could call `access` in parallel and
both obtain a shared reference to the inner value. Thus, require that
`T: Sync` when calling the `access` method.
An alternative is to require `T: Sync` in the `impl Sync for LockedBy`.
This patch does not choose that approach as it gives up the ability to
use `LockedBy` with `!Sync` types, which is okay as long as you only use
`access_mut`.
Cc: stable@vger.kernel.org
Fixes:
|
||
---|---|---|
.. | ||
alloc | ||
block | ||
init | ||
net | ||
sync | ||
alloc.rs | ||
block.rs | ||
build_assert.rs | ||
device.rs | ||
error.rs | ||
firmware.rs | ||
init.rs | ||
ioctl.rs | ||
kunit.rs | ||
lib.rs | ||
net.rs | ||
page.rs | ||
prelude.rs | ||
print.rs | ||
static_assert.rs | ||
std_vendor.rs | ||
str.rs | ||
sync.rs | ||
task.rs | ||
time.rs | ||
types.rs | ||
uaccess.rs | ||
workqueue.rs |