memory management

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

 



Hi,

I'm trying to write a driver for a usb device that requires a firmware 
upload that is around 31Kb. This data is currently dealt with as a 
static array of unsigned char and a pointer to it is given as the urb 
transfer buffer when usb_submit_urb() is called.  Then the usb core 
crashes.  I'm working with the 2.4.18 kernel from Mandrake 8.2. Here is 
the error output:
------

Nov  8 10:34:15 cea02 kernel: Unable to handle kernel paging request at 
virtual address d0958000
Nov  8 10:34:15 cea02 kernel:  printing eip:
Nov  8 10:34:15 cea02 kernel: d09486e9
Nov  8 10:34:15 cea02 kernel: *pde = 0ff45067
Nov  8 10:34:15 cea02 kernel: *pte = 00000000
Nov  8 10:34:15 cea02 kernel: Oops: 0000
Nov  8 10:34:15 cea02 kernel: CPU:    0
Nov  8 10:34:15 cea02 kernel: EIP: 
0010:[usbcore:usb_devfs_handle_Re9c5f87f+7
45589/241221047]    Not tainted
Nov  8 10:34:15 cea02 kernel: EIP:    0010:[<d09486e9>]    Not tainted
Nov  8 10:34:15 cea02 kernel: EFLAGS: 00010203
Nov  8 10:34:15 cea02 kernel: eax: d094f819   ebx: d094f8ca   ecx: 
d0958000   ed
x: 0000263e
Nov  8 10:34:15 cea02 kernel: esi: cf545e7a   edi: cf545e86   ebp: 
ce493600   es
p: cf545e50
Nov  8 10:34:15 cea02 kernel: ds: 0018   es: 0018   ss: 0018
Nov  8 10:34:15 cea02 kernel: Process khubd (pid: 508, stackpage=cf545000)
[root@cea02 log]#
--------
Since this array is compiled in to the module I'm at a loss as to why 
I'm getting paging problems.  Am I going to have to use vmalloc or 
kmalloc (and what exactly is the difference, anyway?) and copy the data 
to a new array?

I'm kind of confused about kernel memory, and would appreciate any hints 
as to what's going on here.

Steve



--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           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