summaryrefslogtreecommitdiffstats
path: root/drivers/regulator
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2022-04-23 12:07:49 +0200
committerCatalin Marinas <catalin.marinas@arm.com>2022-04-25 11:25:43 +0200
commitda32b5817253697671af961715517bfbb308a592 (patch)
tree561dd2cd02bda257eb1e50dfee2adb56b3545b43 /drivers/regulator
parentLinux 5.18-rc3 (diff)
downloadlinux-da32b5817253697671af961715517bfbb308a592.tar.xz
linux-da32b5817253697671af961715517bfbb308a592.zip
mm: Add fault_in_subpage_writeable() to probe at sub-page granularity
On hardware with features like arm64 MTE or SPARC ADI, an access fault can be triggered at sub-page granularity. Depending on how the fault_in_writeable() function is used, the caller can get into a live-lock by continuously retrying the fault-in on an address different from the one where the uaccess failed. In the majority of cases progress is ensured by the following conditions: 1. copy_to_user_nofault() guarantees at least one byte access if the user address is not faulting. 2. The fault_in_writeable() loop is resumed from the first address that could not be accessed by copy_to_user_nofault(). If the loop iteration is restarted from an earlier (initial) point, the loop is repeated with the same conditions and it would live-lock. Introduce an arch-specific probe_subpage_writeable() and call it from the newly added fault_in_subpage_writeable() function. The arch code with sub-page faults will have to implement the specific probing functionality. Note that no other fault_in_subpage_*() functions are added since they have no callers currently susceptible to a live-lock. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Cc: Andrew Morton <akpm@linux-foundation.org> Link: https://lore.kernel.org/r/20220423100751.1870771-2-catalin.marinas@arm.com Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'drivers/regulator')
0 files changed, 0 insertions, 0 deletions