Messages in this thread | | | From | "Sam Bradshaw (sbradshaw)" <> | Subject | RE: block: Add driver for Micron RealSSD pcie flash cards | Date | Mon, 8 Oct 2012 16:17:55 +0000 |
| |
> -----Original Message----- > From: Dan Carpenter [mailto:dan.carpenter@oracle.com] > Sent: Monday, October 08, 2012 12:13 AM > To: Sam Bradshaw (sbradshaw) > Cc: Jens Axboe; linux-kernel@vger.kernel.org > 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
| |