Date: Mon, 16 Mar 2009 15:53:30 -0400 From: Coleman Kane <cokane@FreeBSD.org> To: Sam Leffler <sam@freebsd.org> Cc: Bruce Simpson <bms@incunabulum.net>, current@freebsd.org, freebsd-net <net@freebsd.org> Subject: Re: IGMP+WiFi panic on recent kernel - in igmp_fasttimo() Message-ID: <1237233210.84180.20.camel@localhost> In-Reply-To: <49BC1C66.7030400@freebsd.org> References: <1236937253.2282.0.camel@localhost> <49BAEA9F.8020302@incunabulum.net> <49BB0D3E.2020306@incunabulum.net> <49BC1C66.7030400@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--=-jfxLpbIN2j5WK690VAs3 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable The crash that I am seeing (using if_ndis) occurs in igmp_fasttimo... This patch doesn't fix that, I'll get more info as soon as I can. On Sat, 2009-03-14 at 14:06 -0700, Sam Leffler wrote: > This patches avoids the crash. Not sure how ifma_protospec is supposed=20 > to be handled so I'm not committing it. >=20 > Sam >=20 > plain text document attachment (mcast.patch) > Index: in.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- in.c (revision 189750) > +++ in.c (working copy) > @@ -1040,7 +1040,8 @@ > */ > IF_ADDR_LOCK(ifp); > TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { > - if (ifma->ifma_addr->sa_family !=3D AF_INET) > + if (ifma->ifma_addr->sa_family !=3D AF_INET || > + ifma->ifma_protospec =3D=3D NULL) > continue; > inm =3D (struct in_multi *)ifma->ifma_protospec; > LIST_INSERT_HEAD(&purgeinms, inm, inm_link); > Index: igmp.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- igmp.c (revision 189750) > +++ igmp.c (working copy) > @@ -623,7 +623,8 @@ > if (igi->igi_version =3D=3D IGMP_VERSION_3) { > IF_ADDR_LOCK(ifp); > TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { > - if (ifma->ifma_addr->sa_family !=3D AF_INET) > + if (ifma->ifma_addr->sa_family !=3D AF_INET || > + ifma->ifma_protospec =3D=3D NULL) > continue; > inm =3D (struct in_multi *)ifma->ifma_protospec; > if (inm->inm_state =3D=3D IGMP_LEAVING_MEMBER) { > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org= " --=20 Coleman Kane --=-jfxLpbIN2j5WK690VAs3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEABECAAYFAkm+rjIACgkQcMSxQcXat5ceLwCeKuZZnl8aE59M5vaukNPp2Atk yPYAn0kq9fciOvjO/vKZj+8zh6qxsTXL =hjdk -----END PGP SIGNATURE----- --=-jfxLpbIN2j5WK690VAs3--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1237233210.84180.20.camel>