diff options
author | Pushkar Jambhlekar <pushkar.iit@gmail.com> | 2017-04-11 09:12:25 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2017-04-12 21:59:13 -0700 |
commit | 54eafcc9e339affb8982fd21e1fc4aa4a036655b (patch) | |
tree | 07a660bb3a05894e2f44988f836d25509397c3fc | |
parent | bfca9acf1a5df0ff98fbf47e363adb48612bb7ec (diff) | |
download | linux-54eafcc9e339affb8982fd21e1fc4aa4a036655b.tar.gz linux-54eafcc9e339affb8982fd21e1fc4aa4a036655b.tar.bz2 linux-54eafcc9e339affb8982fd21e1fc4aa4a036655b.zip |
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>
-rw-r--r-- | drivers/dax/dax.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/dax/dax.c b/drivers/dax/dax.c index 19795eb35579..94036d92ed16 100644 --- a/drivers/dax/dax.c +++ b/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); |