[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1759942.sv9bkvgJVs@vostro.rjw.lan>
Date: Wed, 28 Aug 2013 02:04:06 +0200
From: "Rafael J. Wysocki" <rjw@...k.pl>
To: Tang Chen <tangchen@...fujitsu.com>
Cc: lenb@...nel.org, tglx@...utronix.de, mingo@...e.hu, hpa@...or.com,
akpm@...ux-foundation.org, tj@...nel.org, trenn@...e.de,
yinghai@...nel.org, jiang.liu@...wei.com, wency@...fujitsu.com,
laijs@...fujitsu.com, isimatu.yasuaki@...fujitsu.com,
izumi.taku@...fujitsu.com, mgorman@...e.de, minchan@...nel.org,
mina86@...a86.com, gong.chen@...ux.intel.com,
vasilis.liaskovitis@...fitbricks.com, lwoodman@...hat.com,
riel@...hat.com, jweiner@...hat.com, prarit@...hat.com,
zhangyanfei@...fujitsu.com, x86@...nel.org,
linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-mm@...ck.org, linux-acpi@...r.kernel.org
Subject: Re: [PATCH 08/11] x86, acpi, memblock: Use __memblock_alloc_base() in acpi_initrd_override()
On Tuesday, August 27, 2013 05:37:45 PM Tang Chen wrote:
> The current acpi_initrd_override() calls memblock_find_in_range() to allocate
> memory, and pass 0 to %start, which will not limited by the current_limit_low.
>
> acpi_initrd_override()
> |->memblock_find_in_range(0, ...)
> |->memblock_find_in_range_node(0, ...)
>
> When we want to allocate memory from the end of kernel image to higher memory,
> we need to limit the lowest address to the end of kernel image.
>
> We have modified memblock_alloc_base_nid() to call memblock_find_in_range_node()
> with %start = MEMBLOCK_ALLOC_ACCESSIBLE, which means it will be limited by
> current_limit_low. And __memblock_alloc_base() calls memblock_alloc_base_nid().
>
> __memblock_alloc_base()
> |->memblock_alloc_base_nid()
> |->memblock_find_in_range_node(MEMBLOCK_ALLOC_ACCESSIBLE, ...)
>
> So use __memblock_alloc_base() to allocate memory in acpi_initrd_override().
>
> Signed-off-by: Tang Chen <tangchen@...fujitsu.com>
> Reviewed-by: Zhang Yanfei <zhangyanfei@...fujitsu.com>
Looks OK to me.
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
> ---
> drivers/acpi/osl.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> index fece767..1d68fc0 100644
> --- a/drivers/acpi/osl.c
> +++ b/drivers/acpi/osl.c
> @@ -629,8 +629,8 @@ void __init acpi_initrd_override(void *data, size_t size)
> return;
>
> /* under 4G at first, then above 4G */
> - acpi_tables_addr = memblock_find_in_range(0, (1ULL<<32) - 1,
> - all_tables_size, PAGE_SIZE);
> + acpi_tables_addr = __memblock_alloc_base(all_tables_size,
> + PAGE_SIZE, (1ULL<<32) - 1);
> if (!acpi_tables_addr) {
> WARN_ON(1);
> return;
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists