This patchset extends the SCSI generic (sg) driver found in lk 5.3 . The sg driver has a version number which is visible via an ioctl() and is bumped from 3.5.36 to 4.0.03 by this patchset. The additions and changes are described in some detail in this long webpage: http://sg.danny.cz/sg/sg_v40.html Most new features described in the above webpage are not implemented in this patchset. Features that are not included are file descriptor sharing, request sharing, multiple requests (in one invocation) and the extended ioctl(). A latter patchset may add those features. The SG_IOSUMIT, SG_IOSUBMIT_V3, SG_IORECEIVE and SG_IORECEIVE_V3 ioctls are added in this patchset. Testing: The sg3_utils package has several extensions in sg3_utils-1.45 beta (revision 826) to support and test the version 4 sg driver presented in this patchset. The new and revised testing utilities are outlined on the same webpage as above in the second half of the section titled: "15 Downloads and testing". This patchset is against Martin Petersen's 5.3/scsi-queue branch. It will also apply to lk 5.1 and probably lk 5.0 . Douglas Gilbert (18): sg: move functions around sg: remove typedefs, type+formatting cleanup sg: sg_log and is_enabled sg: rework sg_poll(), minor changes sg: bitops in sg_device sg: make open count an atomic sg: move header to uapi section sg: speed sg_poll and sg_get_num_waiting sg: sg_allow_if_err_recovery and renames sg: remove most access_ok functions sg: replace rq array with lists sg: sense buffer rework sg: add sg v4 interface support sg: rework debug info sg: add 8 byte SCSI LUN to sg_scsi_id sg: expand sg_comm_wr_t sg: add sg_iosubmit_v3 and sg_ioreceive_v3 ioctls sg: bump version to 4.0.03 drivers/scsi/sg.c | 4373 ++++++++++++++++++++++++++-------------- include/scsi/sg.h | 268 +-- include/uapi/scsi/sg.h | 373 ++++ 3 files changed, 3269 insertions(+), 1745 deletions(-) create mode 100644 include/uapi/scsi/sg.h -- 2.17.1