An old driver fixing help

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

 



Hi!
First, I am not a kernel drivers' developer. However in my country
there is a very popular USB ADSL modem
that has an old driver for Linux. Since to the 2.6.24 kernel release I
and some my friends tried to 'patch' the
 driver to work with newer kernels. But this time, in the newest
kernels it does not work.

First, it doesn't want to compile - there were two errors. One of them was:
/home/adrian/unicorn-neo/unicorn_usb/unicorn_usbdrv.c:210: error:
'struct urb' has no member named 'lock'
 So I had commented this line /* spin_lock_init(&urb->lock); */ and
the next error was:
/home/adrian/unicorn-neo/unicorn_usb/../unicorn_eth/unicorn_ethdrv.c:1398:
error: implicit declaration of function 'SET_MODULE_OWNER'
 And I had found out that this is unusable in the newer kernels and I
can remove this line, so I did this and then
the module compiles, moreover it loads correctly if the modem is
unplugged (when it is plugged,the system
 is hanging on boot). But if I plug it into a USB port nothing happens
with modem. I get then this when I run dmesg:

[  300.699874] usbcore: registered new interface driver unicorn_usb
[  310.345981] usb 1-1: new full speed USB device using uhci_hcd and address 2
[  310.557861] usb 1-1: configuration #1 chosen from 1 choice
[  310.560756] unicorn_usb: rapi init called
[  310.560790] BUG: unable to handle kernel NULL pointer dereference
at virtual address 00000000
[  310.560795] printing eip: f8ee39c4 *pde = 00000000
[  310.560799] Oops: 0002 [#1] SMP
[  310.560803] Modules linked in: unicorn_usb_eth ieee80211_crypt_ccmp
af_packet ipv6 ppdev cpufreq_powersave cpufreq_userspace
cpufreq_ondemand cpufreq_stats freq_table cpufreq_conservative sbs
container sbshc video output dock battery iptable_filter ip_tables
x_tables aes_i586 dm_crypt dm_mod ac sbp2 lp snd_hda_intel snd_pcm_oss
snd_mixer_oss snd_pcm snd_page_alloc snd_hwdep snd_seq_dummy
snd_seq_oss snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq
snd_timer snd_seq_device parport_pc zd1211rw parport ieee80211softmac
snd ieee80211 ieee80211_crypt evdev soundcore nvidia(P) pcspkr button
i2c_viapro i2c_core via_agp agpgart shpchp pci_hotplug ext3 jbd
mbcache usbhid hid sg sr_mod cdrom sd_mod pata_acpi sata_via pata_via
floppy ata_generic via_rhine ehci_hcd uhci_hcd mii libata usbcore
scsi_mod ohci1394 ieee1394 thermal processor fan fbcon tileblit font
bitblit softcursor fuse
[  310.560861]
[  310.560864] Pid: 1549, comm: khubd Tainted: P        (2.6.24-16-generic #1)
[  310.560866] EIP: 0060:[<f8ee39c4>] EFLAGS: 00010246 CPU: 1
[  310.560923] EIP is at xm_getmem+0x24/0x80 [unicorn_usb_eth]
[  310.560925] EAX: dfbf2750 EBX: 00000000 ECX: 00000282 EDX: 00000000
[  310.560928] ESI: 00000004 EDI: f7647c00 EBP: dfb7dcf0 ESP: dfb7dcc0
[  310.560930]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
[  310.560932] Process khubd (pid: 1549, ti=dfb7c000 task=f74ef0e0
task.ti=dfb7c000)
[  310.560934] Stack: 00000286 f7647d00 000000ff 00000000 f7600000
f8ee629c 00000004 dfb7dcec
[  310.560941]        f7647d00 00000296 00000286 4811e151 dfb7dd00
f8ee2c65 00000004 00000000
[  310.560947]        f5d5f000 f8edda1e f8efb623 f7647c00 00000138
00004ece f8f383e0 f5d5f000
[  310.560953] Call Trace:
[  310.560968]  [<f8ee629c>] _Znwj+0x18/0x4c [unicorn_usb_eth]
[  310.561029]  [<f8ee2c65>] createclassobject+0x13/0x34 [unicorn_usb_eth]
[  310.561091]  [<f8edda1e>] probe_unicorn_usb+0x14e/0x680 [unicorn_usb_eth]
[  310.561153]  [<f89005d9>] usb_probe_interface+0xb9/0x140 [usbcore]
[  310.561181]  [<c027d988>] driver_probe_device+0x88/0x190
[  310.561189]  [<c0315065>] klist_next+0x55/0xb0
[  310.561196]  [<c027cc84>] bus_for_each_drv+0x44/0x70
[  310.561203]  [<c027db56>] device_attach+0x86/0x90
[  310.561206]  [<c027da90>] __device_attach+0x0/0x10
[  310.561211]  [<c027cbf5>] bus_attach_device+0x45/0x90
[  310.561217]  [<c027bc88>] device_add+0x418/0x510
[  310.561225]  [<f88fe522>] usb_set_configuration+0x392/0x5d0 [usbcore]
[  310.561254]  [<f8906b06>] generic_probe+0x76/0xb0 [usbcore]
[  310.561280]  [<f8900393>] usb_probe_device+0x33/0x40 [usbcore]
[  310.561295]  [<c027d988>] driver_probe_device+0x88/0x190
[  310.561306]  [<c0315065>] klist_next+0x55/0xb0
[  310.561313]  [<c027cc84>] bus_for_each_drv+0x44/0x70
[  310.561319]  [<c027db56>] device_attach+0x86/0x90
[  310.561322]  [<c027da90>] __device_attach+0x0/0x10
[  310.561327]  [<c027cbf5>] bus_attach_device+0x45/0x90
[  310.561333]  [<c027bc88>] device_add+0x418/0x510
[  310.561341]  [<f88f92f6>] usb_new_device+0x56/0xa0 [usbcore]
[  310.561364]  [<f88faa97>] hub_thread+0x687/0xcb0 [usbcore]
[  310.561393]  [<c0140b70>] autoremove_wake_function+0x0/0x40
[  310.561402]  [<f88fa410>] hub_thread+0x0/0xcb0 [usbcore]
[  310.561421]  [<c01408b2>] kthread+0x42/0x70
[  310.561424]  [<c0140870>] kthread+0x0/0x70
[  310.561429]  [<c0105677>] kernel_thread_helper+0x7/0x10
[  310.561435]  =======================
[  310.561437] Code: 18 c3 90 8d 74 26 00 56 89 c6 53 89 d3 83 ec 0c
ba c0 ab 00 00 8d 40 10 e8 2a fe ff ff ba 01 00 00 00 85 c0 74 10 83
c0 10 30 d2 <89> 03 83 3d 28 59 f4 f8 3f 77 08 83 c4 0c 89 d0 5b 5e c3
c7 44
[  310.561468] EIP: [<f8ee39c4>] xm_getmem+0x24/0x80 [unicorn_usb_eth]
SS:ESP 0068:dfb7dcc0
[  310.561518] ---[ end trace 6916491f26b0396a ]---


And there is the driver that was working properly in Ubuntu 7.10 with
kernel 2.6.22 (and older):
http://ubudsl.com/unicorn-neo.tar

If someone would help, many people from Poland (and not only) would be
thankful :)


[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux