Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5556410e authored by Paul Mundt's avatar Paul Mundt
Browse files

sh: panic on machvec section misalignment.



Now that __initmv references the machvec section unconditionally
there have been cases where folks have been mistakenly flagging
non-machvec structures with the machvec section attribute (presumably
to shut up modpost). This leads to obscure breakage in earlyprintk
amongst other places and is rather non-obvious.

Add a simple sanity check to try and catch __initmv misuse and
panic early.

Reported-by: default avatarMarkus Brunner <super.firetwister@gmail.com>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 662ae216
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -90,6 +90,13 @@ void __init sh_mv_setup(void)
		machvec_size = ((unsigned long)&__machvec_end -
				(unsigned long)&__machvec_start);

		/*
		 * Sanity check for machvec section alignment. Ensure
		 * __initmv hasn't been misused.
		 */
		if (machvec_size % sizeof(struct sh_machine_vector))
			panic("machvec misaligned, invalid __initmv use?");

		/*
		 * If the machvec hasn't been preselected, use the first
		 * vector (usually the only one) from .machvec.init.