Kernel mappings

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

 



Greeting all,

I'm trying to make sense of an Oops in a driver I'm trying to port from 2.4 to 2.6.21 on an embedded ARM platform. I've scoured every archive and Google page I could find but because my issue is very specific I can't find anything that helps.

In a nutshell, I have the module building and loading for 2.6 but when a user land app attempts to use the driver it fails (unable to handle kernel paging request).

The address in question is of the CPU's internal peripheral registers. The key issue is that I can access that address from kernel mode just fine. But the failure happens when the user land app down-calls via an ioctl into the driver module. The oops message says it was "Mode SVC_32 Segment user".

I thought I'd read that once the syscall happens and the driver is called by do_ioctl (which is happening) that it should be in kernel mode. I don't understand what else I need to do to allow me to access kernel mappings that I know exist.

Is there a call I need to make to reach kernel mode? Or am I supposed to map the physical range I need again during an init down-call?

I think I have the code doing basically what it did under 2.4 but I never saw this problem there.

Thanks for any advise or pointers.

-Mike


--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux