On Wed, Dec 03, 2008 at 11:37:23AM -0800, Harvey Harrison wrote: > Depends on the unaligned access work in -mm. Just so you can see what the > transition would look like. See in particular the READ/WRITE6 bits > as just reading the full 32 bits and masking ends up being better on > lots of arches. (x86/powerpc/SH at least) > case WRITE_6: > case READ_6: > - lba = ((scsicmd->cmnd[1] & 0x1F) << 16) | > - (scsicmd->cmnd[2] << 8) | scsicmd->cmnd[3]; > + lba = load_be32_noalign((__be32 *)&scsicmd->cmnd[0]) & 0x1fffff; > break; That may well generate better code, but I have a hard time convincing myself that it's correct. This badly needs to be abstracted into something *THAT MAKES SENSE FOR SCSI*. James, if I resend my patches that introduce scsi_get_u24() et al, will you apply them? I'm tired of having to nack all the crazy patches that Harvey keeps sending. -- Matthew Wilcox Intel Open Source Technology Centre "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step." -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html