[SCSI] fix sign extension with 1.5TB usb-storage LBD=y
Shifting an unsigned char implicitly casts it to a signed int. This caused 'lba' to sign-extend and Linux would then try READ CAPACITY 16 which was not supported by at least one drive. Using the get_unaligned_be*() helpers keeps us from having to worry about how the extension might occur. Signed-off-by: NDave Hansen <dave@linux.vnet.ibm.com> Reviewed-by: NMatthew Wilcox <willy@linux.intel.com> Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
Showing
想要评论请 注册 或 登录