Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
Pull libnvdimm fixes from Dan Williams: - Fix a crash that occurs at driver initialization if the memory region is already busy (request_mem_region() fails). - Fix a vma validation check that mistakenly allows a private device- dax mapping to be established. Device-dax explicitly forbids private mappings so it can guarantee a given fault granularity and backing memory type. Both of these fixes have soaked in -next and are tagged for -stable. * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: device-dax: fail all private mapping attempts device-dax: check devm_nsio_enable() return value
This commit is contained in:
Коммит
30e2b7cfc5
|
@ -270,8 +270,8 @@ static int check_vma(struct dax_dev *dax_dev, struct vm_area_struct *vma,
|
||||||
if (!dax_dev->alive)
|
if (!dax_dev->alive)
|
||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
|
|
||||||
/* prevent private / writable mappings from being established */
|
/* prevent private mappings from being established */
|
||||||
if ((vma->vm_flags & (VM_NORESERVE|VM_SHARED|VM_WRITE)) == VM_WRITE) {
|
if ((vma->vm_flags & VM_SHARED) != VM_SHARED) {
|
||||||
dev_info(dev, "%s: %s: fail, attempted private mapping\n",
|
dev_info(dev, "%s: %s: fail, attempted private mapping\n",
|
||||||
current->comm, func);
|
current->comm, func);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
|
@ -78,7 +78,9 @@ static int dax_pmem_probe(struct device *dev)
|
||||||
nsio = to_nd_namespace_io(&ndns->dev);
|
nsio = to_nd_namespace_io(&ndns->dev);
|
||||||
|
|
||||||
/* parse the 'pfn' info block via ->rw_bytes */
|
/* parse the 'pfn' info block via ->rw_bytes */
|
||||||
devm_nsio_enable(dev, nsio);
|
rc = devm_nsio_enable(dev, nsio);
|
||||||
|
if (rc)
|
||||||
|
return rc;
|
||||||
altmap = nvdimm_setup_pfn(nd_pfn, &res, &__altmap);
|
altmap = nvdimm_setup_pfn(nd_pfn, &res, &__altmap);
|
||||||
if (IS_ERR(altmap))
|
if (IS_ERR(altmap))
|
||||||
return PTR_ERR(altmap);
|
return PTR_ERR(altmap);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче