I'm happy to implement SPACE(16) instead.
I believe the opcode for SPACE(16) is 0x91, but in
include/scsi/scsi_proto.h that value is listed as
SYNCHRONIZE_CACHE_16.
I couldn't figure out which was wrong, so I proposed this to at least
prevent the interface from doing the wrong thing.
On Tue, Jan 26, 2021 at 11:26 PM Martin K. Petersen
[off-list ref] wrote:
Patrick,
quoted
Values greater than 0x7FFFFF do not fit in the 24 bit big endian two's
complement integer for the underlying scsi SPACE(6) command.
I was hoping Kai would chime in.
However, since SPACE(6) has been deprecated for a while, I am not so
keen on blindly enforcing this in the ioctl interface. I would rather
see SPACE(16) support added and then have the supplied count value be
validated based on whether the 6 or 16 byte command is being issued to
the device.
--
Martin K. Petersen Oracle Linux Engineering