2006-10-27 20:40:57

by Berthold Cogel

[permalink] [raw]
Subject: Oops in __wake_up_common with irda, linux-2.6.18

Hello!

I got a kernel Oops in __wake_up_common while receiving a file on my
notebook via irda from a Pocket PC with 'ircp -r' (sending files to the
PocketPC works).

My System:
Acer Extensa 3002 WLMi notebook
Debian unstable/testing and irda-utils 0.9.18-3
linux-2.6.18 (from kernel.org)

Irda (FIR) device is identified as NSC Vishay TFDS-6500. Resources have
been identified from windows hardware manager: base 0x2F8, irq 3, dma 1.

After first catching the Oops with a 'homemade' kernel (suspend2, ...),
I compiled the same version without any patches.

Oops:

acer01:~# ircp -r
Waiting for incoming connection
srv_obex_event(): Link error
Speicherzugriffsfehler

Message from syslogd@localhost at Wed Oct 25 23:09:48 2006 ...

localhost kernel: Oops: 0000 [#2]
localhost kernel: PREEMPT
localhost kernel: CPU: 0
localhost kernel: EIP is at 0x200202
localhost kernel: eax: f0a1de1c ebx: c02001ea ecx: 00000000 edx:
f0a1de28
localhost kernel: esi: 00000000 edi: f1bf681c ebp: f0a1df00 esp:
f0a1ded8
localhost kernel: ds: 007b es: 007b ss: 0068
localhost kernel: Process ircp (pid: 12450, ti=f0a1c000 task=f55ee560
task.ti=f0a1c000)
localhost kernel: Stack: c01121b4 f0a1de1c 00000001 00000000 00000000
00000001 f1213e18 f0a1c000
localhost kernel: 00000000 00200246 f0a1df1c c01134ef 00000000
00000000 f68e3c00 f1213e00
localhost kernel: f1213e24 ee21f9cc c0231c44 00000000 f98921cc
f68e3c00 f98a8e00 f1213e00
localhost kernel: Call Trace:
localhost kernel: Code: Bad EIP value.
localhost kernel: EIP: [<00200202>] 0x200202 SS:ESP 0068:f0a1ded8


/var/log/messages:

Oct 25 23:09:48 localhost kernel: 00200202
Oct 25 23:09:48 localhost kernel: Modules linked in: af_packet
binfmt_misc rfcomm l2cap bluetooth nfs lockd nfs_acl sunrpc thermal fan
button sbs i2c_ec autofs4 snd_intel8x0m dm_mirror ipw2200 b44 mii
ieee80211_crypt_tkip ieee80211_crypt_ccmp ieee80211_crypt_wep ieee80211
ieee80211_crypt cpufreq_conservative cpufreq_ondemand
cpufreq_performance cpufreq_powersave acpi_cpufreq freq_table processor
sg scsi_mod snd_intel8x0 snd_ac97_codec snd_ac97_bus snd_pcm_oss usbhid
snd_mixer_oss pcmcia snd_pcm snd_seq_dummy snd_seq_oss firmware_class
snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer
snd_seq_device joydev snd nsc_ircc uhci_hcd ehci_hcd pcspkr intel_agp
soundcore yenta_socket rtc i2c_i801 evdev agpgart snd_page_alloc
ohci1394 ieee1394 rsrc_nonstatic pcmcia_core ide_cd usbcore irda cdrom
psmouse crc_ccitt unix
Oct 25 23:09:48 localhost kernel: EIP: 0060:[<00200202>] Not
tainted VLI
Oct 25 23:09:48 localhost kernel: EFLAGS: 00210083 (2.6.18-vanilla #3)
Oct 25 23:09:48 localhost kernel: [<c01121b4>] __wake_up_common+0x2a/0x4a
Oct 25 23:09:48 localhost kernel: [<c01134ef>] __wake_up+0x1f/0x48
Oct 25 23:09:48 localhost kernel: [<c0231c44>] sock_def_wakeup+0x27/0x3f
Oct 25 23:09:48 localhost kernel: [<f98921cc>] irda_release+0x4a/0x153
[irda]
Oct 25 23:09:48 localhost kernel: [<c022f577>] sock_release+0x14/0xa4
Oct 25 23:09:48 localhost kernel: [<c022f890>] sock_close+0x2c/0x33
Oct 25 23:09:48 localhost kernel: [<c014aea9>] __fput+0x84/0x152
Oct 25 23:09:48 localhost kernel: [<c0148a11>] filp_close+0x50/0x59
Oct 25 23:09:48 localhost kernel: [<c0149c4c>] sys_close+0x6f/0x9b
Oct 25 23:09:48 localhost kernel: [<c0102be9>] sysenter_past_esp+0x56/0x79
Oct 25 23:09:48 localhost kernel: <6>note: ircp[12450] exited with
preempt_count 2


I tried to debug the Oops with 'echo 4 > /proc/sys/net/irda/debug'
previous to 'ircp -r'. After the Oops I've stopped the debug output with
'echo 0 > /proc/sys/net/irda/debug'. Then I've extraced the sequence
from /var/log/kern.log

See: http://www.uni-koeln.de/~a0537/irda_debug.log


Additional informations:

/etc/modprobe.d/irda-utils.local

alias irda0 nsc-ircc
options nsc-ircc dongle_id=0x09 io=0x2f8 irq=3 dma=1
install nsc-ircc /bin/setserial /dev/ttyS0 uart none port 0 irq 0; \
/sbin/modprobe --ignore-install nsc-ircc


/etc/default/irda-utils

ENABLE=""
DISCOVERY="true"
DEVICE="irda0"
DONGLE="none"


/var/log/messages during boot

...
Oct 25 20:37:58 localhost kernel: nsc-ircc, chip->init
Oct 25 20:37:58 localhost kernel: nsc-ircc, Found chip at base=0x164e
Oct 25 20:37:58 localhost kernel: nsc-ircc, driver loaded (Dag Brattli)
Oct 25 20:37:58 localhost kernel: IrDA: Registered device irda0
Oct 25 20:37:58 localhost kernel: nsc-ircc, Using dongle: IBM31T1100 or
Temic TFDS6000/TFDS6500
...
Oct 25 20:38:14 localhost irattach: executing: '/sbin/modprobe irda0'
Oct 25 20:38:14 localhost irattach: executing: 'echo acer01 >
/proc/sys/net/irda/devname'
Oct 25 20:38:14 localhost irattach: executing: 'echo 1 >
/proc/sys/net/irda/discovery'
Oct 25 20:38:14 localhost irattach: Starting device irda0


/var/log/dmesg during boot

...
nsc_ircc_pnp_probe() : From PnP, found firbase 0x2F8 ; irq 3 ; dma 1.
nsc-ircc, chip->init
nsc-ircc, Found chip at base=0x164e
nsc-ircc, driver loaded (Dag Brattli)
IrDA: Registered device irda0
nsc-ircc, Using dongle: IBM31T1100 or Temic TFDS6000/TFDS6500


Regards,

Berthold Cogel




2006-10-29 17:50:29

by Samuel Ortiz

[permalink] [raw]
Subject: Re: Oops in __wake_up_common with irda, linux-2.6.18

Hi Berthold,

On Fri, Oct 27, 2006 at 10:40:32PM +0200, Berthold Cogel wrote:
> Hello!
>
> I got a kernel Oops in __wake_up_common while receiving a file on my
> notebook via irda from a Pocket PC with 'ircp -r' (sending files to the
> PocketPC works).
Could you try applying this patch:
http://marc.theaimsgroup.com/?l=linux-netdev&m=115792756816966&w=2

It's supposed to fix this OOPS. Please let me know.

Cheers,
Samuel.


> My System:
> Acer Extensa 3002 WLMi notebook
> Debian unstable/testing and irda-utils 0.9.18-3
> linux-2.6.18 (from kernel.org)
>
> Irda (FIR) device is identified as NSC Vishay TFDS-6500. Resources have
> been identified from windows hardware manager: base 0x2F8, irq 3, dma 1.
>
> After first catching the Oops with a 'homemade' kernel (suspend2, ...),
> I compiled the same version without any patches.
>
> Oops:
>
> acer01:~# ircp -r
> Waiting for incoming connection
> srv_obex_event(): Link error
> Speicherzugriffsfehler
>
> Message from syslogd@localhost at Wed Oct 25 23:09:48 2006 ...
>
> localhost kernel: Oops: 0000 [#2]
> localhost kernel: PREEMPT
> localhost kernel: CPU: 0
> localhost kernel: EIP is at 0x200202
> localhost kernel: eax: f0a1de1c ebx: c02001ea ecx: 00000000 edx:
> f0a1de28
> localhost kernel: esi: 00000000 edi: f1bf681c ebp: f0a1df00 esp:
> f0a1ded8
> localhost kernel: ds: 007b es: 007b ss: 0068
> localhost kernel: Process ircp (pid: 12450, ti=f0a1c000 task=f55ee560
> task.ti=f0a1c000)
> localhost kernel: Stack: c01121b4 f0a1de1c 00000001 00000000 00000000
> 00000001 f1213e18 f0a1c000
> localhost kernel: 00000000 00200246 f0a1df1c c01134ef 00000000
> 00000000 f68e3c00 f1213e00
> localhost kernel: f1213e24 ee21f9cc c0231c44 00000000 f98921cc
> f68e3c00 f98a8e00 f1213e00
> localhost kernel: Call Trace:
> localhost kernel: Code: Bad EIP value.
> localhost kernel: EIP: [<00200202>] 0x200202 SS:ESP 0068:f0a1ded8
>
>
> /var/log/messages:
>
> Oct 25 23:09:48 localhost kernel: 00200202
> Oct 25 23:09:48 localhost kernel: Modules linked in: af_packet
> binfmt_misc rfcomm l2cap bluetooth nfs lockd nfs_acl sunrpc thermal fan
> button sbs i2c_ec autofs4 snd_intel8x0m dm_mirror ipw2200 b44 mii
> ieee80211_crypt_tkip ieee80211_crypt_ccmp ieee80211_crypt_wep ieee80211
> ieee80211_crypt cpufreq_conservative cpufreq_ondemand
> cpufreq_performance cpufreq_powersave acpi_cpufreq freq_table processor
> sg scsi_mod snd_intel8x0 snd_ac97_codec snd_ac97_bus snd_pcm_oss usbhid
> snd_mixer_oss pcmcia snd_pcm snd_seq_dummy snd_seq_oss firmware_class
> snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer
> snd_seq_device joydev snd nsc_ircc uhci_hcd ehci_hcd pcspkr intel_agp
> soundcore yenta_socket rtc i2c_i801 evdev agpgart snd_page_alloc
> ohci1394 ieee1394 rsrc_nonstatic pcmcia_core ide_cd usbcore irda cdrom
> psmouse crc_ccitt unix
> Oct 25 23:09:48 localhost kernel: EIP: 0060:[<00200202>] Not
> tainted VLI
> Oct 25 23:09:48 localhost kernel: EFLAGS: 00210083 (2.6.18-vanilla #3)
> Oct 25 23:09:48 localhost kernel: [<c01121b4>] __wake_up_common+0x2a/0x4a
> Oct 25 23:09:48 localhost kernel: [<c01134ef>] __wake_up+0x1f/0x48
> Oct 25 23:09:48 localhost kernel: [<c0231c44>] sock_def_wakeup+0x27/0x3f
> Oct 25 23:09:48 localhost kernel: [<f98921cc>] irda_release+0x4a/0x153
> [irda]
> Oct 25 23:09:48 localhost kernel: [<c022f577>] sock_release+0x14/0xa4
> Oct 25 23:09:48 localhost kernel: [<c022f890>] sock_close+0x2c/0x33
> Oct 25 23:09:48 localhost kernel: [<c014aea9>] __fput+0x84/0x152
> Oct 25 23:09:48 localhost kernel: [<c0148a11>] filp_close+0x50/0x59
> Oct 25 23:09:48 localhost kernel: [<c0149c4c>] sys_close+0x6f/0x9b
> Oct 25 23:09:48 localhost kernel: [<c0102be9>] sysenter_past_esp+0x56/0x79
> Oct 25 23:09:48 localhost kernel: <6>note: ircp[12450] exited with
> preempt_count 2
>
>
> I tried to debug the Oops with 'echo 4 > /proc/sys/net/irda/debug'
> previous to 'ircp -r'. After the Oops I've stopped the debug output with
> 'echo 0 > /proc/sys/net/irda/debug'. Then I've extraced the sequence
> from /var/log/kern.log
>
> See: http://www.uni-koeln.de/~a0537/irda_debug.log
>
>
> Additional informations:
>
> /etc/modprobe.d/irda-utils.local
>
> alias irda0 nsc-ircc
> options nsc-ircc dongle_id=0x09 io=0x2f8 irq=3 dma=1
> install nsc-ircc /bin/setserial /dev/ttyS0 uart none port 0 irq 0; \
> /sbin/modprobe --ignore-install nsc-ircc
>
>
> /etc/default/irda-utils
>
> ENABLE=""
> DISCOVERY="true"
> DEVICE="irda0"
> DONGLE="none"
>
>
> /var/log/messages during boot
>
> ...
> Oct 25 20:37:58 localhost kernel: nsc-ircc, chip->init
> Oct 25 20:37:58 localhost kernel: nsc-ircc, Found chip at base=0x164e
> Oct 25 20:37:58 localhost kernel: nsc-ircc, driver loaded (Dag Brattli)
> Oct 25 20:37:58 localhost kernel: IrDA: Registered device irda0
> Oct 25 20:37:58 localhost kernel: nsc-ircc, Using dongle: IBM31T1100 or
> Temic TFDS6000/TFDS6500
> ...
> Oct 25 20:38:14 localhost irattach: executing: '/sbin/modprobe irda0'
> Oct 25 20:38:14 localhost irattach: executing: 'echo acer01 >
> /proc/sys/net/irda/devname'
> Oct 25 20:38:14 localhost irattach: executing: 'echo 1 >
> /proc/sys/net/irda/discovery'
> Oct 25 20:38:14 localhost irattach: Starting device irda0
>
>
> /var/log/dmesg during boot
>
> ...
> nsc_ircc_pnp_probe() : From PnP, found firbase 0x2F8 ; irq 3 ; dma 1.
> nsc-ircc, chip->init
> nsc-ircc, Found chip at base=0x164e
> nsc-ircc, driver loaded (Dag Brattli)
> IrDA: Registered device irda0
> nsc-ircc, Using dongle: IBM31T1100 or Temic TFDS6000/TFDS6500
>
>
> Regards,
>
> Berthold Cogel
>
>
>

2006-10-29 19:42:58

by Berthold Cogel

[permalink] [raw]
Subject: Re: Oops in __wake_up_common with irda, linux-2.6.18

Samuel Ortiz schrieb:
> Hi Berthold,
>
> On Fri, Oct 27, 2006 at 10:40:32PM +0200, Berthold Cogel wrote:
>> Hello!
>>
>> I got a kernel Oops in __wake_up_common while receiving a file on my
>> notebook via irda from a Pocket PC with 'ircp -r' (sending files to the
>> PocketPC works).
> Could you try applying this patch:
> http://marc.theaimsgroup.com/?l=linux-netdev&m=115792756816966&w=2
>
> It's supposed to fix this OOPS. Please let me know.
>
> Cheers,
> Samuel.

Hello Samuel,

with 2.6.18 parts of the patch failed:

acer01:/usr/src/linux# patch -p1 < ../irda_patch.txt
patching file net/irda/af_irda.c
Hunk #1 FAILED at 132.
Hunk #2 FAILED at 1213.
Hunk #3 FAILED at 1223.
Hunk #4 succeeded at 1356 with fuzz 2.
Hunk #5 succeeded at 1409 with fuzz 2.
3 out of 5 hunks FAILED -- saving rejects to file net/irda/af_irda.c.rej

This happens with 2.6.18.1 too. I haven't tried 2.6.19-rc... yet.

I've attached af_irda.c.rej for 2.6.18.

Berthold

2006-10-29 20:49:34

by Berthold Cogel

[permalink] [raw]
Subject: Re: [irda-users] Oops in __wake_up_common with irda, linux-2.6.18

Berthold Cogel schrieb:

>> Could you try applying this patch:
>> http://marc.theaimsgroup.com/?l=linux-netdev&m=115792756816966&w=2
>>
>> It's supposed to fix this OOPS. Please let me know.
>>
>> Cheers,
>> Samuel.
>
> Hello Samuel,
>
> with 2.6.18 parts of the patch failed:
>
> acer01:/usr/src/linux# patch -p1 < ../irda_patch.txt
> patching file net/irda/af_irda.c
> Hunk #1 FAILED at 132.
> Hunk #2 FAILED at 1213.
> Hunk #3 FAILED at 1223.
> Hunk #4 succeeded at 1356 with fuzz 2.
> Hunk #5 succeeded at 1409 with fuzz 2.
> 3 out of 5 hunks FAILED -- saving rejects to file net/irda/af_irda.c.rej
>
> This happens with 2.6.18.1 too. I haven't tried 2.6.19-rc... yet.
>
> I've attached af_irda.c.rej for 2.6.18.
>

OK!

Hunk #1 .. #3 are already included in the kernel sources. And the other
parts of the patch did fix the Oops.

Now I get only (with 2.6.18):

acer01:~$ ircp -r
Waiting for incoming connection
srv_obex_event(): Link error

and in /var/log/kern.log:

Oct 29 21:35:59 localhost kernel: irlap_change_speed(), setting speed to
115200
Oct 29 21:35:59 localhost kernel: irlmp_state_dtr(), Unknown event
LM_LAP_CONNECT_CONFIRM on LSAP 0x10
Oct 29 21:35:59 localhost last message repeated 2 times
Oct 29 21:36:00 localhost kernel: irda_poll(), POLLHUP
Oct 29 21:36:00 localhost kernel: Assertion failed!
net/irda/af_irda.c:irda_recvmsg_stream:1409 !sock_error(sk)
Oct 29 21:36:02 localhost kernel: irlap_change_speed(), setting speed to
9600


Regards,

Berthold