4.8-stable review patch. If anyone has any objections, please let me know.
------------------ From: Dan Williams <dan.j.willi...@intel.com> commit 325896ffdf90f7cbd59fb873b7ba20d60d1ddf3c upstream. Hugh notes in response to commit 4cb19355ea19 "device-dax: fail all private mapping attempts": "I think that is more restrictive than you intended: haven't tried, but I believe it rejects a PROT_READ, MAP_SHARED, O_RDONLY fd mmap, leaving no way to mmap /dev/dax without write permission to it." Indeed it does restrict read-only mappings, switch to checking VM_MAYSHARE, not VM_SHARED. Cc: Dave Hansen <dave.han...@linux.intel.com> Cc: Pawel Lebioda <pawel.lebi...@intel.com> Fixes: 4cb19355ea19 ("device-dax: fail all private mapping attempts") Reported-by: Hugh Dickins <hu...@google.com> Signed-off-by: Dan Williams <dan.j.willi...@intel.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> --- drivers/dax/dax.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/drivers/dax/dax.c +++ b/drivers/dax/dax.c @@ -324,7 +324,7 @@ static int check_vma(struct dax_dev *dax return -ENXIO; /* prevent private mappings from being established */ - if ((vma->vm_flags & VM_SHARED) != VM_SHARED) { + if ((vma->vm_flags & VM_MAYSHARE) != VM_MAYSHARE) { dev_info(dev, "%s: %s: fail, attempted private mapping\n", current->comm, func); return -EINVAL;