Date: Sun, 24 Sep 2000 21:07:15 -0400 (EDT) From: Michael Allman <msa@dinosauricon.com> To: Matt Dillon <dillon@earth.backplane.com> Cc: Warner Losh <imp@village.org>, BSD <bsd@shell-server.com>, stable@FreeBSD.ORG Subject: Re: Constant panics on 4.1-STABLE! Message-ID: <Pine.BSF.4.21.0009242052480.56502-100000@dinosaur.umbc.edu> In-Reply-To: <200009241600.e8OG0VF76919@earth.backplane.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 24 Sep 2000, Matt Dillon wrote: > :: > 132 /* > :: > 133 * Look up the address in the table for that Address Family > :: > 134 */ > :: > 135 if (rnh && (rn = rnh->rnh_matchaddr((caddr_t)dst, rnh)) && > :: > 136 ((rn->rn_flags & RNF_ROOT) == 0)) { > :: > :: C doesn't guarantee order of execution in if ( bleh && bleh && > :: bleh). It may very well evaluate it backwards, or from the inside out if > :: it wants. No? > : > :No. That's not right. It evaluates left to right. rnh is checked > :for null, then matchaddr is called and then rn->rn_flags is checked. > : > :Warner > > Yah. C definitely guarentees the order of execution for && and ||. The > moment a clause fails for an &&, the rest of the expression is skipped. > The moment a clause succeeds for an ||, the rest of the expression is skipped. I have had three more panics in the last two hours. I didn't get a crash dump on the first two (keyboard stuff again), but I got one on the last. I am omitting a stack trace because it looks the same as the others. I am still not certain whether it's a hardware problem or a FreeBSD problem. At any rate, I am about to plunk down a wad of cash (metaphorically speaking) for some new RAM. If anyone has had any insight into this problem, please let me know. Thanks, Michael To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0009242052480.56502-100000>