netxen: fix endianness intr coalesce
authorAmit Kumar Salecha <amit.salecha@qlogic.com>
Thu, 14 Jan 2010 01:53:22 +0000 (01:53 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 Jan 2010 09:37:24 +0000 (01:37 -0800)
Before sending Interrupt coalesce parameters to device,
convert them in little endian.

Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/netxen/netxen_nic_hw.c

index 0db36f1..9548e59 100644 (file)
@@ -777,17 +777,20 @@ int netxen_p3_nic_set_mac_addr(struct netxen_adapter *adapter, u8 *addr)
 int netxen_config_intr_coalesce(struct netxen_adapter *adapter)
 {
        nx_nic_req_t req;
-       u64 word;
-       int rv;
+       u64 word[6];
+       int rv, i;
 
        memset(&req, 0, sizeof(nx_nic_req_t));
+       memset(word, 0, sizeof(word));
 
        req.qhdr = cpu_to_le64(NX_HOST_REQUEST << 23);
 
-       word = NETXEN_CONFIG_INTR_COALESCE | ((u64)adapter->portnum << 16);
-       req.req_hdr = cpu_to_le64(word);
+       word[0] = NETXEN_CONFIG_INTR_COALESCE | ((u64)adapter->portnum << 16);
+       req.req_hdr = cpu_to_le64(word[0]);
 
-       memcpy(&req.words[0], &adapter->coal, sizeof(adapter->coal));
+       memcpy(&word[0], &adapter->coal, sizeof(adapter->coal));
+       for (i = 0; i < 6; i++)
+               req.words[i] = cpu_to_le64(word[i]);
 
        rv = netxen_send_cmd_descs(adapter, (struct cmd_desc_type0 *)&req, 1);
        if (rv != 0) {