Subject: Re: [RFC PATCH 2/8] memory-hotplug: offline memory only when it is onlined

From: Yasuaki Ishimatsu <[email-masked]>
Date: Fri, 20 Jul 2012 16:46:40 +0900

Hi Wen,

2012/07/20 16:10, Wen Congyang wrote:
> offline_memory() will fail if the memory is not onlined. So check
> whether the memory is onlined before calling offline_memory().
>
> CC: David Rientjes <[email-masked]>
> CC: Jiang Liu <[email-masked]>
> CC: Len Brown <[email-masked]>
> CC: Benjamin Herrenschmidt <[email-masked]>
> CC: Paul Mackerras <[email-masked]>
> CC: Christoph Lameter <[email-masked]>
> Cc: Minchan Kim <[email-masked]>
> CC: Andrew Morton <[email-masked]>
> CC: KOSAKI Motohiro <[email-masked]>
> CC: Yasuaki Ishimatsu <[email-masked]>
> Signed-off-by: Wen Congyang <[email-masked]>
> ---

I have no comment.
Reviewed-by: Yasuaki Ishimatsu <[email-masked]>

Thanks,
Yasuaki Ishimatsu

>   drivers/acpi/acpi_memhotplug.c |   10 +++++++---
>   1 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/acpi/acpi_memhotplug.c b/drivers/acpi/acpi_memhotplug.c
> index db8de39..712e767 100644
> --- a/drivers/acpi/acpi_memhotplug.c
> +++ b/drivers/acpi/acpi_memhotplug.c
> @@ -323,9 +323,13 @@ static int acpi_memory_disable_device(struct acpi_memory_device *mem_device)
>   	 */
>   	list_for_each_entry_safe(info, n, &mem_device->res_list, list) {
>   		if (info->enabled) {
> -			result = offline_memory(info->start_addr, info->length);
> -			if (result)
> -				return result;
> +			if (!is_memblk_offline(info->start_addr,
> +					       info->length)) {
> +				result = offline_memory(info->start_addr,
> +							info->length);
> +				if (result)
> +					return result;
> +			}
>   		}
>   		list_del(&info->list);
>   		kfree(info);
>