x86/retpoline: Fix crash printing warning

Message ID Y1gBoUZrRK5N/lCB@kili
State New
Headers
Series x86/retpoline: Fix crash printing warning |

Commit Message

Dan Carpenter Oct. 25, 2022, 3:32 p.m. UTC
  The first argument of WARN() is a condition, so this will use "addr"
as the format string and possibly crash.

Fixes: 3b6c1747da48 ("x86/retpoline: Add SKL retthunk retpolines")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
 arch/x86/kernel/alternative.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Ammar Faizi Oct. 25, 2022, 6:59 p.m. UTC | #1
On 10/25/22 10:32 PM, Dan Carpenter wrote:
> The first argument of WARN() is a condition, so this will use "addr"
> as the format string and possibly crash.
> 
> Fixes: 3b6c1747da48 ("x86/retpoline: Add SKL retthunk retpolines")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Hello x86 maintainers,

I found this patch in the tip tree with the following commit message:

https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?h=x86/core&id=98dcf58159365d753b54d07f85a89d61ee15e036

	x86/retpoline: Fix crash printing warningx86/core

	The first argument of WARN() is a condition, so this will use "addr"
	as the format string and possibly crash.

	Fixes: 3b6c1747da48 ("x86/retpoline: Add SKL retthunk retpolines")
	Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
	Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
	Link: https://lkml.kernel.org/r/Y1gBoUZrRK5N/lCB@kili

When I visited that lkml link, it shows "message ID not found". The
problem seems to be coming from the tool used to pick up the patch.

That message ID contains a URL special char '/'. Thus it should be
URL-encoded like this:

    https://lore.kernel.org/r/Y1gBoUZrRK5N%2FlCB%40kili

Anyway, lkml.kernel.org doesn't work for such a message ID, even with
URL-encoded message ID like this:

    https://lkml.kernel.org/r/Y1gBoUZrRK5N%2FlCB%40kili (not found)
  
Dave Hansen Oct. 25, 2022, 7:25 p.m. UTC | #2
On 10/25/22 11:59, Ammar Faizi wrote:
> When I visited that lkml link, it shows "message ID not found". The
> problem seems to be coming from the tool used to pick up the patch.

Thanks for the heads-up!  That link is indeed generated by tooling.
I'll go fix it up.
  

Patch

diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
index 19221d77dc27..b4ac4e58c010 100644
--- a/arch/x86/kernel/alternative.c
+++ b/arch/x86/kernel/alternative.c
@@ -418,7 +418,7 @@  static int emit_call_track_retpoline(void *addr, struct insn *insn, int reg, u8
 		break;
 
 	default:
-		WARN("%pS %px %*ph\n", addr, addr, 6, addr);
+		WARN(1, "%pS %px %*ph\n", addr, addr, 6, addr);
 		return -1;
 	}