Browse Source

device-dax: fix dax_dev_huge_fault() unknown fault size handling

The default case for dax_dev_huge_fault() fault size handling mistakenly
returns when it should unlock. This is not a problem in practice since
the only three possible fault sizes are handled. Going forward, if the
core mm adds a new fault size beyond pte, pmd, or pud device-dax should
abort VM_FAULT_SIGBUS requests not VM_FAULT_FALLBACK since device-dax
guarantees a configured fault granularity for all faults.

Signed-off-by: Pushkar Jambhlekar <pushkar.iit@gmail.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Pushkar Jambhlekar 8 years ago
parent
commit
54eafcc9e3
1 changed files with 1 additions and 1 deletions
  1. 1 1
      drivers/dax/dax.c

+ 1 - 1
drivers/dax/dax.c

@@ -591,7 +591,7 @@ static int dax_dev_huge_fault(struct vm_fault *vmf,
 		rc = __dax_dev_pud_fault(dax_dev, vmf);
 		break;
 	default:
-		return VM_FAULT_FALLBACK;
+		rc = VM_FAULT_SIGBUS;
 	}
 	srcu_read_unlock(&dax_srcu, id);