small fix to netatalk

Robert Watson rwatson at FreeBSD.org
Sun Aug 2 21:56:10 UTC 2009


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 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
>


More information about the freebsd-current mailing list