Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Oct 2014 12:13:28 +0400
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        John Baldwin <jhb@freebsd.org>
Cc:        Adrian Chadd <adrian@freebsd.org>, freebsd-current <freebsd-current@freebsd.org>
Subject:   Re: [PATCH] Fix OACTIVE for an(4)
Message-ID:  <20141003081328.GZ73266@FreeBSD.org>
In-Reply-To: <201410021116.27583.jhb@freebsd.org>
References:  <2113392.UOaBFTpimf@ralph.baldwin.cx> <CAJ-VmomwiRRfHAGMn6onqQMXBEze40Nmyqya-5v8wMgZFC7iBg@mail.gmail.com> <201410021116.27583.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Oct 02, 2014 at 11:16:27AM -0400, John Baldwin wrote:
J> > I haven't looked at the rest of the driver; is everything else around
J> > OACTIVE locked correctly and consistently?
J> 
J> As well as OACTIVE is for any other driver.

Let me jump into this topic and discuss the if_drv_flags :)

It seems to me that this in general was a wrong concept, both
IFF_DRV_OACTIVE and IFF_DRV_RUNNING. The internal state of
the driver can be known only to the driver itself and should
be stored in the softc, covered with internal lock.

There is simply no way to racelessly tell the state from the
outside, without obtaining driver lock.

In my ifnet plans I am considering to remove if_drv_flags.
Can anyone convince me that this is a wrong idea and they
should be kept?

-- 
Totus tuus, Glebius.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20141003081328.GZ73266>