On Fri, Oct 09, 2020 at 09:59:31AM +0200, Daniel Vetter wrote:
+struct address_space *iomem_get_mapping(void) +{
- return iomem_inode->i_mapping;
This should pair an acquire with the release below
- /*
* Publish /dev/mem initialized.
* Pairs with smp_load_acquire() in revoke_iomem().
*/
- smp_store_release(&iomem_inode, inode);
However, this seems abnormal, initcalls rarely do this kind of stuff with global data..
The kernel crashes if this fs_initcall is raced with iomem_get_mapping() due to the unconditional dereference, so I think it can be safely switched to a simple assignment.
Jason