Re: [PATCH v20 1/5] arm64: Use insert_resource() to simplify code

2022-02-07 Thread Baoquan He
On 01/24/22 at 04:47pm, Zhen Lei wrote:
> insert_resource() traverses the subtree layer by layer from the root node
> until a proper location is found. Compared with request_resource(), the
> parent node does not need to be determined in advance.
> 
> In addition, move the insertion of node 'crashk_res' into function
> reserve_crashkernel() to make the associated code close together.

This is nice cleanup.

Acked-by: Baoquan He 

> 
> Signed-off-by: Zhen Lei 
> ---
>  arch/arm64/kernel/setup.c | 17 +++--
>  arch/arm64/mm/init.c  |  1 +
>  2 files changed, 4 insertions(+), 14 deletions(-)
> 
> diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
> index f70573928f1bff0..a81efcc359e4e78 100644
> --- a/arch/arm64/kernel/setup.c
> +++ b/arch/arm64/kernel/setup.c
> @@ -225,6 +225,8 @@ static void __init request_standard_resources(void)
>   kernel_code.end = __pa_symbol(__init_begin - 1);
>   kernel_data.start   = __pa_symbol(_sdata);
>   kernel_data.end = __pa_symbol(_end - 1);
> + insert_resource(&iomem_resource, &kernel_code);
> + insert_resource(&iomem_resource, &kernel_data);
>  
>   num_standard_resources = memblock.memory.cnt;
>   res_size = num_standard_resources * sizeof(*standard_resources);
> @@ -246,20 +248,7 @@ static void __init request_standard_resources(void)
>   res->end = 
> __pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1;
>   }
>  
> - request_resource(&iomem_resource, res);
> -
> - if (kernel_code.start >= res->start &&
> - kernel_code.end <= res->end)
> - request_resource(res, &kernel_code);
> - if (kernel_data.start >= res->start &&
> - kernel_data.end <= res->end)
> - request_resource(res, &kernel_data);
> -#ifdef CONFIG_KEXEC_CORE
> - /* Userspace will find "Crash kernel" region in /proc/iomem. */
> - if (crashk_res.end && crashk_res.start >= res->start &&
> - crashk_res.end <= res->end)
> - request_resource(res, &crashk_res);
> -#endif
> + insert_resource(&iomem_resource, res);
>   }
>  }
>  
> diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
> index db63cc885771a52..90f276d46b93bc6 100644
> --- a/arch/arm64/mm/init.c
> +++ b/arch/arm64/mm/init.c
> @@ -109,6 +109,7 @@ static void __init reserve_crashkernel(void)
>   kmemleak_ignore_phys(crash_base);
>   crashk_res.start = crash_base;
>   crashk_res.end = crash_base + crash_size - 1;
> + insert_resource(&iomem_resource, &crashk_res);
>  }
>  #else
>  static void __init reserve_crashkernel(void)
> -- 
> 2.25.1
> 


___
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec


Re: [PATCH v20 1/5] arm64: Use insert_resource() to simplify code

2022-01-26 Thread john . p . donnelly

On 1/24/22 2:47 AM, Zhen Lei wrote:

insert_resource() traverses the subtree layer by layer from the root node
until a proper location is found. Compared with request_resource(), the
parent node does not need to be determined in advance.

In addition, move the insertion of node 'crashk_res' into function
reserve_crashkernel() to make the associated code close together.

Signed-off-by: Zhen Lei 



Acked-by: John Donnelly  


---
  arch/arm64/kernel/setup.c | 17 +++--
  arch/arm64/mm/init.c  |  1 +
  2 files changed, 4 insertions(+), 14 deletions(-)

diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index f70573928f1bff0..a81efcc359e4e78 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -225,6 +225,8 @@ static void __init request_standard_resources(void)
kernel_code.end = __pa_symbol(__init_begin - 1);
kernel_data.start   = __pa_symbol(_sdata);
kernel_data.end = __pa_symbol(_end - 1);
+   insert_resource(&iomem_resource, &kernel_code);
+   insert_resource(&iomem_resource, &kernel_data);
  
  	num_standard_resources = memblock.memory.cnt;

