kernel virtual memory access (from app) does not generatesegfault

Russell King - ARM Linux linux at arm.linux.org.uk
Wed Apr 21 15:35:34 EDT 2010


On Wed, Apr 21, 2010 at 12:17:41PM +0100, Dave P. Martin wrote:
>  
> 
> > -----Original Message-----
> > From: Russell King - ARM Linux [mailto:linux at arm.linux.org.uk] 
> > Sent: 20 April 2010 23:41
> > To: Jamie Lokier
> > Cc: Ben Dooks; anfei; Dave P Martin; 
> > linux-arm-kernel at lists.infradead.org
> > Subject: Re: kernel virtual memory access (from app) does not 
> > generatesegfault
> 
> [...]
> 
> > The difference between instruction faults and data faults is 
> > that we always interpret instruction faults on pre-ARMv6 CPUs 
> > as a 'translation fault' rather than a permission fault since 
> > they can't tell us what the problem was.
> 
> Note that my observations were on an armv7 kernel.  Should we still hit the
> same bit of code in this case, or have I misdiagnosed the problem?

If it was ARMv7, we should be reading the IFSR, which should be telling
us that there's a permission fault trying to read instructions from
0xc0000000.

If changing do_translation_fault() on a recent kernel fixes your problem,
something's going wrong.  Any chance you could add some debugging to
do_PrefetchAbort() so that when you see your test program running
(eg, if (strcmp(current->comm, "progname") == 0) { ... }) you could
dump out the values of ifsr and addr please?



More information about the linux-arm-kernel mailing list