2000-11-14 23:15:54

by Jorge Nerin

[permalink] [raw]
Subject: kernel BUG at sock.c:722! (2.4.0-test11-pre4)

Well, first saw this in test11-pre1, and now in test11-pre4 I report it
again.


Nov 14 15:10:51 quartz kernel: kernel BUG at sock.c:722!
Nov 14 15:10:51 quartz kernel: invalid operand: 0000
Nov 14 15:10:51 quartz kernel: CPU: 0
Nov 14 15:10:51 quartz kernel: EIP: 0010:[sock_wait_for_wmem+104/244]
Nov 14 15:10:51 quartz kernel: EFLAGS: 00010286
Nov 14 15:10:51 quartz kernel: eax: 0000001a ebx: c1b2a000 ecx:
00000000 edx: 00000002
Nov 14 15:10:51 quartz kernel: esi: c25c60e0 edi: c25c60e0 ebp:
7fffffff esp: c1b2be7c
Nov 14 15:10:51 quartz kernel: ds: 0018 es: 0018 ss: 0018
Nov 14 15:10:51 quartz kernel: Process sound-propertie (pid: 995,
stackpage=c1b2b000)
Nov 14 15:10:51 quartz kernel: Stack: c0216f45 c021718b 000002d2
7fffffff c25c60e0 c1b2a000 00000ff0 c1b2a000
Nov 14 15:10:51 quartz kernel: 00000000 c1b2a000 00000000
00000000 00000000 c1b2a000 00000000 00000000
Nov 14 15:10:51 quartz kernel: c01a6829 c25c60e0 7fffffff
c5a81540 00007fef c1b90000 c19a74f4 00000000
Nov 14 15:10:51 quartz kernel: Call Trace: [vga_con+2501/10176]
[vga_con+3083/10176] [sock_alloc_send_skb+221/300]
[unix_stream_sendmsg+302/784] [unix_stream_sendmsg+0/784]
[sock_sendmsg+129/164] [unix_stream_sendmsg+0/784]
Nov 14 15:10:51 quartz kernel: [sock_write+163/172]
[sys_write+142/196] [system_call+55/64]
Nov 14 15:10:51 quartz kernel: Code: 0f 0b 83 c4 0c 8b 87 50 03 00 00 f0
0f ba 70 04 00 8d 4c 24


ksymoops 2.3.4 on i586 2.4.0-test11-pre4. Options used
-V (default)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.0-test11-pre4/ (default)
-m /boot/System.map-2.4.0-test11-pre4 (specified)

activating NMI Watchdog ... done.
cpu: 0, clocks: 668169, slice: 222723
cpu: 1, clocks: 668169, slice: 222723
invalid operand: 0000
CPU: 0
EIP: 0010:[<c01a66c0>]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010286
eax: 0000001a ebx: c1b2a000 ecx: 00000000 edx: 00000002
esi: c25c60e0 edi: c25c60e0 ebp: 7fffffff esp: c1b2be7c
ds: 0018 es: 0018 ss: 0018
Process sound-propertie (pid: 995, stackpage=c1b2b000)
Stack: c0216f45 c021718b 000002d2 7fffffff c25c60e0 c1b2a000 00000ff0
c1b2a000
00000000 c1b2a000 00000000 00000000 00000000 c1b2a000 00000000
00000000
c01a6829 c25c60e0 7fffffff c5a81540 00007fef c1b90000 c19a74f4
00000000
Call Trace: [<c0216f45>] [<c021718b>] [<c01a6829>] [<c01e2f2e>]
[<c01e2e00>] [<c01a3a0d>] [<c01e2e00>]
[<c01a3c2b>] [<c013c81a>] [<c010a0f7>]
Code: 0f 0b 83 c4 0c 8b 87 50 03 00 00 f0 0f ba 70 04 00 8d 4c 24

