From: "Steven J. Hill" <sjhill@realitydiluted.com>
To: linux-mips@linux-mips.org
Subject: Improper handling of unaligned user address access?
Date: Mon, 03 Mar 2003 13:48:12 -0600 [thread overview]
Message-ID: <3E63B17C.8000403@realitydiluted.com> (raw)
Greetings.
I am having some issues using 'copy_from_user' in a driver. The issue
is that instead of returning a EFAULT for a bad address, it throws a
kernel panic and then proceeds to segfault the application. I am doing
a test on the module where I pass in an invalid user source address:
copy_from_user(&dst, src, sizeof(dst));
where 'src' is equal to '0xa'. Now for the interesting part. When it
goes to do the copy, in 'arch/mips/lib/memcpy.S' it correctly jumps
to 'src_unaligned_dst_aligned' and then to 'cleanup_src_unaligned'
and we have the following code:
8025f004 <cleanup_src_unaligned>:
8025f004: 10c00017 beqz a2,8025f064 <done>
8025f008: 30d80003 andi t8,a2,0x3
8025f00c: 13060009 beq t8,a2,8025f034 <copy_bytes>
8025f010: 88a80000 lwl t0,0(a1)
The instruction at 8025f00c is the offending instruction, however, the
kernel oops that kills the process shows:
Unable to handle kernel paging request at virtual address 0000000a,
epc == 8025f00c, ra == 8011c3c8
Oops in fault.c:do_page_fault, line 199:
$0 : 00000000 00000012 0000001a 0000001a 87887f10 0000000a 00000008
00000001
$8 : 00000000 00000000 00000000 00001116 802ec2f0 fffffffe ffffffff
00000010
$16: 0000000a 7fff7d68 87887f10 00000000 004009b4 00000000 00000000
00000000
$24: 00000000 87887e18 87886000 87887f00 7fff7d30
8011c3c8
Hi : 00000000
Lo : 00000000
epc : 8025f00c Not tainted
Status: 3000fc03
Cause : 90000008
I am using the last version of the 2.4.18 Linux/MIPS kernel. It looks
like there was a possible fix for this in 'arch/mips/kernel/unaligned.c'
by Ralf, but it did not seem to work. Any thoughts on this?
-Steve
next reply other threads:[~2003-03-03 19:57 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-03-03 19:48 Steven J. Hill [this message]
2003-03-03 21:22 ` Improper handling of unaligned user address access? Geert Uytterhoeven
2003-03-03 21:38 ` Mike Uhler
2003-03-03 21:38 ` Mike Uhler
2003-03-03 22:16 ` Steven J. Hill
2003-03-04 0:14 ` Steven J. Hill
2003-03-04 1:41 ` Jun Sun
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=3E63B17C.8000403@realitydiluted.com \
--to=sjhill@realitydiluted.com \
--cc=linux-mips@linux-mips.org \
/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