scsi: cxlflash: Change return type for fault handler
authorSouptick Joarder <jrdr.linux@gmail.com>
Wed, 20 Jun 2018 18:25:07 +0000 (23:55 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 22 Jun 2018 02:57:39 +0000 (22:57 -0400)
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.

Ref-> commit 1c8f422059ae ("mm: change return type to vm_fault_t")

Previously, VM_FAULT_NOPAGE was returned without verifying return value of
vm_insert_pfn. The new inline vmf_insert_pfn() will address this issue by
returning correct VM_FAULT_* type from fault handler.

Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
Acked-by: Matthew R. Ochs <mrochs@linux.vnet.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/cxlflash/ocxl_hw.c
drivers/scsi/cxlflash/superpipe.c

index 0a95b5f253807888a8fa680397e5e344236d81d6..91178ff4d13b66defe37c6949827daa47054c1cd 100644 (file)
@@ -1158,7 +1158,7 @@ static int afu_release(struct inode *inode, struct file *file)
  *
  * Return: 0 on success, -errno on failure
  */
-static int ocxlflash_mmap_fault(struct vm_fault *vmf)
+static vm_fault_t ocxlflash_mmap_fault(struct vm_fault *vmf)
 {
        struct vm_area_struct *vma = vmf->vma;
        struct ocxlflash_context *ctx = vma->vm_file->private_data;
@@ -1181,8 +1181,7 @@ static int ocxlflash_mmap_fault(struct vm_fault *vmf)
        mmio_area = ctx->psn_phys;
        mmio_area += offset;
 
-       vm_insert_pfn(vma, vmf->address, mmio_area >> PAGE_SHIFT);
-       return VM_FAULT_NOPAGE;
+       return vmf_insert_pfn(vma, vmf->address, mmio_area >> PAGE_SHIFT);
 }
 
 static const struct vm_operations_struct ocxlflash_vmops = {
index e489d89cbb45ddfbf8fa107545d314e9a598ff56..eee193e2db9113430078ea55d5f134b1948a1171 100644 (file)
@@ -1108,7 +1108,7 @@ out:
  *
  * Return: 0 on success, VM_FAULT_SIGBUS on failure
  */
-static int cxlflash_mmap_fault(struct vm_fault *vmf)
+static vm_fault_t cxlflash_mmap_fault(struct vm_fault *vmf)
 {
        struct vm_area_struct *vma = vmf->vma;
        struct file *file = vma->vm_file;
@@ -1119,7 +1119,7 @@ static int cxlflash_mmap_fault(struct vm_fault *vmf)
        struct ctx_info *ctxi = NULL;
        struct page *err_page = NULL;
        enum ctx_ctrl ctrl = CTX_CTRL_ERR_FALLBACK | CTX_CTRL_FILE;
-       int rc = 0;
+       vm_fault_t rc = 0;
        int ctxid;
 
        ctxid = cfg->ops->process_element(ctx);
@@ -1159,7 +1159,7 @@ static int cxlflash_mmap_fault(struct vm_fault *vmf)
 out:
        if (likely(ctxi))
                put_context(ctxi);
-       dev_dbg(dev, "%s: returning rc=%d\n", __func__, rc);
+       dev_dbg(dev, "%s: returning rc=%x\n", __func__, rc);
        return rc;
 
 err: