> I think it'd be better if you hoisted the set'n'test out of the if() ok, I agree. > Isn't this the current logic? > > result = usbat_write_block(us, USBAT_ATA, srb->cmnd, 12, > srb->cmnd[0] == GPCMD_BLANK ? 75 : 10, 0); > result = result != USB_STOR_TRANSPORT_GOOD; > if (result) > return result; Thanks for your comments, Yes that was the current logic, which I thought was wrong, but now I think it could also be obscurely written but right: in drivers/usb/storage/transport.h line 100 note the definitions: #define USB_STOR_TRANSPORT_GOOD 0 /* Transport good, command good */ #define USB_STOR_TRANSPORT_FAILED 1 /* Transport good, command failed */ #define USB_STOR_TRANSPORT_NO_SENSE 2 /* Command failed, no auto-sense */ #define USB_STOR_TRANSPORT_ERROR 3 /* Transport bad (i.e. device dead) */ With the current logic usbat_hp8200e_transport() returns TRANSPORT_FAILED, even if usbat_write_block() returned TRANSPORT_NO_SENSE or TRANSPORT_ERROR. This could be intended, but then the author chose a very obscure way to write: if (usbat_write_block(us, USBAT_ATA, srb->cmnd, 12, srb->cmnd[0] == GPCMD_BLANK ? 75 : 10, 0) != USB_STOR_TRANSPORT_GOOD) return USB_STOR_TRANSPORT_FAILED; Or was the parenthesis misplaced and should it really be: result = usbat_write_block(us, USBAT_ATA, srb->cmnd, 12, srb->cmnd[0] == GPCMD_BLANK ? 75 : 10, 0); if (result != USB_STOR_TRANSPORT_GOOD) return result; Maybe someone with the specs/more knowledge of this driver could look into this? Thanks, Roel -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html