On Mon, Jun 17, 2024 at 05:05:43PM +0000, Jiaqi Yan wrote:
- Returns 0 on success
-EOPNOTSUPP for hwpoison_filter() filtered the error event
- Returns 0 on success,
-EOPNOTSUPP for hwpoison_filter() filtered the error event,
-EOPNOTSUPP if disabled by /proc/sys/vm/enable_soft_offline,
< 0 otherwise negated errno.
- Soft offline a page, by migration or invalidation,
@@ -2783,6 +2795,12 @@ int soft_offline_page(unsigned long pfn, int flags) return -EIO; }
- if (!sysctl_enable_soft_offline) {
pr_info("%#lx: OS-wide disabled\n", pfn);
put_ref_page(pfn, flags);
return -EOPNOTSUPP;
- }
We should not be doing anything if soft_offline is disabled, so this check should be placed upfront, at the very beginning of the function. Then you can remove the 'put_ref_page' call.