Commit e290e6af authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'printk-for-5.2-fixes' of...

Merge tag 'printk-for-5.2-fixes' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/pmladek/printk

Pull printk fixup from Petr Mladek:
 "Replace the problematic probe_kernel_read() with original simple
  pointer checks in vsprintf()"

* tag 'printk-for-5.2-fixes' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/pmladek/printk:
  vsprintf: Do not break early boot with probing addresses
parents 3232b43f 2ac5a3bf
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -628,19 +628,16 @@ static char *error_string(char *buf, char *end, const char *s,
}

/*
 * This is not a fool-proof test. 99% of the time that this will fault is
 * due to a bad pointer, not one that crosses into bad memory. Just test
 * the address to make sure it doesn't fault due to a poorly added printk
 * during debugging.
 * Do not call any complex external code here. Nested printk()/vsprintf()
 * might cause infinite loops. Failures might break printk() and would
 * be hard to debug.
 */
static const char *check_pointer_msg(const void *ptr)
{
	char byte;

	if (!ptr)
		return "(null)";

	if (probe_kernel_address(ptr, byte))
	if ((unsigned long)ptr < PAGE_SIZE || IS_ERR_VALUE(ptr))
		return "(efault)";

	return NULL;