2013-04-15 08:07:38

by Wang YanQing

[permalink] [raw]
Subject: [PATCH 2/3] x86:aperture_64: code pattern clean


This patch don't change code function,
it just do prepare for import the
memblock_alloc_in_range to do the code pattern
which looks like below in one function:

memblock_find_in_range()
follow by
memblock_reserve()

Signed-off-by: Wang YanQing <[email protected]>
---
arch/x86/kernel/aperture_64.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/aperture_64.c b/arch/x86/kernel/aperture_64.c
index d5fd66f..1523e75 100644
--- a/arch/x86/kernel/aperture_64.c
+++ b/arch/x86/kernel/aperture_64.c
@@ -85,9 +85,9 @@ static u32 __init allocate_aperture(void)
* memory. Unfortunately we cannot move it up because that would
* make the IOMMU useless.
*/
- addr = memblock_find_in_range(GART_MIN_ADDR, GART_MAX_ADDR,
+ addr = memblock_find_in_range(GART_MIN_ADDR, GART_MAX_ADDR - aper_size,
aper_size, aper_size);
- if (!addr || addr + aper_size > GART_MAX_ADDR) {
+ if (!addr) {
printk(KERN_ERR
"Cannot allocate aperture memory hole (%lx,%uK)\n",
addr, aper_size>>10);
--
1.7.12.4.dirty


2013-04-15 21:08:41

by Yinghai Lu

[permalink] [raw]
Subject: Re: [PATCH 2/3] x86:aperture_64: code pattern clean

On Mon, Apr 15, 2013 at 1:07 AM, Wang YanQing <[email protected]> wrote:
>
> This patch don't change code function,
> it just do prepare for import the
> memblock_alloc_in_range to do the code pattern
> which looks like below in one function:
>
> memblock_find_in_range()
> follow by
> memblock_reserve()
>
> Signed-off-by: Wang YanQing <[email protected]>
> ---
> arch/x86/kernel/aperture_64.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/kernel/aperture_64.c b/arch/x86/kernel/aperture_64.c
> index d5fd66f..1523e75 100644
> --- a/arch/x86/kernel/aperture_64.c
> +++ b/arch/x86/kernel/aperture_64.c
> @@ -85,9 +85,9 @@ static u32 __init allocate_aperture(void)
> * memory. Unfortunately we cannot move it up because that would
> * make the IOMMU useless.
> */
> - addr = memblock_find_in_range(GART_MIN_ADDR, GART_MAX_ADDR,
> + addr = memblock_find_in_range(GART_MIN_ADDR, GART_MAX_ADDR - aper_size,

this change is wrong.

> aper_size, aper_size);
> - if (!addr || addr + aper_size > GART_MAX_ADDR) {
> + if (!addr) {

could just drop not needed checking of
addr + aper_size > GART_MAX_ADDR


Thanks

Yinghai