diff mbox

[v2,1/6] arm64: ptdump: use static initializers for vmemmap region boundaries

Message ID 1461343688-8552-2-git-send-email-ard.biesheuvel@linaro.org
State Accepted
Commit c8f8cca483aa3ec1beb63ee8633de9c76bb3fe6f
Headers show

Commit Message

Ard Biesheuvel April 22, 2016, 4:48 p.m. UTC
There is no need to initialize the vmemmap region boundaries dynamically,
since they are compile time constants. So just add these constants to the
global struct initializer, and drop the dynamic assignment and related code.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

---
 arch/arm64/mm/dump.c | 49 ++++++--------------
 1 file changed, 13 insertions(+), 36 deletions(-)

-- 
2.7.4


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Comments

Mark Rutland April 22, 2016, 5:07 p.m. UTC | #1
On Fri, Apr 22, 2016 at 06:48:03PM +0200, Ard Biesheuvel wrote:
> There is no need to initialize the vmemmap region boundaries dynamically,

> since they are compile time constants. So just add these constants to the

> global struct initializer, and drop the dynamic assignment and related code.

> 

> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>


There is a slight change in that we now print the VA boundaries for the
reserved vmemmap range rather than the populated vmemmap range, but that
makes more sense to me anyway. It's nice to see the sepaarate indices
go.

It may be worth defining VMEMMAP_END in the same header file as
VMEMMAP_{START,SIZE}, but either way:

Acked-by: Mark Rutland <mark.rutland@arm.com>


Mark.

> ---

>  arch/arm64/mm/dump.c | 49 ++++++--------------

>  1 file changed, 13 insertions(+), 36 deletions(-)

> 

> diff --git a/arch/arm64/mm/dump.c b/arch/arm64/mm/dump.c

> index a21f47421b0c..493461159462 100644

> --- a/arch/arm64/mm/dump.c

> +++ b/arch/arm64/mm/dump.c

> @@ -32,37 +32,21 @@ struct addr_marker {

>  	const char *name;

>  };

>  