>>EIP; c01a66c0 <sock_wait_for_wmem+68/f4> <=====
Trace; c0216f45 <vga_con+9c5/27c0>
Trace; c021718b <vga_con+c0b/27c0>
Trace; c01a6829 <sock_alloc_send_skb+dd/12c>
Trace; c01e2f2e <unix_stream_sendmsg+12e/310>
Trace; c01e2e00 <unix_stream_sendmsg+0/310>
Trace; c01a3a0d <sock_sendmsg+81/a4>
Trace; c01e2e00 <unix_stream_sendmsg+0/310>
Trace; c01a3c2b <sock_write+a3/ac>
Trace; c013c81a <sys_write+8e/c4>
Trace; c010a0f7 <system_call+37/40>
Code; c01a66c0 <sock_wait_for_wmem+68/f4>
00000000 <_EIP>:
Code; c01a66c0 <sock_wait_for_wmem+68/f4> <=====
0: 0f 0b ud2a <=====
Code; c01a66c2 <sock_wait_for_wmem+6a/f4>
2: 83 c4 0c add $0xc,%esp
Code; c01a66c5 <sock_wait_for_wmem+6d/f4>
5: 8b 87 50 03 00 00 mov 0x350(%edi),%eax
Code; c01a66cb <sock_wait_for_wmem+73/f4>
b: f0 0f ba 70 04 00 lock btrl $0x0,0x4(%eax)
Code; c01a66d1 <sock_wait_for_wmem+79/f4>
11: 8d 4c 24 00 lea 0x0(%esp,1),%ecx

--
Jorge Nerin
<[email protected]>


2000-11-15 07:34:07

by David Miller

[permalink] [raw]
Subject: Re: kernel BUG at sock.c:722! (2.4.0-test11-pre4)

Date: Tue, 14 Nov 2000 23:46:33 +0100
From: Jorge Nerin <[email protected]>

Well, first saw this in test11-pre1, and now in test11-pre4 I report it
again.

Do you use any one of USB, PCMCIA+Yenta, or ATM? If so, please give
the following patch a try.

If not, do you use KHTTPD? If so, please don't... it's unmaintained,
buggy, and to eventually be replaced by TUX.

--- ./drivers/sbus/char/su.c.~1~ Sat Oct 14 03:09:04 2000
+++ ./drivers/sbus/char/su.c Tue Nov 14 23:28:09 2000
@@ -1,4 +1,4 @@
-/* $Id: su.c,v 1.42 2000/10/14 10:09:04 davem Exp $
+/* $Id: su.c,v 1.43 2000/11/15 07:28:09 davem Exp $
* su.c: Small serial driver for keyboard/mouse interface on sparc32/PCI
*
* Copyright (C) 1997 Eddie C. Dost ([email protected])
@@ -2001,6 +2001,7 @@
#endif
schedule();
}
+ current->state = TASK_RUNNING;
remove_wait_queue(&info->open_wait, &wait);
if (extra_count)
info->count++;
@@ -2219,7 +2220,7 @@
*/
static __inline__ void __init show_su_version(void)
{
- char *revision = "$Revision: 1.42 $";
+ char *revision = "$Revision: 1.43 $";
char *version, *p;

version = strchr(revision, ' ');
--- ./drivers/sbus/char/sab82532.c.~1~ Sat Oct 14 03:09:04 2000
+++ ./drivers/sbus/char/sab82532.c Tue Nov 14 23:28:09 2000
@@ -1,4 +1,4 @@
-/* $Id: sab82532.c,v 1.52 2000/10/14 10:09:04 davem Exp $
+/* $Id: sab82532.c,v 1.53 2000/11/15 07:28:09 davem Exp $
* sab82532.c: ASYNC Driver for the SIEMENS SAB82532 DUSCC.
*
* Copyright (C) 1997 Eddie C. Dost ([email protected])
@@ -1833,6 +1833,7 @@
#endif
schedule();
}
+ current->state = TASK_RUNNING;
remove_wait_queue(&info->open_wait, &wait);
if (!tty_hung_up_p(filp))
info->count++;
@@ -2133,7 +2134,7 @@

static inline void __init show_serial_version(void)
{
- char *revision = "$Revision: 1.52 $";
+ char *revision = "$Revision: 1.53 $";
char *version, *p;

version = strchr(revision, ' ');
--- ./drivers/usb/storage/transport.c.~1~ Sun Nov 12 00:22:27 2000
+++ ./drivers/usb/storage/transport.c Tue Nov 14 22:28:51 2000
@@ -423,6 +423,7 @@
if (status) {
/* something went wrong */
up(&(us->current_urb_sem));
+ current->state = TASK_RUNNING;
remove_wait_queue(&wqh, &wait);
kfree(dr);
return status;
@@ -480,6 +481,7 @@
if (status) {
/* something went wrong */
up(&(us->current_urb_sem));
+ current->state = TASK_RUNNING;
remove_wait_queue(&wqh, &wait);
return status;
}
--- ./drivers/usb/usb.c.~1~ Tue Nov 14 14:21:38 2000
+++ ./drivers/usb/usb.c Tue Nov 14 22:27:22 2000
@@ -951,6 +951,7 @@
if (status) {
// something went wrong
usb_free_urb(urb);
+ current->state = TASK_RUNNING;
remove_wait_queue(&wqh, &wait);
return status;
}
@@ -961,6 +962,7 @@
} else
status = 1;

