All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Gerst <bgerst@didntduck.org>
To: Andi Kleen <ak@suse.de>
Cc: linux-kernel@vger.kernel.org, set@pobox.com,
	alan@lxorguk.ukuu.org.uk, Wilfried.Weissmann@gmx.at
Subject: Re: [OOPS] repeatable 2.4.8-ac7, 2.4.7-ac6 just run xdos
Date: Wed, 22 Aug 2001 07:57:59 -0400	[thread overview]
Message-ID: <3B839E47.874F8F64@didntduck.org> (raw)
In-Reply-To: <20010819004703.A226@squish.home.loc.suse.lists.linux.kernel> <3B831CDF.4CC930A7@didntduck.org.suse.lists.linux.kernel> <oupn14sny4f.fsf@pigdrop.muc.suse.de>

Andi Kleen wrote:
> 
> Brian Gerst <bgerst@didntduck.org> writes:
> 
> > >
> > > CPU:    0
> > > EIP:    0010:[<c0180a18>]
> > > Using defaults from ksymoops -t elf32-i386 -a i386
> > > EFLAGS: 00010002
> > > eax: 00001000   ebx: c4562368   ecx: 00000000   edx: 00000001
> > > esi: c4562368   edi: c4a954d4   ebp: 00000001   esp: c6887d88
> > > ds: 008   es: 0000   ss: 0018
> >                 ^^^^
> > Here is your problem.  %es is set to the null segment.  I had my
> > suspicions about the segment reload optimisation in the -ac kernels, and
> > this proves it.  Try backing out the changes to arch/i386/kernel/entry.S
> > and include/asm-i386/hw_irq.h and see if that fixes the problem.
> 
> This patch should fix the problem. One assumption coded into the reload
> optimization is violated by vm86 mode. Please test.

Yes.  What happened here is that %ds and %es were not being updated
atomically.  Under normal operation, this would just leave %es with
USER_DS, which is sufficiently equivalent to KERNEL_DS to not cause a
fault.  Coming out of vm86 mode however forces the data segment
registers to null after saving the real mode values on the stack.  If an
interrupt happened between setting %ds and %es (what are the odds?) then
that assumption would fail and leave %es null, causing the next string
instruction to go boom.  The same fix should be applied to entry.S as
well.

-- 

						Brian Gerst

  reply	other threads:[~2001-08-22 12:01 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20010819004703.A226@squish.home.loc.suse.lists.linux.kernel>
     [not found] ` <3B831CDF.4CC930A7@didntduck.org.suse.lists.linux.kernel>
2001-08-22 11:16   ` [OOPS] repeatable 2.4.8-ac7, 2.4.7-ac6 just run xdos Andi Kleen
2001-08-22 11:57     ` Brian Gerst [this message]
2001-08-22 12:10       ` Andi Kleen
2001-08-22 12:11         ` Brian Gerst
2001-08-22 13:22           ` Andi Kleen
2001-08-22 19:52             ` Paul
2001-08-23 13:34               ` Andi Kleen
2001-08-23 18:05                 ` Paul
2001-08-23 18:20                   ` Wayne Whitney
2001-08-19  4:47 Paul
2001-08-19  5:09 ` Jeff Chua
2001-08-19  5:40   ` Paul
2001-08-19  8:04     ` Jeff Chua
2001-08-19 20:30       ` Eric W. Biederman
2001-08-19  5:10 ` Jeff Chua
2001-08-22  2:45 ` Brian Gerst

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3B839E47.874F8F64@didntduck.org \
    --to=bgerst@didntduck.org \
    --cc=Wilfried.Weissmann@gmx.at \
    --cc=ak@suse.de \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=set@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.