PERFORCE change 101501 for review

John Baldwin jhb at freebsd.org
Fri Jul 14 14:32:54 UTC 2006


On Friday 14 July 2006 03:50, Hans Petter Selasky wrote:
> On Friday 14 July 2006 05:11, Scott Long wrote:
> > http://perforce.freebsd.org/chv.cgi?CH=101501
> >
> > Change 101501 by scottl at scottl-x64 on 2006/07/14 03:10:59
> >
> >  Re-allow anonymous CCB's.
> >
> > Affected files ...
> >
> > .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#41 edit
> > .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_low.c#9 edit
> >
> > Differences ...
> >
> > ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#41 (text+ko)
> > ====
> >
> > @@ -4981,9 +4981,11 @@
> >   union ccb *new_ccb;
> >
> >   new_ccb = malloc(sizeof(*new_ccb), M_CAMXPT, M_WAITOK);
> > - callout_handle_init(&new_ccb->ccb_h.timeout_ch);
> > - callout_init(&new_ccb->ccb_h.callout,
> > -     (sim->flags & CAM_SIM_MPSAFE) ? 1 : 0);
> > + if (sim != NULL) {
> > +  callout_handle_init(&new_ccb->ccb_h.timeout_ch);
> > +  callout_init(&new_ccb->ccb_h.callout,
> > +      (sim->flags & CAM_SIM_MPSAFE) ? 1 : 0);
> > + }
> >   return (new_ccb);
> >  }
> >
> 
> Shouldn't you use "callout_init_mtx()", when dropping Giant, to avoid timout 
> after timeout stop situations ?

Depends.  callout_init_mtx() implies MPSAFE, and Scott only wants to have 
MPSAFE callouts with MPSAFE sims.  It is true that callout_init_mtx() makes 
callout_stop() race-free when you hold the mutex though which is nice.

-- 
John Baldwin


More information about the p4-projects mailing list