ok
On 20/04/2011, at 12:54 AM, Kenneth R Westerback wrote:
> gdt(4) man page says 'transparent raw SCSI mode' is unsupported.
> The code just returns errors to any attempts to submit i/o. I'm
> pretty sure nobody is going to add support so eliminate the framework
> for it.
>
> Shrinks the iopool diff.
>
> Any dissenting voices?
>
> .... Ken
>
> Index: share/man/man4/gdt.4
> ===================================================================
> RCS file: /cvs/src/share/man/man4/gdt.4,v
> retrieving revision 1.30
> diff -u -p -r1.30 gdt.4
> --- share/man/man4/gdt.4 1 Apr 2011 19:13:58 -0000 1.30
> +++ share/man/man4/gdt.4 19 Apr 2011 13:50:43 -0000
> @@ -145,7 +145,7 @@ inspired by the Linux driver by
> .Sh BUGS
> An ISA & EISA front-end is needed.
> .Pp
> -The driver does not yet support transparent raw SCSI mode.
> +The driver does not support transparent raw SCSI mode.
> .Pp
> It would be nice to configure the RAID units after boot
> but the information on how to do that is not public.
> Index: sys/dev/ic/gdt_common.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/ic/gdt_common.c,v
> retrieving revision 1.55
> diff -u -p -r1.55 gdt_common.c
> --- sys/dev/ic/gdt_common.c 12 Oct 2010 00:53:32 -0000 1.55
> +++ sys/dev/ic/gdt_common.c 19 Apr 2011 13:50:44 -0000
> @@ -82,7 +82,6 @@ int gdt_ioctl_disk(struct gdt_softc *, s
> int gdt_ioctl_alarm(struct gdt_softc *, struct bioc_alarm *);
> int gdt_ioctl_setstate(struct gdt_softc *, struct bioc_setstate *);
> #endif /* NBIO > 0 */
> -void gdt_raw_scsi_cmd(struct scsi_xfer *);
> void gdt_scsi_cmd(struct scsi_xfer *);
> void gdt_start_ccbs(struct gdt_softc *);
> int gdt_sync_event(struct gdt_softc *, int, u_int8_t,
> @@ -99,10 +98,6 @@ struct scsi_adapter gdt_switch = {
> gdt_scsi_cmd, gdtminphys, 0, 0,
> };
>
> -struct scsi_adapter gdt_raw_switch = {
> - gdt_raw_scsi_cmd, gdtminphys, 0, 0,
> -};
> -
> int gdt_cnt = 0;
> u_int8_t gdt_polling;
> u_int8_t gdt_from_wait;
> @@ -484,26 +479,6 @@ gdt_attach(struct gdt_softc *sc)
>
> config_found(&sc->sc_dev, &saa, scsiprint);
>
> - sc->sc_raw_link = malloc(sc->sc_bus_cnt * sizeof (struct scsi_link),
> - M_DEVBUF, M_NOWAIT | M_ZERO);
> - if (sc->sc_raw_link == NULL)
> - panic("gdt_attach");
> -
> - for (i = 0; i < sc->sc_bus_cnt; i++) {
> - /* Fill in the prototype scsi_link. */
> - sc->sc_raw_link[i].adapter_softc = sc;
> - sc->sc_raw_link[i].adapter = &gdt_raw_switch;
> - sc->sc_raw_link[i].adapter_target = 7;
> - sc->sc_raw_link[i].openings = 4; /* XXX a guess */
> - sc->sc_raw_link[i].adapter_buswidth =
> - (sc->sc_class & GDT_FC) ? GDT_MAXID : 16; /* XXX */
> -
> - bzero(&saa, sizeof(saa));
> - saa.saa_sc_link = &sc->sc_raw_link[i];
> -
> - config_found(&sc->sc_dev, &saa, scsiprint);
> - }
> -
> gdt_polling = 0;
> return (0);
> }
> @@ -987,43 +962,6 @@ gdt_internal_cache_cmd(struct scsi_xfer
> }
>
> xs->error = XS_NOERROR;
> -}
> -
> -/* Start a raw SCSI operation */
> -void
> -gdt_raw_scsi_cmd(struct scsi_xfer *xs)
> -{
> - struct scsi_link *link = xs->sc_link;
> - struct gdt_softc *sc = link->adapter_softc;
> - struct gdt_ccb *ccb;
> - int s;
> -
> - GDT_DPRINTF(GDT_D_CMD, ("gdt_raw_scsi_cmd "));
> -
> - if (xs->cmdlen > 12 /* XXX create #define */) {
> - GDT_DPRINTF(GDT_D_CMD, ("CDB too big %p ", xs));
> - bzero(&xs->sense, sizeof(xs->sense));
> - xs->sense.error_code = SSD_ERRCODE_VALID | SSD_ERRCODE_CURRENT;
> - xs->sense.flags = SKEY_ILLEGAL_REQUEST;
> - xs->sense.add_sense_code = 0x20; /* illcmd, 0x24 illfield */
> - xs->error = XS_SENSE;
> - scsi_done(xs);
> - return;
> - }
> -
> - if ((ccb = gdt_get_ccb(sc, xs->flags)) == NULL) {
> - GDT_DPRINTF(GDT_D_CMD, ("no ccb available for %p ", xs));
> - xs->error = XS_DRIVER_STUFFUP;
> - scsi_done(xs);
> - return;
> - }
> -
> - xs->error = XS_DRIVER_STUFFUP;
> - s = splbio();
> - scsi_done(xs);
> - gdt_free_ccb(sc, ccb);
> -
> - splx(s);
> }
>
> void
> Index: sys/dev/ic/gdtvar.h
> ===================================================================
> RCS file: /cvs/src/sys/dev/ic/gdtvar.h,v
> retrieving revision 1.17
> diff -u -p -r1.17 gdtvar.h
> --- sys/dev/ic/gdtvar.h 12 Aug 2009 17:51:33 -0000 1.17
> +++ sys/dev/ic/gdtvar.h 19 Apr 2011 13:50:44 -0000
> @@ -268,7 +268,6 @@ struct gdt_softc {
> struct device sc_dev;
> void *sc_ih;
> struct scsi_link sc_link; /* Virtual SCSI bus for cache devs */
> - struct scsi_link *sc_raw_link; /* Raw SCSI busses */
>
> int sc_class; /* Controller class */
> #define GDT_ISA 0x01