Re: cvs commit: src/sys/dev/ata atapi-cd.c atapi-cd.h

From: Scott Long <>
Date: Fri, 16 Nov 2007 09:15:28 -0700
SXren Schmidt wrote:
> sos         2007-10-26 08:59:24 UTC
>   FreeBSD src repository
>   Modified files:
>     sys/dev/ata          atapi-cd.c atapi-cd.h 
>   Log:
>   Update the way we get the mode pages on probe.
>   Revision  Changes    Path
>   1.194     +22 -25    src/sys/dev/ata/atapi-cd.c
>   1.47      +1 -0      src/sys/dev/ata/atapi-cd.h

Just curious, what was the motivation for changing from doing a
TUR to doing a MODE_SENSE in g_access?  Your new code now relies
on what I'd consider is a fairly obscure feature of the SFF-8020i
spec, and one that contradicts the MMC and SPC specs that are now
used as the normative references for packet commands.  There's at
least once case, the virtual CDROM emulator in Parallels, that
appears not to support this feature, and I'd bet pretty heavily
that there are a number of real devices that won't support it

Without reverting to the old TUR code, an easy way forward is to
not fail the g_access command for the MST_FMT_NONE case.  This is
generally incorrect anyways as it just means that the device can't
specifically identify the media though it knows that the media is
inserted and valid.  Since this constant evaluates to 0x00, ignoring
it will also allow devices that don't support it to still work.  The
only side effect is that devices that don't support it will also not
be able to report MST_NO_DISC.  These devices will get handled later
as a side effect of reporting a bogus media size.

Ultimately, I do think that the code needs to go back to using a TUR
and interpreting sense, asc, and ascq codes correctly.  The code prior
to 10/26 looks like it does this, so again I'm curious as to what
motivated the change.

Received on Fri Nov 16 2007 - 16:15:47 UTC