Commit 8467d8b2 authored by Thorsten Blum's avatar Thorsten Blum Committed by Andreas Larsson
Browse files

sparc: Replace one-element array with flexible array member

Replace the deprecated one-element array with a modern flexible array
member in the struct hvtramp_descr.

Additionally, 15 unnecessary bytes were allocated for hdesc, but instead
of fixing the parentheses in the open-coded version, use struct_size()
to calculate the correct number of bytes.

Link: https://github.com/KSPP/linux/issues/79


Signed-off-by: default avatarThorsten Blum <thorsten.blum@linux.dev>
Fixes: 64658743 ("[SPARC64]: Remove most limitations to kernel image size.")
Reviewed-by: default avatarAndreas Larsson <andreas@gaisler.com>
Link: https://lore.kernel.org/r/20241111204724.165263-2-thorsten.blum@linux.dev


Signed-off-by: default avatarAndreas Larsson <andreas@gaisler.com>
parent f6dee26d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@ struct hvtramp_descr {
	__u64			fault_info_va;
	__u64			fault_info_pa;
	__u64			thread_reg;
	struct hvtramp_mapping	maps[1];
	struct hvtramp_mapping	maps[];
};

void hv_cpu_startup(unsigned long hvdescr_pa);
+1 −3
Original line number Diff line number Diff line
@@ -297,9 +297,7 @@ static void ldom_startcpu_cpuid(unsigned int cpu, unsigned long thread_reg,
	unsigned long hv_err;
	int i;

	hdesc = kzalloc(sizeof(*hdesc) +
			(sizeof(struct hvtramp_mapping) *
			 num_kernel_image_mappings - 1),
	hdesc = kzalloc(struct_size(hdesc, maps, num_kernel_image_mappings),
			GFP_KERNEL);
	if (!hdesc) {
		printk(KERN_ERR "ldom_startcpu_cpuid: Cannot allocate "