res_size = num_standard_resources * sizeof(*standard_resources);
@@ -246,20 +248,7 @@ static void __init request_standard_resources(void)
res->end = 
__pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1;
}
  
-		request_resource(&iomem_resource, res);

-
-   if (kernel_code.start >= res->start &&
-   kernel_code.end <= res->end)
-   request_resource(res, &kernel_code);
-   if (kernel_data.start >= res->start &&
-   kernel_data.end <= res->end)
-   request_resource(res, &kernel_data);
-#ifdef CONFIG_KEXEC_CORE
-   /* Userspace will find "Crash kernel" region in /proc/iomem. */
-   if (crashk_res.end && crashk_res.start >= res->start &&
-   crashk_res.end <= res->end)
-   request_resource(res, &crashk_res);
-#endif
+   insert_resource(&iomem_resource, res);
}
  }
  
diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c

index db63cc885771a52..90f276d46b93bc6 100644
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -109,6 +109,7 @@ static void __init reserve_crashkernel(void)
kmemleak_ignore_phys(crash_base);
crashk_res.start = crash_base;
crashk_res.end = crash_base + crash_size - 1;
+   insert_resource(&iomem_resource, &crashk_res);
  }
  #else
  static void __init reserve_crashkernel(void)



___
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec


[PATCH v20 1/5] arm64: Use insert_resource() to simplify code

2022-01-24 Thread Zhen Lei
insert_resource() traverses the subtree layer by layer from the root node
until a proper location is found. Compared with request_resource(), the
parent node does not need to be determined in advance.

In addition, move the insertion of node 'crashk_res' into function
reserve_crashkernel() to make the associated code close together.

Signed-off-by: Zhen Lei 
---
 arch/arm64/kernel/setup.c | 17 +++--
 arch/arm64/mm/init.c  |  1 +
 2 files changed, 4 insertions(+), 14 deletions(-)

diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index f70573928f1bff0..a81efcc359e4e78 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -225,6 +225,8 @@ static void __init request_standard_resources(void)
kernel_code.end = __pa_symbol(__init_begin - 1);
kernel_data.start   = __pa_symbol(_sdata);
kernel_data.end = __pa_symbol(_end - 1);
+   insert_resource(&iomem_resource, &kernel_code);
+   insert_resource(&iomem_resource, &kernel_data);
 
num_standard_resources = memblock.memory.cnt;
res_size = num_standard_resources * sizeof(*standard_resources);
@@ -246,20 +248,7 @@ static void __init request_standard_resources(void)
res->end = 
__pfn_to_phys(memblock_region_memory_end_pfn(region)) - 1;
}
 
-   request_resource(&iomem_resource, res);
-
-   if (kernel_code.start >= res->start &&
-   kernel_code.end <= res->end)
-   request_resource(res, &kernel_code);
-   if (kernel_data.start >= res->start &&
-   kernel_data.end <= res->end)
-   request_resource(res, &kernel_data);
-#ifdef CONFIG_KEXEC_CORE
-   /* Userspace will find "Crash kernel" region in /proc/iomem. */
-   if (crashk_res.end && crashk_res.start >= res->start &&
-   crashk_res.end <= res->end)
-   request_resource(res, &crashk_res);
-#endif
+   insert_resource(&iomem_resource, res);
}
 }
 
diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
index db63cc885771a52..90f276d46b93bc6 100644
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -109,6 +109,7 @@ static void __init reserve_crashkernel(void)
kmemleak_ignore_phys(crash_base);
crashk_res.start = crash_base;
crashk_res.end = crash_base + crash_size - 1;
+   insert_resource(&iomem_resource, &crashk_res);
 }
 #else
 static void __init reserve_crashkernel(void)
-- 
2.25.1


___
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec