summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorNaoya Horiguchi <naoya.horiguchi@nec.com>2021-06-29 04:43:17 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2021-06-29 19:53:56 +0200
commit0ed950d1f28142ccd9a9453c60df87853530d778 (patch)
tree9eefd32cb6519948f8ad8da0d6ed8e4d7ef464bd /kernel
parentmm,hwpoison: send SIGBUS with error virutal address (diff)
downloadlinux-0ed950d1f28142ccd9a9453c60df87853530d778.tar.xz
linux-0ed950d1f28142ccd9a9453c60df87853530d778.zip
mm,hwpoison: make get_hwpoison_page() call get_any_page()
__get_hwpoison_page() could fail to grab refcount by some race condition, so it's helpful if we can handle it by retrying. We already have retry logic, so make get_hwpoison_page() call get_any_page() when called from memory_failure(). As a result, get_hwpoison_page() can return negative values (i.e. error code), so some callers are also changed to handle error cases. soft_offline_page() does nothing for -EBUSY because that's enough and users in userspace can easily handle it. unpoison_memory() is also unchanged because it's broken and need thorough fixes (will be done later). Link: https://lkml.kernel.org/r/20210603233632.2964832-3-nao.horiguchi@gmail.com Signed-off-by: Naoya Horiguchi <naoya.horiguchi@nec.com> Cc: Oscar Salvador <osalvador@suse.de> Cc: Muchun Song <songmuchun@bytedance.com> Cc: Mike Kravetz <mike.kravetz@oracle.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Tony Luck <tony.luck@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions