Re: [PATCH] Fix OACTIVE for an(4)

From: Adrian Chadd <adrian_at_freebsd.org>
Date: Wed, 1 Oct 2014 11:58:38 -0700
Hi,

On 1 October 2014 07:14, John Baldwin <jhb_at_freebsd.org> wrote:
> This small patch correctly sets OACTIVE when an(4) gets backed up.  Right now
> I believe it will never set the flag.  It is only an optimization, it should
> not affect correctness.
>
> Index: an/if_an.c
> ===================================================================
> --- an/if_an.c  (revision 270968)
> +++ an/if_an.c  (working copy)
> _at__at_ -2906,11 +2906,11 _at__at_
>                 CSR_WRITE_2(sc, AN_INT_EN(sc->mpi350), AN_INTRS(sc->mpi350));
>         }
>
> -       if (m0 != NULL)
> +       if (sc->an_rdata.an_tx_prod != idx) {
>                 ifp->if_drv_flags |= IFF_DRV_OACTIVE;
> +               sc->an_rdata.an_tx_prod = idx;
> +       }
>
> -       sc->an_rdata.an_tx_prod = idx;
> -
>         return;
>  }

I haven't looked at the rest of the driver; is everything else around
OACTIVE locked correctly and consistently?

There's no single-entry into if_start(). It can be called from
multiple paths at the same time.


-a
Received on Wed Oct 01 2014 - 16:58:41 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:52 UTC