Lukas Ertl wrote this message on Mon, Jul 28, 2003 at 01:11 +0200: > On Sun, 27 Jul 2003, John-Mark Gurney wrote: > Then I have no explanation. I'm running the box with a WiFi card, > generating lots of network traffic, and the box is running fine, no > panics, and low devbuf allocation. I'm running the box with the USB > Bluetooth dongle, generating much less traffic (it's just a 9.6kbit GSM > link), and the box panics within half an hour in kmem_malloc, with devbuf > allocation up to 74MB. It must be either in the Bluetooth code or in the > USB code.
Hmm. this is wierd, it appears to be a bug in the Netgraph code. There is a bit of code that allocates memory for the data, and then promptly overwrites the malloc w/ data from the mbuf. Try the attached patch. This could VERY well crash your machine as I don't know mbuf code very well. Thanks. -- John-Mark Gurney Voice: +1 415 225 5579 "All that I will do, has been done, All that I have, has not."
Index: ng_device.c =================================================================== RCS file: /home/ncvs/src/sys/netgraph/ng_device.c,v retrieving revision 1.3 diff -u -u -r1.3 ng_device.c --- ng_device.c 3 Mar 2003 12:15:52 -0000 1.3 +++ ng_device.c 28 Jul 2003 00:47:30 -0000 @@ -360,12 +360,6 @@ return(-1); } - buffer = malloc(sizeof(char)*m->m_len, M_DEVBUF, M_NOWAIT | M_ZERO); - if(buffer == NULL) { - printf("%s(): ERROR: buffer malloc failed\n",__func__); - return(-1); - } - buffer = mtod(m,char *); if( (connection->loc+m->m_len) < NGD_QUEUE_SIZE) { @@ -374,7 +368,8 @@ } else printf("%s(): queue full, first read out a bit\n",__func__); - free(buffer,M_DEVBUF); + /* XXX - free chain? */ + m_free(m); return(0); }
_______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "[EMAIL PROTECTED]"