Detect unsupported PREVENT ALLOW MEDIUM REMOVAL and SYNCHRONIZE CACHE(10)
to not spam devices with useless commands and logs with errors.
This commit is contained in:
parent
6e660824a8
commit
196619d9cc
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=253721
@ -535,6 +535,7 @@ static struct da_quirk_entry da_quirk_table[] =
|
||||
{T_DIRECT, SIP_MEDIA_REMOVABLE, "TOSHIBA", "TransMemory",
|
||||
"*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE
|
||||
},
|
||||
#if 0
|
||||
{
|
||||
/*
|
||||
* PNY USB Flash keys
|
||||
@ -543,6 +544,7 @@ static struct da_quirk_entry da_quirk_table[] =
|
||||
{T_DIRECT, SIP_MEDIA_REMOVABLE, "*" , "USB DISK*",
|
||||
"*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE
|
||||
},
|
||||
#endif
|
||||
{
|
||||
/*
|
||||
* Genesys 6-in-1 Card Reader
|
||||
@ -2786,6 +2788,28 @@ cmd6workaround(union ccb *ccb)
|
||||
return (0);
|
||||
}
|
||||
|
||||
/* Detect unsupported PREVENT ALLOW MEDIUM REMOVAL. */
|
||||
if ((ccb->ccb_h.flags & CAM_CDB_POINTER) == 0 &&
|
||||
(*cdb == PREVENT_ALLOW) &&
|
||||
(softc->quirks & DA_Q_NO_PREVENT) == 0) {
|
||||
if (bootverbose)
|
||||
xpt_print(ccb->ccb_h.path,
|
||||
"PREVENT ALLOW MEDIUM REMOVAL not supported.\n");
|
||||
softc->quirks |= DA_Q_NO_PREVENT;
|
||||
return (0);
|
||||
}
|
||||
|
||||
/* Detect unsupported SYNCHRONIZE CACHE(10). */
|
||||
if ((ccb->ccb_h.flags & CAM_CDB_POINTER) == 0 &&
|
||||
(*cdb == SYNCHRONIZE_CACHE) &&
|
||||
(softc->quirks & DA_Q_NO_SYNC_CACHE) == 0) {
|
||||
if (bootverbose)
|
||||
xpt_print(ccb->ccb_h.path,
|
||||
"SYNCHRONIZE CACHE(10) not supported.\n");
|
||||
softc->quirks |= DA_Q_NO_SYNC_CACHE;
|
||||
return (0);
|
||||
}
|
||||
|
||||
/* Translation only possible if CDB is an array and cmd is R/W6 */
|
||||
if ((ccb->ccb_h.flags & CAM_CDB_POINTER) != 0 ||
|
||||
(*cdb != READ_6 && *cdb != WRITE_6))
|
||||
|
Loading…
Reference in New Issue
Block a user