aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Hurley <peter@hurleysoftware.com>2013-01-29 09:10:30 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-29 23:31:34 -0500
commit612588a886965706e9593626c277e561c1932249 (patch)
tree4d9377ffb2618d27c37e394df0dc8a444d331465
parentef34dd184d58824f1cde7402afa8ba2a957029d9 (diff)
staging/fwserial: Fix endian issue in unit directory
Reported-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Acked-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/fwserial/fwserial.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/staging/fwserial/fwserial.c b/drivers/staging/fwserial/fwserial.c
index fe9a68854452..cad9e98e0e6a 100644
--- a/drivers/staging/fwserial/fwserial.c
+++ b/drivers/staging/fwserial/fwserial.c
@@ -2559,26 +2559,25 @@ static struct fw_driver fwserial_driver = {
2559/* XXX: config ROM definitons could be improved with semi-automated offset 2559/* XXX: config ROM definitons could be improved with semi-automated offset
2560 * and length calculation 2560 * and length calculation
2561 */ 2561 */
2562#define FW_ROM_LEN(quads) ((quads) << 16)
2562#define FW_ROM_DESCRIPTOR(ofs) (((CSR_LEAF | CSR_DESCRIPTOR) << 24) | (ofs)) 2563#define FW_ROM_DESCRIPTOR(ofs) (((CSR_LEAF | CSR_DESCRIPTOR) << 24) | (ofs))
2563 2564
2564struct fwserial_unit_directory_data { 2565struct fwserial_unit_directory_data {
2565 u16 crc; 2566 u32 len_crc;
2566 u16 len;
2567 u32 unit_specifier; 2567 u32 unit_specifier;
2568 u32 unit_sw_version; 2568 u32 unit_sw_version;
2569 u32 unit_addr_offset; 2569 u32 unit_addr_offset;
2570 u32 desc1_ofs; 2570 u32 desc1_ofs;
2571 u16 desc1_crc; 2571 u32 desc1_len_crc;
2572 u16 desc1_len;
2573 u32 desc1_data[5]; 2572 u32 desc1_data[5];
2574} __packed; 2573} __packed;
2575 2574
2576static struct fwserial_unit_directory_data fwserial_unit_directory_data = { 2575static struct fwserial_unit_directory_data fwserial_unit_directory_data = {
2577 .len = 4, 2576 .len_crc = FW_ROM_LEN(4),
2578 .unit_specifier = FW_UNIT_SPECIFIER(LINUX_VENDOR_ID), 2577 .unit_specifier = FW_UNIT_SPECIFIER(LINUX_VENDOR_ID),
2579 .unit_sw_version = FW_UNIT_VERSION(FWSERIAL_VERSION), 2578 .unit_sw_version = FW_UNIT_VERSION(FWSERIAL_VERSION),
2580 .desc1_ofs = FW_ROM_DESCRIPTOR(1), 2579 .desc1_ofs = FW_ROM_DESCRIPTOR(1),
2581 .desc1_len = 5, 2580 .desc1_len_crc = FW_ROM_LEN(5),
2582 .desc1_data = { 2581 .desc1_data = {
2583 0x00000000, /* type = text */ 2582 0x00000000, /* type = text */
2584 0x00000000, /* enc = ASCII, lang EN */ 2583 0x00000000, /* enc = ASCII, lang EN */