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

Commit 636802ef authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt
Browse files

powerpc: Don't use __put_user() in patch_instruction



patch_instruction() can be called very early on ppc32, when the kernel
isn't yet running at it's linked address. That can cause the !
is_kernel_addr() test in __put_user() to trip and call might_sleep()
which is very bad at that point during boot.

Use a lower level function instead for now, at least until we get to
rework ppc32 boot process to do the code patching later, like ppc64
does.

Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 9fb1b36c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@ int patch_instruction(unsigned int *addr, unsigned int instr)
{
	int err;

	err = __put_user(instr, addr);
	__put_user_size(instr, addr, 4, err);
	if (err)
		return err;
	asm ("dcbst 0, %0; sync; icbi 0,%0; sync; isync" : : "r" (addr));