diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-07-27 12:42:15 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-07-27 12:42:15 +0200 |
commit | 908e757daecf2120c3019fa630ae5d4c3cd7165b (patch) | |
tree | 652b0f3ecd4a6d7c0066169d6ae466711300197c /drivers/char/mem.c | |
parent | staging: comedi: addi: Replace HTTP links with HTTPS ones (diff) | |
parent | Linux 5.8-rc7 (diff) | |
download | linux-dev-908e757daecf2120c3019fa630ae5d4c3cd7165b.tar.xz linux-dev-908e757daecf2120c3019fa630ae5d4c3cd7165b.zip |
Merge 5.8-rc7 into staging-next
We need the staging fixes in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/char/mem.c')
-rw-r--r-- | drivers/char/mem.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/char/mem.c b/drivers/char/mem.c index 934c92dcb9ab..687d4af6945d 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c @@ -814,7 +814,8 @@ static struct inode *devmem_inode; #ifdef CONFIG_IO_STRICT_DEVMEM void revoke_devmem(struct resource *res) { - struct inode *inode = READ_ONCE(devmem_inode); + /* pairs with smp_store_release() in devmem_init_inode() */ + struct inode *inode = smp_load_acquire(&devmem_inode); /* * Check that the initialization has completed. Losing the race @@ -1028,8 +1029,11 @@ static int devmem_init_inode(void) return rc; } - /* publish /dev/mem initialized */ - WRITE_ONCE(devmem_inode, inode); + /* + * Publish /dev/mem initialized. + * Pairs with smp_load_acquire() in revoke_devmem(). + */ + smp_store_release(&devmem_inode, inode); return 0; } |