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.
 

-- 
Oscar Salvador
SUSE Labs

Reply via email to