Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/dev/pci



> Date: Thu, 2 Feb 2017 03:57:21 +0000
> From: coypu%SDF.ORG@localhost
> 
> On Thu, Feb 02, 2017 at 03:41:22AM +0000, Jonathan A. Kollasch wrote:
> > @@ -432,6 +433,10 @@ wpi_detach(device_t self, int flags __un
> >  		pci_intr_disestablish(sc->sc_pct, sc->sc_ih);
> >  		sc->sc_ih = NULL;
> >  	}
> > +	if (sc->sc_pihp != NULL) {
> > +		pci_intr_release(sc->sc_pct, sc->sc_pihp, 1);
> > +		sc->sc_pihp = NULL;
> > +	}
> >  	mutex_enter(&sc->sc_rsw_mtx);
> >  	sc->sc_dying = 1;
> >  	cv_signal(&sc->sc_rsw_cv);
> > 
> 
> hmm, not introduced by you now, but is it safe that this function is mutex_entering so late?
> shouldn't it mutex enter and set sc_dying first thing?

In this case, the purpose is of setting sc->sc_dying to cause
wpi_rsw_thread to terminate.  The only interesting thing that thread
does is wpi_getrfkill.  All that wpi_getrfkill uses is the device
register mapping (via wpi_mem_lock and wpi_mem_read) and sc->sc_rsw,
which wpi_detach tears down only after wpi_rsw_thread has terminated.
So I don't think there's a problem with that ordering.


Home | Main Index | Thread Index | Old Index