Last call for preemptive testers, otherwise ahc(4) users will get to test it in tree! :)
On Mon, Jun 27, 2011 at 10:52:40PM -0700, Matthew Dempsky wrote: > On Thu, Jun 23, 2011 at 11:33:53AM -0700, Matthew Dempsky wrote: > > Diff below cleans up ahc(4) to use scsi_link::bus instead of > > (mis)using scsi_link::scsibus. > > > > If you have an ahc(4) (particularly a dual-channel one), I'd > > appreciate test reports + dmesg. (As long as your devices still show > > up, then it's working.) > > Haven't had any feedback on this diff yet. Potential testers, please > find a revised version of this diff below. > > This version uses the SDEV_2NDBUS flag like isp(4), instead of the > hack I had before. I don't particularly like this approach either, > but at least by doing the same thing as isp(4), it means only one hack > I don't like rather than two. ;) > > Anyway, this is blocking some other SCSI cleanups I'd like to do, so > please test and report back if you have an ahc(4). > > Thanks! > > > Index: ic/aic7xxx_openbsd.c > =================================================================== > RCS file: /home/mdempsky/anoncvs/cvs/src/sys/dev/ic/aic7xxx_openbsd.c,v > retrieving revision 1.48 > diff -u -p -r1.48 aic7xxx_openbsd.c > --- ic/aic7xxx_openbsd.c 28 Jun 2010 18:31:02 -0000 1.48 > +++ ic/aic7xxx_openbsd.c 28 Jun 2011 05:00:09 -0000 > @@ -94,6 +94,7 @@ ahc_attach(struct ahc_softc *ahc) > /* Configure the second scsi bus */ > ahc->sc_channel_b = ahc->sc_channel; > ahc->sc_channel_b.adapter_target = ahc->our_id_b; > + ahc->sc_channel_b.flags |= SDEV_2NDBUS; > } > > #ifndef DEBUG > Index: ic/aic7xxx_openbsd.h > =================================================================== > RCS file: /home/mdempsky/anoncvs/cvs/src/sys/dev/ic/aic7xxx_openbsd.h,v > retrieving revision 1.19 > diff -u -p -r1.19 aic7xxx_openbsd.h > --- ic/aic7xxx_openbsd.h 15 Sep 2007 10:10:37 -0000 1.19 > +++ ic/aic7xxx_openbsd.h 28 Jun 2011 04:45:54 -0000 > @@ -88,7 +88,7 @@ > /****************************** Platform Macros > *******************************/ > > #define SCSI_IS_SCSIBUS_B(ahc, sc_link) \ > - ((sc_link)->scsibus == (ahc)->sc_channel_b.scsibus) > + (((sc_link)->flags & SDEV_2NDBUS) != 0) > #define SCSI_SCSI_ID(ahc, sc_link) \ > (SCSI_IS_SCSIBUS_B(ahc, sc_link) ? ahc->our_id_b : ahc->our_id) > #define SCSI_CHANNEL(ahc, sc_link) \ > Index: pci/ahc_pci.c > =================================================================== > RCS file: /home/mdempsky/anoncvs/cvs/src/sys/dev/pci/ahc_pci.c,v > retrieving revision 1.53 > diff -u -p -r1.53 ahc_pci.c > --- pci/ahc_pci.c 13 May 2008 02:24:08 -0000 1.53 > +++ pci/ahc_pci.c 28 Jun 2011 04:59:51 -0000 > @@ -737,12 +737,6 @@ ahc_pci_attach(parent, self, aux) > for (i = 0; i < AHC_NUM_TARGETS; i++) > TAILQ_INIT(&ahc->untagged_queues[i]); > > - /* > - * SCSI_IS_SCSIBUS_B() must returns false until sc_channel_b > - * has been properly initialized. XXX Breaks if >254 scsi buses. > - */ > - ahc->sc_channel_b.scsibus = 0xff; > - > ahc->dev_softc = pa; > > ahc_set_name(ahc, ahc->sc_dev.dv_xname);
