Re: [PATCH BACKPORT 3.4 - 4.5] x86/traps: Ignore high word of regs->cs in early_idt_handler_common

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/30/2016, 09:37 PM, Andy Lutomirski wrote:
> This is a backport of:
> commit cb32c69920e58a1a58e7b5cad975038a69c0ce7d upstream

This is in fact fc0e81b2bea0ebceb71889b61d2240856141c9ee, right?

And it appears to have a different commit log :/.

Can we have that corrected?

> On the 80486 DX, it seems that some exceptions may leave garbage in
> the high bits of CS.  This causes sporadic failures in which
> early_fixup_exception() refuses to fix up an exception.
> 
> As far as I can tell, this has been buggy for a long time, but the
> problem seems to have been exacerbated by commit 1e02ce4cccdc ("x86:
> Store a per-cpu shadow copy of CR4") and commit e1bfc11c5a6f
> ("x86/init: Fix cr4_init_shadow() on CR4-less machines").
> 
> This appears to have broken for as long as we've had early
> exception handling.
> 
> [ This backport should apply to kernels from 3.4 - 4.5. ]
> 
> Fixes: 4c5023a3fa2e ("x86-32: Handle exception table entries during early boot")
> Cc: H. Peter Anvin <hpa@xxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx
> Reported-by: Matthew Whitehead <tedheadster@xxxxxxxxx>
> Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
> ---
>  arch/x86/kernel/head_32.S | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
> index af1112980dd4..99373aa0762a 100644
> --- a/arch/x86/kernel/head_32.S
> +++ b/arch/x86/kernel/head_32.S
> @@ -571,7 +571,7 @@ early_idt_handler_common:
>  	movl %eax,%ds
>  	movl %eax,%es
>  
> -	cmpl $(__KERNEL_CS),32(%esp)
> +	cmpw $(__KERNEL_CS),32(%esp)
>  	jne 10f
>  
>  	leal 28(%esp),%eax	# Pointer to %eip
> 

thanks,
-- 
js
suse labs
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]