Re: [PATCH] USB: misplaced parenthesis

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux