Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: "Kevin D. Kissell" <kevink@mips.com>
To: Sanjay Jain <sjain@Sanera.net>
Cc: linux-mips@oss.sgi.com
Subject: Re: unhandled kernel  unaligned access
Date: Wed, 06 Mar 2002 11:37:44 -0800	[thread overview]
Message-ID: <3C867007.FB94B0D@mips.com> (raw)
In-Reply-To: MPEHJBMAKDIKNMNLMJCLIELJCBAA.sjain@sanera.net

Which sources are you using?  Up until pretty recently,
there was a bug in unaligned.c which could cause this.
I don't know when it was fixed at SGI, but the fix
is in the 2.4.19-pre2 sources at kernel.org.  The problem
was that the epc value in the exception context was
being advanced to the next instruction prior to the
invocation of search_exception_table(regs->cp0_epc).
The 2.4.19-pre2 code solves the problem by re-ordering
the operations and delaying the advancement of epc.
My own quick-and-dirty hack was simply to use the
unmutilated value which is also available to
emulate_load_store_insn(), changing that one line
to be "fixup = search_exception_table(pc)".  That
seems to work.

			Kevin K.

Sanjay Jain wrote:
> 
> hi all,
> 
> I am running a kernel test program which makes following call.
> 
> getpeername(s, tdat[testno].sockaddr,tdat[testno].salen));
> 
> In one particular case tdat[testno].salen is set to 1 which is a unaligned
> and invalid addr. It results in following oops.
> 
> Unhandled kernel unaligned access in unaligned.c:emulate_load_store_insn,
> line
> 373:
> $0 : 00000000 10000024 00000000 00000005
> $4 : 10000d20 00000000 10000d20 00000001
> $8 : ffffffff 8b179e98 801c6da0 00000003
> $12: 00000000 00000002 8b179ecc 8f9875bc
> $16: 8b1954c0 00000001 10000d20 00000001
> $20: 004014e0 10002e08 00000000 0000000d
> $24: 00000001 2ac2db50
> $28: 8b178000 8b179e70 7fff7c70 801c6e2c
> epc    : 00000000801c58d4
> Status : 10009f03
> Cause  : 00800010
> 
> BadAddr: 0000000000000001Process getpeername01 (pid: 9673,
> stackpage=8b178000)
> Stack: 8b179ec8 8eedf5a0 8b1954c0 00000001 801c6e2c 801c6dc4 8022370c
> 8020c788
>        8b179ec8 8eedf5a0 00010060 8eedf5a0 00000005 801c5b08 802c2048
> 8023a65c
>        000001d7 00000400 8b179ec8 00000005 000001d7 8eeb7780 5b343731
> 5d00d538
>        8fd2cd80 ffffffea 8eeb7780 00000000 00000000 00000001 00000003
> 00000003
>        7fff7c58 00000002 801c69b8 00406950 00401190 00000001 7fff7d24
> 00406950
>        8b1954c0 ...
> Call Trace: [<801c6e2c>] [<801c6dc4>] [<8022370c>] [<8020c788>] [<801c5b08>]
> [<
> 8023a65c>]
>  [<801c69b8>] [<8010dce8>]
> 
> Code: 04600003  00402821  8ce20000 <00002821> 00403021  10a00004  00a01021
> 8fb
> f0010  03e00008
> 
> Is this the expected behavior if an unaligned address is passed in a system
> call?

  parent reply	other threads:[~2002-03-06 20:38 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-03-05 14:14 boot different kernels on the indy ?! Andrea Venturi
2002-03-05 23:25 ` Florian Lohoff
2002-03-06  5:24   ` Ladislav Michl
2002-03-06  9:47     ` Florian Lohoff
2002-03-06 19:26     ` unhandled kernel unaligned access Sanjay Jain
2002-03-06 19:26       ` Sanjay Jain
2002-03-06 19:37       ` Kevin D. Kissell [this message]
2002-03-06 21:16         ` Ralf Baechle

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=3C867007.FB94B0D@mips.com \
    --to=kevink@mips.com \
    --cc=linux-mips@oss.sgi.com \
    --cc=sjain@Sanera.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox