summaryrefslogtreecommitdiff
path: root/sys/scsi
AgeCommit message (Collapse)Author
2020-09-08If SCSI_IGNORE_ILLEGAL_REQUEST is set no error is returned from scsi_xs_sync()Kenneth R Westerback
when the request is unsupported. So check mode sense(6) and mode sense(10) results for valid headers before passing the results back. Avoid overwriting any error that was returned. ok jmatthew@
2020-09-05Rename SID_INQUIRY_HDR (a.k.a. 5) to more explicit SID_SCSI2_HDRLEN and use itKenneth R Westerback
to replace various uses of '5' when calculating the amount of data in the INQUIRY response. Matches up more naturally with SID_SCSI2_ALEN. Also use to fix SCSIDEBUG display of INQUIRY responses to show correct count of bytes received/available.
2020-09-02Add #define SID_SCSI2_RESPONSE 0x2 to allow elimination of another bunch ofKenneth R Westerback
magic numbers. As the nearby comment says '< 2 is obsolete. >2 is reserved'. So 0x2 is just right.
2020-09-01Rename [READ|WRITE]_BIG to [READ|WRITE]_10. Rename struct scsi_rw_big toKenneth R Westerback
struct scsi_rw_10. ok gnezdo@ jmatthew@ (who also did sparc64 compile test)
2020-08-30Compactify SDEV_/ADEV_ flags & quirks to eliminate the gaps in bit use and thusKenneth R Westerback
allow shrinking the names arrays.
2020-08-29More recent MMC specificiations add READ(12)/WRITE(12). So add cd_cmd_rw12()Kenneth R Westerback
and let cdstart() use it if the requested i/o is unable to fit into a READ(10). Certainly better than silently truncating the i/o into a READ(10)/WRITE(10).
2020-08-29Use ISSET() to check b_flags for B_READ.Kenneth R Westerback
2020-08-29Missing u_int -> u_int32_t chunks from previous.Kenneth R Westerback
2020-08-29Use u_int32_t for nsecs, making it crystal clear that the valuesKenneth R Westerback
are expected to fit into a 4-byte field.
2020-08-29Have [cd|sd]_cmd_rw[6|10|12|16] return the length of the created command andKenneth R Westerback
have the caller assign it to xs->cmdlen. Pass in xs->cmd instead of xs. A slightly cleaner API that provides the potential of detecting and reacting to a failure to create the desired command.
2020-08-28Shuffle [cd|sd]start code into closer alignment. Move the initialization of theKenneth R Westerback
xs fields to a more convenient location, shrinking upcoming diffs. Nuke some Captain Obvious comments.
2020-08-28Abstract cd_cmd_rw6() and cd_cmd_rw10() a la sd_cmd_rw6() and sd_cmd_rw10().Kenneth R Westerback
2020-08-28Nuke CDF_ANCIENT, SDF_ANCIENT SDEV_ONLYBIG and bogus check of SID_RelAdr inKenneth R Westerback
favour of simply using the device's claimed SCSI level of support. Except of course for ATAPI/USB devices which often don't claim anything. Keep assuming they are at least SCSI-2. Use consistant tests in sdminphys/cdminphys/sdstart/cdstart.
2020-08-26Remove needless uses of SDEV_ONLYBIG. It was always set when SDEV_UMASS was set,Kenneth R Westerback
and was always checked in concert with SDEV_ATAPI. Just rely on SDEV_ATAPI and SDEV_UMASS in all but the one place sd(4) where SDEV_ONLYBIG is set independently of SDEV_ATAPI/_UMASS. ok jmatthew@
2020-08-22The last timeout_add(sc_timeout) died in the great XS_NO_CCB purge of 2017. NukeKenneth R Westerback
pointless timeout_set(sc_timoeut) and timeout_del(sc_timeout) calls and the sc_timeout fields themselves.
2020-08-20Revert DYING. At least some USB memory sticks get very upset.Kenneth R Westerback
2020-08-19Replace last 2 'blah & (flag1 | flag2) == 0' with !ISSET(blah, (flag1 | flag2)).Kenneth R Westerback
2020-08-19Nuke SDF_DYING, CDF_DYING and ST_DYING flags. Use the scsi_link flagKenneth R Westerback
SDEV_S_DYING instead. Makes it clear that the scsi_link and the [cd|sd|st] device always agree on their state.
2020-08-18Try to avoid a theoretical infinite loop while detaching all the scsi_link's onKenneth R Westerback
the bus. Use SLIST_FOREACH_SAFE() rather than 'while (!SLIST_EMPTY())'' as there is a condition which would cause scsi_detach_link() to return without removing the scsi_link from the SLIST.
2020-08-16Don't include scsi_debug.h via scsiconf.h. Nobody but scsi/* should be using theKenneth R Westerback
contents thereof. Compile tests by martjn@ (alpha), visa@ (sgi) jmatthew@ (sparc64) aoyama@ (luna88k)
2020-08-15The last SET()s of CDF_WAITING, SDF_WAITING, and ST_WAITING died in the greatKenneth R Westerback
XS_NO_CCB purge of 2017. Nuke pointless ISSET()/CLR() checks and the #define's.
2020-08-14Redistribute and tweak the scsi_[attach|probe|detach]_[bus|target|lun]() code toKenneth R Westerback
make the three variants more similar and easier to understand. Ensures consistent error checks and eliminates pointless adapter_buswidth checks when processing the list of scsi_links.
2020-08-11Explicitly #include <scsi/scsi_debug.h> rather than assuming scsiconf.h will doKenneth R Westerback
it. Prepares for removal of #include <scsi/scsi_debug.h> from scsiconf.h as soon as the alpha tester digs out from hurricane to compile last untested files.
2020-08-10Minor code shuffle to get all *_activate(), *_probe() and *_detach() functionsKenneth R Westerback
nestled together. Rename scsibusprint() to scsibussubprint() since it is used with scsibussubmatch().
2020-08-09More code shuffling. Fix a rename missed in previous.Kenneth R Westerback
2020-08-09Shuffle functions and declarations around to more logical grouping. Nuke someKenneth R Westerback
leading whitespace. Rename some local functions.
2020-08-08scsi_link's are born knowing their bus. Use that instead of passing extraKenneth R Westerback
scsibus_softc pointers around.
2020-07-27Refactor scsi_show_flags() to allow 32-bit flags. Display unnamed flags as oneKenneth R Westerback
hex value after named flags. Make flag name arrays NULL terminated rathar than fixed size.
2020-07-27SDEV_2NDBUS is gone. Update flagnames[] appropriately.Kenneth R Westerback
2020-07-22Nuke unused struct scsi_link members of adapter softc's where theKenneth R Westerback
driver successfully compiles on one or more of amd64, i386, hppa.
2020-07-20Move remaining scsi bus initialization info from "prototype scsi link"Kenneth R Westerback
fields to struct scsibus_attach_args. Nuke the struct scsi_link * (saa_sc_link) in scaibus_attach_args. Explicitly initialize each field in scsibus_attach_args variables.
2020-07-19Move the adapter related items (luns, adapter, adapter_target,Kenneth R Westerback
adapter_buswidth, adapter_softc) from struct scsi_link to struct scsibus_attach_args. Additional compile tests by jmatthew@ (sparc64) and aoyam@ (luna88k).
2020-07-16Access scsibus_softc info (luns, adapter, adapter_target,Kenneth R Westerback
adapter_softc, adapter_buswidth) via link->bus rather than using copies currently residing in the link.
2020-07-16Beef up struct scsibus_softc to hold the information needed toKenneth R Westerback
initialize the scsi_link's on the bus. After sucking this information out of the "prototype" link provided by the scsibus_attach_arg, no need to keep a pointer to that prototype.
2020-07-05Nuke struct scsi_link's "scsibus" member. The two drivers using itKenneth R Westerback
(ahc(4) and qlw(4)) can just compare the values of the "bus" member directly. A slightly different path to the same result that matthew@ traversed in his work culminating in scsiconf.h r1.146.
2020-06-30Nuke unneeded 'sa_inqbuf' member of struct scsi_attach_args. It alwaysKenneth R Westerback
points to the inquiry data contained in the struct scsi_link pointed to by the other member, sa_sc_link.
2020-06-30Garbage collect SDEV_S_WAITING, last used in scsi_base.c r1.167 inKenneth R Westerback
2010. Part of matthew@'s reverted scsiconf.h r1.146.
2020-06-27Garbage collect SDEV_2NDBUS. Only used in isp(4) which was removed inKenneth R Westerback
2015 in favour of ql*(4).
2020-06-27No need to bzero()/memset() 'struct scsibus_attach_args' variablesKenneth R Westerback
immediately before initializing the only field in the struct.
2020-06-24Use SDEV_NO_ADAPTER_TARGET instead of the value that is beingKenneth R Westerback
aassigned to adapter_buswidth to indicate the adapter is not a target on the bus. ok dlg@ as part of a larger diff.
2020-06-24Adapters that do not appear as a target on the SCSI bus must setKenneth R Westerback
'adapter_target' to a value greater than or equal to 'adapater_buswidth' to allow all possible targets to be probed. Add SDEV_NO_ADAPTER_TARGET (0xffff), a value guaranteed to be greater than or equal to the u_int16_t 'adapter_buswidth'. ok dlg@ as part of a larger diff.
2020-03-12Pass scsi_mode_sense_buf pointers to scsi_mode_sense[_buf]() ratherKenneth R Westerback
than scsi_mode_header[_big] pointers to the same data. Continues the umtamgling and simplification of the mode sense code. CID 1491299 CID 1491297
2020-03-12Check for short mode sense error inside scsi_mode_sense_big()Kenneth R Westerback
rather than after the only invocation. No functional change.
2020-03-12Eliminate 'len' parameter from scsi_mode_sense[_big](). It'sKenneth R Westerback
always sizeof(struct scsi_mode_sense_buf). No functional change.
2020-03-11No need to pass 20000 to scsi_mode_sense[_big]() as the desiredKenneth R Westerback
xs->timeout. Just set xs->timeout to 20000 and drop the parameter. No functional change.
2020-03-10Access 4-byte address field with _4btol() not _8btol(), fixingKenneth R Westerback
detecton of a 0 value. CID 1488899
2020-02-20Relax the grip the dead hand of QBUS (a.k.a. MAXPHYS) has on theKenneth R Westerback
throat of physio(). Allows individual devices to eventually be modified to support larger physio() (a.k.a. 'raw') i/o's if they prove capable of them. No immediate functional change. Tested for many weeks by and ok robert@.
2020-02-06Try to reduce the lying, hyperbolic or obsolete commentary onKenneth R Westerback
the relationships between various scsi structs.
2020-02-05Ooops. Missed a file in nuke of scsi_minphys. mpath_minphys() needs toKenneth R Westerback
check dev_minphys for NULL before calling it.
2020-02-05Nuke unnecessary abstraction 'scsi_minphys()' which just callsKenneth R Westerback
'minphys()'. Just use & check for NULL instead, since 'minphys()' is always called on the code path ([cd|sd|st]minphys) that calls physio().