RE: block: Add driver for Micron RealSSD pcie flash cards
From: Sam Bradshaw (sbradshaw)
Date: Mon Oct 08 2012 - 12:18:05 EST
> -----Original Message-----
> From: Dan Carpenter [mailto:dan.carpenter@xxxxxxxxxx]
> Sent: Monday, October 08, 2012 12:13 AM
> To: Sam Bradshaw (sbradshaw)
> Cc: Jens Axboe; linux-kernel@xxxxxxxxxxxxxxx
> Subject: re: block: Add driver for Micron RealSSD pcie flash cards
>
> Hello Sam Bradshaw,
>
> The patch 88523a61558a: "block: Add driver for Micron RealSSD pcie
> flash cards" from Aug 30, 2011, creates an endian bug:
> drivers/block/mtip32xx/mtip32xx.c:2468 mtip_hw_submit_io()
>
> drivers/block/mtip32xx/mtip32xx.c
> 2465 fis->opts = 1 << 7;
> 2466 fis->command =
> 2467 (dir == READ ? ATA_CMD_FPDMA_READ : ATA_CMD_FPDMA_WRITE);
> 2468 *((unsigned int *) &fis->lba_low) = (start & 0xFFFFFF);
> ^^^^^^^^^^^^
> 2469 *((unsigned int *) &fis->lba_low_ex) = ((start >> 24) & 0xFFFFFF);
> ^^^^^^^^^^^^^^^
>
> These addresses point to a series of four unions inside the
> host_to_dev_fis struct. The unions will be set to different values
> depending on if the CPU is big or little endian.
>
> If you knew which endianness this works on, then you could probably add
> a cpu_to_be32() or cpu_to_le32().
Thanks for the notification; we'll get a patch out asap.
-Sam
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/