Hi all, this series cleans up various abuses of the bsg interfaces, and then splits bsg for SCSI passthrough from bsg for arbitrary transport passthrough. This removes the scsi_request abuse in bsg-lib that is very confusing, and also makes sure we can sanity check the requests we get. The current code will happily execute scsi commands against bsg-lib queues, and transport pass through against scsi nodes, without any indication to the driver that we are doing the wrong thing. Changes since V1: - dropped various patches merged already - use job to get the payload length in bsg_transport_complete_rq - renamed the ptr64 macro to uptr64 - make bsg_scsi_complete_rq and bsg_transport_complete_rq look more similar - trivial cleanup in bsg_map_hdr