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>
This commit is contained in:
Pushkar Jambhlekar 2017-04-11 09:12:25 -07:00 committed by Dan Williams
parent bfca9acf1a
commit 54eafcc9e3

View File

@ -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);