Message ID | 20180417145354.GA31451@jordon-HP-15-Notebook-PC (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | misc: cxl: Change return type to vm_fault_t | expand |
On 18/04/18 00:53, Souptick Joarder wrote: > Use new return type vm_fault_t for fault handler. For > now, this is just documenting that the function returns > a VM_FAULT value rather than an errno. Once all instances > are converted, vm_fault_t will become a distinct type. > > Reference id -> 1c8f422059ae ("mm: change return type to > vm_fault_t") > > previously cxl_mmap_fault returns VM_FAULT_NOPAGE as > default value irrespective of vm_insert_pfn() return > value. This bug is fixed with new vmf_insert_pfn() > which will return VM_FAULT_ type based on err. > > Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> This looks good to me Acked-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Le 17/04/2018 à 16:53, Souptick Joarder a écrit : > Use new return type vm_fault_t for fault handler. For > now, this is just documenting that the function returns > a VM_FAULT value rather than an errno. Once all instances > are converted, vm_fault_t will become a distinct type. > > Reference id -> 1c8f422059ae ("mm: change return type to > vm_fault_t") > > previously cxl_mmap_fault returns VM_FAULT_NOPAGE as > default value irrespective of vm_insert_pfn() return > value. This bug is fixed with new vmf_insert_pfn() > which will return VM_FAULT_ type based on err. > > Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> > --- It looks ok, and it passed some basic testing. Acked-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com> Fred > drivers/misc/cxl/context.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/misc/cxl/context.c b/drivers/misc/cxl/context.c > index 7ff315a..c6ec872 100644 > --- a/drivers/misc/cxl/context.c > +++ b/drivers/misc/cxl/context.c > @@ -128,11 +128,12 @@ void cxl_context_set_mapping(struct cxl_context *ctx, > mutex_unlock(&ctx->mapping_lock); > } > > -static int cxl_mmap_fault(struct vm_fault *vmf) > +static vm_fault_t cxl_mmap_fault(struct vm_fault *vmf) > { > struct vm_area_struct *vma = vmf->vma; > struct cxl_context *ctx = vma->vm_file->private_data; > u64 area, offset; > + vm_fault_t ret; > > offset = vmf->pgoff << PAGE_SHIFT; > > @@ -169,11 +170,11 @@ static int cxl_mmap_fault(struct vm_fault *vmf) > return VM_FAULT_SIGBUS; > } > > - vm_insert_pfn(vma, vmf->address, (area + offset) >> PAGE_SHIFT); > + ret = vmf_insert_pfn(vma, vmf->address, (area + offset) >> PAGE_SHIFT); > > mutex_unlock(&ctx->status_mutex); > > - return VM_FAULT_NOPAGE; > + return ret; > } > > static const struct vm_operations_struct cxl_mmap_vmops = { > -- > 1.9.1 >
diff --git a/drivers/misc/cxl/context.c b/drivers/misc/cxl/context.c index 7ff315a..c6ec872 100644 --- a/drivers/misc/cxl/context.c +++ b/drivers/misc/cxl/context.c @@ -128,11 +128,12 @@ void cxl_context_set_mapping(struct cxl_context *ctx, mutex_unlock(&ctx->mapping_lock); } -static int cxl_mmap_fault(struct vm_fault *vmf) +static vm_fault_t cxl_mmap_fault(struct vm_fault *vmf) { struct vm_area_struct *vma = vmf->vma; struct cxl_context *ctx = vma->vm_file->private_data; u64 area, offset; + vm_fault_t ret; offset = vmf->pgoff << PAGE_SHIFT; @@ -169,11 +170,11 @@ static int cxl_mmap_fault(struct vm_fault *vmf) return VM_FAULT_SIGBUS; } - vm_insert_pfn(vma, vmf->address, (area + offset) >> PAGE_SHIFT); + ret = vmf_insert_pfn(vma, vmf->address, (area + offset) >> PAGE_SHIFT); mutex_unlock(&ctx->status_mutex); - return VM_FAULT_NOPAGE; + return ret; } static const struct vm_operations_struct cxl_mmap_vmops = {
Use new return type vm_fault_t for fault handler. For now, this is just documenting that the function returns a VM_FAULT value rather than an errno. Once all instances are converted, vm_fault_t will become a distinct type. Reference id -> 1c8f422059ae ("mm: change return type to vm_fault_t") previously cxl_mmap_fault returns VM_FAULT_NOPAGE as default value irrespective of vm_insert_pfn() return value. This bug is fixed with new vmf_insert_pfn() which will return VM_FAULT_ type based on err. Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> --- drivers/misc/cxl/context.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) -- 1.9.1