Re: [PATCH 6/7] sata_mv: endian fix

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

 



Zang Roy-r61911 wrote:
Zang Roy-r61911 wrote:
This fixes a byte-swap issue on PPC, found by Zang Roy-r61911
on the powerpc platform.  His original patch also had some other
platform-specific changes in #ifdef's, but I'm not sure yet how to
incorporate them.  Look for another patch for those (soon).

Signed-off-by: Mark Lord <liml@xxxxxx>

---
--- linux/drivers/scsi/sata_mv.c 2006-05-19 15:44:11.000000000 -0400 +++ linux/drivers/scsi/sata_mv.c 2006-05-19 15:58:21.000000000 -0400
@@ -1030,8 +1030,9 @@
static inline void mv_crqb_pack_cmd(u16 *cmdw, u8 data, u8 addr, unsigned last)
 {
-	*cmdw = data | (addr << CRQB_CMD_ADDR_SHIFT) | CRQB_CMD_CS |
+	u16 tmp = data | (addr << CRQB_CMD_ADDR_SHIFT) | CRQB_CMD_CS |
 		(last ? CRQB_CMD_LAST : 0);
+	*cmdw = cpu_to_le16(tmp);
 }
/**


Does this patch will affect other platform except powerpc?
This patch affects all platforms (as it should). Most Linux code is intentionally written in a cross-platform, portable manner without ifdefs.

	Jeff



I can see it work on powerpc platform, while does it work for other platform such as i386?

Yes. Look at the definition of the function in question: for little endian platforms, it is a simple assignment. For big endian platforms, it does the expected byte swap.

This is also the standard for Linux code: one function Does The Right Thing, regardless of platform.

	Jeff



-
: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux