Path: utzoo!news-server.csri.toronto.edu!rutgers!ucsd!dog.ee.lbl.gov!elf.ee.lbl.gov!torek From: torek@elf.ee.lbl.gov (Chris Torek) Newsgroups: comp.unix.wizards Subject: Re: What causes panic: rcv_xmitbuf ? Message-ID: <10961@dog.ee.lbl.gov> Date: 15 Mar 91 00:37:03 GMT References: <147432@pyramid.pyramid.com> <1991Mar13.181654.15121@sci.ccny.cuny.edu> Reply-To: torek@elf.ee.lbl.gov (Chris Torek) Organization: Lawrence Berkeley Laboratory, Berkeley Lines: 87 X-Local-Date: Thu, 14 Mar 91 16:37:03 PST In article <1991Mar13.181654.15121@sci.ccny.cuny.edu> dan@sci.ccny.cuny.edu (Dan Schlitt) writes: >We are running 4.3BSD Unix with the couple year old now TCP/IP mods on >a Vax 780. Recently we have been getting infrequent but irritating >panics with the message "panic: rcv_xmitbuf". You have a DEUNA or DELUA, and you have not applied the following patch: *** if_uba.c.7.1 Thu Mar 14 16:32:55 1991 --- if_uba.c.7.5.1.1 Thu Mar 14 16:33:09 1991 *************** *** 4,8 **** * specifies the terms and conditions for redistribution. * ! * @(#)if_uba.c 7.1 (Berkeley) 6/5/86 */ --- 4,8 ---- * specifies the terms and conditions for redistribution. * ! * @(#)if_uba.c 7.5.1.1 (Berkeley) 6/4/87 */ *************** *** 98,104 **** bad: while (--nw >= 0) ! ubarelse(ifu->iff_uban, &ifr[nw].ifrw_info); while (--nr >= 0) ! ubarelse(ifu->iff_uban, &ifw[nr].ifw_info); m_pgfree(cp, (nr + nw) * ncl); ifr[0].ifrw_addr = 0; --- 98,104 ---- bad: while (--nw >= 0) ! ubarelse(ifu->iff_uban, &ifw[nw].ifw_info); while (--nr >= 0) ! ubarelse(ifu->iff_uban, &ifr[nr].ifrw_info); m_pgfree(cp, (nr + nw) * ncl); ifr[0].ifrw_addr = 0; *************** *** 274,278 **** struct mbuf **mprev; register i; - int t; char *cp; --- 274,277 ---- *************** *** 281,285 **** i--; ifw->ifw_xswapd &= ~(1<ifw_xtofree; for (m = ifw->ifw_xtofree; m && m->m_next; m = m->m_next) --- 280,283 ---- *************** *** 286,298 **** mprev = &m->m_next; if (m == NULL) ! panic("rcv_xmtbuf"); bcopy(mtod(m, caddr_t), cp, CLBYTES); (void) m_free(m); *mprev = NULL; - for (t = 0; t < CLSIZE; t++) { - ifw->ifw_mr[i] = ifw->ifw_wmap[i]; - i++; - } } } --- 284,295 ---- mprev = &m->m_next; if (m == NULL) ! break; bcopy(mtod(m, caddr_t), cp, CLBYTES); (void) m_free(m); *mprev = NULL; } + ifw->ifw_xswapd = 0; + for (i = 0; i < ifw->ifw_nmr; i++) + ifw->ifw_mr[i] = ifw->ifw_wmap[i]; } -- In-Real-Life: Chris Torek, Lawrence Berkeley Lab EE div (+1 415 486 5427) Berkeley, CA Domain: torek@ee.lbl.gov