]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/process/32: Use correct type for 'gs' variable in __show_regs() to avoid zero...
authorUros Bizjak <ubizjak@gmail.com>
Mon, 30 Mar 2026 08:59:22 +0000 (10:59 +0200)
committerIngo Molnar <mingo@kernel.org>
Tue, 31 Mar 2026 07:50:10 +0000 (09:50 +0200)
Change the type of 'gs' variable in __show_regs() from
'unsigned short' to 'unsigned int'. This prevents unwanted
zero-extension when storing the 16-bit segment register
into a wider general purpose register.

The code improves from:

  50: 8c ee                 mov    %gs,%esi
  52: 0f b7 f6              movzwl %si,%esi
  ...
  be: 89 74 24 14           mov    %esi,0x14(%esp)

to:

  50: 8c ef                 mov    %gs,%edi
  ...
  bb: 89 7c 24 14           mov    %edi,0x14(%esp)

No functional change intended.

Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://patch.msgid.link/20260330085938.67985-3-ubizjak@gmail.com
arch/x86/kernel/process_32.c

index 3ef15c2f152f7033970dd997265f16eeb176bfa2..168dabf9853fbf7e1ad0bf870cd02a96fc4ff666 100644 (file)
@@ -61,7 +61,7 @@ void __show_regs(struct pt_regs *regs, enum show_regs_mode mode,
 {
        unsigned long cr0 = 0L, cr2 = 0L, cr3 = 0L, cr4 = 0L;
        unsigned long d0, d1, d2, d3, d6, d7;
-       unsigned short gs;
+       unsigned int gs;
 
        savesegment(gs, gs);