Date: Sun, 2 Aug 2009 22:56:10 +0100 (BST) From: Robert Watson <rwatson@FreeBSD.org> To: Russell Cattelan <cattelan@thebarn.com> Cc: FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: small fix to netatalk Message-ID: <alpine.BSF.2.00.0908022235050.1507@fledge.watson.org> In-Reply-To: <4A7320E1.4050308@thebarn.com> References: <4A7320E1.4050308@thebarn.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 31 Jul 2009, Russell Cattelan wrote:
> starting up netatalk would panic the system with a lock not locked panic.
>
> It appears somebody reversed the 2 lock statements in netatalk/at_control.c
Indeed -- almost certainly me, although there must be some differences in our
netatalk setups as my box didn't panic in testing :-). I'll give it a more
thorough spin locally and request RE permission to merge the patch tomorrow.
Thanks!
Robert N M Watson
Computer Laboratory
University of Cambridge
>
> diff --git a/sys/netatalk/at_control.c b/sys/netatalk/at_control.c
> index 5193d66..b2d8422 100644
> - --- a/sys/netatalk/at_control.c
> +++ b/sys/netatalk/at_control.c
> @@ -276,7 +276,7 @@ at_control(struct socket *so, u_long cmd, caddr_t
> data, struct ifnet *ifp,
> * If the request is specifying phase 1, then
> * only look at a phase one address
> */
> - - AT_IFADDR_RUNLOCK();
> + AT_IFADDR_RLOCK();
> for (oaa = aa; aa; aa = TAILQ_NEXT(aa, aa_link)) {
> if (aa->aa_ifp == ifp &&
> (aa->aa_flags & AFA_PHASE2) == 0)
> @@ -286,7 +286,7 @@ at_control(struct socket *so, u_long cmd, caddr_t
> data, struct ifnet *ifp,
> ifa_free(&oaa->aa_ifa);
> if (aa != NULL && oaa != aa)
> ifa_ref(&aa->aa_ifa);
> - - AT_IFADDR_RLOCK();
> + AT_IFADDR_RUNLOCK();
> } else {
> struct at_ifaddr *oaa;
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.7 (Darwin)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFKcyDhNRmM+OaGhBgRAnDKAJ0Ys2GMVJphbq6Qdgq6cvj85iKShwCfQsAE
> P95+NxdFPwEjB/r0yQbTris=
> =K0G2
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> 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"
>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.0908022235050.1507>
