Date: Wed, 3 Jul 2013 07:43:49 +0200 From: Andre Albsmeier <Andre.Albsmeier@siemens.com> To: "Kenneth D. Merry" <ken@freebsd.org> Cc: "src-committers@freebsd.org" <src-committers@freebsd.org>, "asomers@freebsd.org" <asomers@freebsd.org>, "Albsmeier, Andre" <andre.albsmeier@siemens.com>, "svn-src-stable@freebsd.org" <svn-src-stable@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-stable-9@freebsd.org" <svn-src-stable-9@freebsd.org>, "gibbs@freebsd.org" <gibbs@freebsd.org> Subject: Re: svn commit: r252214 - in stable/9: bin/chio sys/cam/scsi sys/sys Message-ID: <20130703054349.GA13656@bali> In-Reply-To: <20130703052236.GA65730@nargothrond.kdm.org> References: <201306252143.r5PLhoM0064338@svn.freebsd.org> <20130702055333.GA2729@bali> <20130703052236.GA65730@nargothrond.kdm.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 03-Jul-2013 at 07:22:36 +0200, Kenneth D. Merry wrote: > On Tue, Jul 02, 2013 at 07:53:33 +0200, Andre Albsmeier wrote: > > On Tue, 25-Jun-2013 at 23:43:50 +0200, Kenneth D. Merry wrote: > > > Author: ken > > > Date: Tue Jun 25 21:43:49 2013 > > > New Revision: 252214 > > > URL: http://svnweb.freebsd.org/changeset/base/252214 > > > > Hi Ken, > > > > > Log: > > > MFC: 249658, 249701 > > > > > > Update chio(1) and ch(4) to support reporting element designators. > > > > > > This allows mapping a tape drive in a changer (as reported by > > > 'chio status') to a sa(4) driver instance by comparing the > > > serial numbers. > > > > > > The designators can be ASCII (which is printed out directly), binary > > > (which is printed in hex format) or UTF-8, which is printed in either > > > native UTF-8 format if the terminal can support it, or in %XX notation > > > for non-ASCII characters. Thanks to Hiroki Sato <hrs@> for the > > > explanation and example UTF-8 printing code. > > > > > > chio.h: Modify the changer_element_status structure to add new > > > fields and definitions from the SMC3r16 spec. > > > > > > Rename the original CHIOGSTATUS ioctl to OCHIOGTATUS and > > > define a new CHIOGSTATUS ioctl. > > > > > > Clean up some tab/space issues. > > > > > > chio.c: For the 'status' subcommand, print the designator field > > > if it is supplied by a device. > > > > > > scsi_ch.h: Add new flags for DVCID and CURDATA to the READ > > > ELEMENT STATUS command structure. > > > > > > Add a read_element_status_device_id structure > > > for the data fields in the new standard. Add new > > > unions, dt_or_obsolete and voltage_devid, to hold > > > and address data from either SCSI-2 or newer devices. > > > > > > scsi_ch.c: Implement support for fetching device IDs with READ > > > ELEMENT STATUS data. > > > > > > Add new arguments to scsi_read_element_status() to > > > allow the user to request the DVCID and CURDATA bits. > > > > This broke "chio status" when talking to my QUALSTAR TLS-8211 library: > > > > Jul 2 07:08:22 <kern.crit> server kernel: (ch0:ahd3:0:1:0): READ ELEMENT STATUS. CDB: b8 10 fd e8 00 01 03 00 04 00 00 00 > > Jul 2 07:08:22 <kern.crit> server kernel: (ch0:ahd3:0:1:0): CAM status: SCSI Status Error > > Jul 2 07:08:22 <kern.crit> server kernel: (ch0:ahd3:0:1:0): SCSI status: Check Condition > > Jul 2 07:08:22 <kern.crit> server kernel: (ch0:ahd3:0:1:0): SCSI sense: ILLEGAL REQUEST asc:24,0 (Invalid field in CDB) > > Jul 2 07:08:22 <kern.crit> server kernel: (ch0:ahd3:0:1:0): Command byte 6 is invalid > > Jul 2 07:08:22 <kern.crit> server kernel: (ch0:ahd3:0:1:0): Error 22, Unretryable error > > > > scsi_cmd->flags (Byte 6) must be zero for this library so I had to use > > this workaround to make it work again until a better solution is available: > > > > --- sys/cam/scsi/scsi_ch.c.ORI 2013-06-26 13:38:54.000000000 +0200 > > +++ sys/cam/scsi/scsi_ch.c 2013-07-02 07:42:24.000000000 +0200 > > @@ -1245,8 +1245,8 @@ > > /* tag_action */ MSG_SIMPLE_Q_TAG, > > /* voltag */ want_voltags, > > /* sea */ softc->sc_firsts[chet], > > - /* dvcid */ 1, > > - /* curdata */ 1, > > + /* dvcid */ 0, > > + /* curdata */ 0, > > /* count */ 1, > > /* data_ptr */ data, > > /* dxfer_len */ 1024, > > @@ -1284,8 +1284,8 @@ > > /* voltag */ want_voltags, > > /* sea */ softc->sc_firsts[chet] > > + cesr->cesr_element_base, > > - /* dvcid */ 1, > > - /* curdata */ 1, > > + /* dvcid */ 0, > > + /* curdata */ 0, > > /* count */ cesr->cesr_element_count, > > /* data_ptr */ data, > > /* dxfer_len */ size, > > > > -Andre > > Oops, sorry. > > We need to check the SCSI version to see whether to set those bits, and > also fall back in case it doesn't work. > > I am on vacation and have very spotty net access. I can't do anything > about it until I get back next week. > > Justin and Alan (CCed) can work on the fix, though. Take your time, for me it's working right now with the above patch... -Andre > > Ken > -- > Kenneth Merry > ken@FreeBSD.ORG > -- Linux: Sozialismus, der nicht funktioniert
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130703054349.GA13656>