> -enum address_markers_idx {

> -	MODULES_START_NR = 0,

> -	MODULES_END_NR,

> -	VMALLOC_START_NR,

> -	VMALLOC_END_NR,

> -	FIXADDR_START_NR,

> -	FIXADDR_END_NR,

> -	PCI_START_NR,

> -	PCI_END_NR,

> +static const struct addr_marker address_markers[] = {

> +	{ MODULES_VADDR,		"Modules start" },

> +	{ MODULES_END,			"Modules end" },

> +	{ VMALLOC_START,		"vmalloc() Area" },

> +	{ VMALLOC_END,			"vmalloc() End" },

> +	{ FIXADDR_START,		"Fixmap start" },

> +	{ FIXADDR_TOP,			"Fixmap end" },

> +	{ PCI_IO_START,			"PCI I/O start" },

> +	{ PCI_IO_END,			"PCI I/O end" },

>  #ifdef CONFIG_SPARSEMEM_VMEMMAP

> -	VMEMMAP_START_NR,

> -	VMEMMAP_END_NR,

> +	{ VMEMMAP_START,		"vmemmap start" },

> +	{ VMEMMAP_START + VMEMMAP_SIZE,	"vmemmap end" },

>  #endif

> -	KERNEL_SPACE_NR,

> -};

> -

> -static struct addr_marker address_markers[] = {

> -	{ MODULES_VADDR,	"Modules start" },

> -	{ MODULES_END,		"Modules end" },

> -	{ VMALLOC_START,	"vmalloc() Area" },

> -	{ VMALLOC_END,		"vmalloc() End" },

> -	{ FIXADDR_START,	"Fixmap start" },

> -	{ FIXADDR_TOP,		"Fixmap end" },

> -	{ PCI_IO_START,		"PCI I/O start" },

> -	{ PCI_IO_END,		"PCI I/O end" },

> -#ifdef CONFIG_SPARSEMEM_VMEMMAP

> -	{ 0,			"vmemmap start" },

> -	{ 0,			"vmemmap end" },

> -#endif

> -	{ PAGE_OFFSET,		"Linear Mapping" },

> -	{ -1,			NULL },

> +	{ PAGE_OFFSET,			"Linear Mapping" },

> +	{ -1,				NULL },

>  };

>  

>  /*

> @@ -347,13 +331,6 @@ static int ptdump_init(void)

>  			for (j = 0; j < pg_level[i].num; j++)

>  				pg_level[i].mask |= pg_level[i].bits[j].mask;

>  

> -#ifdef CONFIG_SPARSEMEM_VMEMMAP

> -	address_markers[VMEMMAP_START_NR].start_address =

> -				(unsigned long)virt_to_page(PAGE_OFFSET);

> -	address_markers[VMEMMAP_END_NR].start_address =

> -				(unsigned long)virt_to_page(high_memory);

> -#endif

> -

>  	pe = debugfs_create_file("kernel_page_tables", 0400, NULL, NULL,

>  				 &ptdump_fops);

>  	return pe ? 0 : -ENOMEM;

> -- 

> 2.7.4

> 


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
diff mbox

Patch

diff --git a/arch/arm64/mm/dump.c b/arch/arm64/mm/dump.c
index a21f47421b0c..493461159462 100644
--- a/arch/arm64/mm/dump.c
+++ b/arch/arm64/mm/dump.c
@@ -32,37 +32,21 @@  struct addr_marker {
 	const char *name;
 };
 
-enum address_markers_idx {
-	MODULES_START_NR = 0,
-	MODULES_END_NR,
-	VMALLOC_START_NR,
-	VMALLOC_END_NR,
-	FIXADDR_START_NR,
-	FIXADDR_END_NR,
-	PCI_START_NR,
-	PCI_END_NR,
+static const struct addr_marker address_markers[] = {
+	{ MODULES_VADDR,		"Modules start" },
+	{ MODULES_END,			"Modules end" },
+	{ VMALLOC_START,		"vmalloc() Area" },
+	{ VMALLOC_END,			"vmalloc() End" },
+	{ FIXADDR_START,		"Fixmap start" },
+	{ FIXADDR_TOP,			"Fixmap end" },
+	{ PCI_IO_START,			"PCI I/O start" },
+	{ PCI_IO_END,			"PCI I/O end" },
 #ifdef CONFIG_SPARSEMEM_VMEMMAP
-	VMEMMAP_START_NR,
-	VMEMMAP_END_NR,
+	{ VMEMMAP_START,		"vmemmap start" },
+	{ VMEMMAP_START + VMEMMAP_SIZE,	"vmemmap end" },
 #endif
-	KERNEL_SPACE_NR,
-};
-
-static struct addr_marker address_markers[] = {
-	{ MODULES_VADDR,	"Modules start" },
-	{ MODULES_END,		"Modules end" },
-	{ VMALLOC_START,	"vmalloc() Area" },
-	{ VMALLOC_END,		"vmalloc() End" },
-	{ FIXADDR_START,	"Fixmap start" },
-	{ FIXADDR_TOP,		"Fixmap end" },
-	{ PCI_IO_START,		"PCI I/O start" },
-	{ PCI_IO_END,		"PCI I/O end" },
-#ifdef CONFIG_SPARSEMEM_VMEMMAP
-	{ 0,			"vmemmap start" },
-	{ 0,			"vmemmap end" },
-#endif
-	{ PAGE_OFFSET,		"Linear Mapping" },
-	{ -1,			NULL },
+	{ PAGE_OFFSET,			"Linear Mapping" },
+	{ -1,				NULL },
 };
 
 /*
@@ -347,13 +331,6 @@  static int ptdump_init(void)
 			for (j = 0; j < pg_level[i].num; j++)
 				pg_level[i].mask |= pg_level[i].bits[j].mask;
 
-#ifdef CONFIG_SPARSEMEM_VMEMMAP
-	address_markers[VMEMMAP_START_NR].start_address =
-				(unsigned long)virt_to_page(PAGE_OFFSET);
-	address_markers[VMEMMAP_END_NR].start_address =
-				(unsigned long)virt_to_page(high_memory);
-#endif
-
 	pe = debugfs_create_file("kernel_page_tables", 0400, NULL, NULL,
 				 &ptdump_fops);
 	return pe ? 0 : -ENOMEM;