+ current->state = TASK_RUNNING;
remove_wait_queue(&wqh, &wait);

if (!status) {
--- ./drivers/usb/net1080.c.~1~ Sun Nov 12 00:22:26 2000
+++ ./drivers/usb/net1080.c Tue Nov 14 22:27:49 2000
@@ -653,6 +653,7 @@
dbg ("waited for %d urb completions", temp);
}
dev->wait = 0;
+ current->state = TASK_RUNNING;
remove_wait_queue (&unlink_wakeup, &wait);

mutex_unlock (&dev->mutex);
--- ./drivers/usb/usb-ohci.c.~1~ Tue Oct 31 12:58:00 2000
+++ ./drivers/usb/usb-ohci.c Tue Nov 14 22:28:15 2000
@@ -654,6 +654,7 @@
set_current_state(TASK_UNINTERRUPTIBLE);
while (timeout && (urb->status == USB_ST_URB_PENDING))
timeout = schedule_timeout (timeout);
+ current->state = TASK_RUNNING;
remove_wait_queue (&unlink_wakeup, &wait);
if (urb->status == USB_ST_URB_PENDING) {
err ("unlink URB timeout");
@@ -765,6 +766,7 @@
set_current_state(TASK_UNINTERRUPTIBLE);
while (timeout && dev->ed_cnt)
timeout = schedule_timeout (timeout);
+ current->state = TASK_RUNNING;
remove_wait_queue (&freedev_wakeup, &wait);
if (dev->ed_cnt) {
err ("free device %d timeout", usb_dev->devnum);
--- ./drivers/atm/atmtcp.c.~1~ Sat Jun 24 05:40:27 2000
+++ ./drivers/atm/atmtcp.c Tue Nov 14 22:29:32 2000
@@ -77,6 +77,7 @@
set_current_state(TASK_UNINTERRUPTIBLE);
schedule();
}
+ current->state = TASK_RUNNING;
remove_wait_queue(&vcc->sleep,&wait);
return error;
}
--- ./drivers/pcmcia/yenta.c.~1~ Tue Nov 7 21:04:48 2000
+++ ./drivers/pcmcia/yenta.c Tue Nov 14 22:29:54 2000
@@ -585,6 +585,7 @@
add_wait_queue(&socket->wait, &wait);
if (!socket->events)
schedule_timeout(HZ);
+ current->state = TASK_RUNNING;
remove_wait_queue(&socket->wait, &wait);
} while (!signal_pending(current));
MOD_DEC_USE_COUNT;
--- ./net/atm/signaling.c.~1~ Tue Jul 11 22:52:09 2000
+++ ./net/atm/signaling.c Tue Nov 14 22:40:26 2000
@@ -50,6 +50,7 @@
}
schedule();
}
+ current->state = TASK_RUNNING;
remove_wait_queue(&sigd_sleep,&wait);
#else
if (!sigd) {