aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Waldekranz <tobias@waldekranz.com>2013-08-26 03:18:06 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-08-26 14:10:38 -0400
commitcfcd926ea2bc46aaca4e9ca3f0a3b8ac35b9d691 (patch)
tree21e91fa792b19a4e6eb3f31f9fff5509f7cbab66
parentd4c04ba141d4c5981aebc0aa0ecadc0f16f99387 (diff)
mwifiex: add missing endian conversions
Fixes multiple locations where a little endian host is assumed during ser/des of messages sent to/received from the chip. Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/mwifiex/11n_aggr.c2
-rw-r--r--drivers/net/wireless/mwifiex/main.h2
-rw-r--r--drivers/net/wireless/mwifiex/sdio.c6
-rw-r--r--drivers/net/wireless/mwifiex/sta_cmdresp.c2
4 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/wireless/mwifiex/11n_aggr.c b/drivers/net/wireless/mwifiex/11n_aggr.c
index 8f9f54231a1c..f69d7e068e75 100644
--- a/drivers/net/wireless/mwifiex/11n_aggr.c
+++ b/drivers/net/wireless/mwifiex/11n_aggr.c
@@ -69,7 +69,7 @@ mwifiex_11n_form_amsdu_pkt(struct sk_buff *skb_aggr,
69 memcpy(&tx_header->eth803_hdr, skb_src->data, dt_offset); 69 memcpy(&tx_header->eth803_hdr, skb_src->data, dt_offset);
70 70
71 /* Copy SNAP header */ 71 /* Copy SNAP header */
72 snap.snap_type = *(u16 *) ((u8 *)skb_src->data + dt_offset); 72 snap.snap_type = le16_to_cpu(*(__le16 *) ((u8 *)skb_src->data + dt_offset));
73 dt_offset += sizeof(u16); 73 dt_offset += sizeof(u16);
74 74
75 memcpy(&tx_header->rfc1042_hdr, &snap, sizeof(struct rfc_1042_hdr)); 75 memcpy(&tx_header->rfc1042_hdr, &snap, sizeof(struct rfc_1042_hdr));
diff --git a/drivers/net/wireless/mwifiex/main.h b/drivers/net/wireless/mwifiex/main.h
index 7d4d13779625..1d72f13adb9d 100644
--- a/drivers/net/wireless/mwifiex/main.h
+++ b/drivers/net/wireless/mwifiex/main.h
@@ -1026,7 +1026,7 @@ mwifiex_netdev_get_priv(struct net_device *dev)
1026 */ 1026 */
1027static inline bool mwifiex_is_skb_mgmt_frame(struct sk_buff *skb) 1027static inline bool mwifiex_is_skb_mgmt_frame(struct sk_buff *skb)
1028{ 1028{
1029 return (*(u32 *)skb->data == PKT_TYPE_MGMT); 1029 return (le32_to_cpu(*(__le32 *)skb->data) == PKT_TYPE_MGMT);
1030} 1030}
1031 1031
1032/* This function retrieves channel closed for operation by Channel 1032/* This function retrieves channel closed for operation by Channel
diff --git a/drivers/net/wireless/mwifiex/sdio.c b/drivers/net/wireless/mwifiex/sdio.c
index 0e2070f72fed..1576104e3d95 100644
--- a/drivers/net/wireless/mwifiex/sdio.c
+++ b/drivers/net/wireless/mwifiex/sdio.c
@@ -1062,7 +1062,7 @@ static int mwifiex_decode_rx_packet(struct mwifiex_adapter *adapter,
1062 1062
1063 case MWIFIEX_TYPE_EVENT: 1063 case MWIFIEX_TYPE_EVENT:
1064 dev_dbg(adapter->dev, "info: --- Rx: Event ---\n"); 1064 dev_dbg(adapter->dev, "info: --- Rx: Event ---\n");
1065 adapter->event_cause = *(u32 *) skb->data; 1065 adapter->event_cause = le32_to_cpu(*(__le32 *) skb->data);
1066 1066
1067 if ((skb->len > 0) && (skb->len < MAX_EVENT_SIZE)) 1067 if ((skb->len > 0) && (skb->len < MAX_EVENT_SIZE))
1068 memcpy(adapter->event_body, 1068 memcpy(adapter->event_body,
@@ -1207,8 +1207,8 @@ static int mwifiex_sdio_card_to_host_mp_aggr(struct mwifiex_adapter *adapter,
1207 for (pind = 0; pind < card->mpa_rx.pkt_cnt; pind++) { 1207 for (pind = 0; pind < card->mpa_rx.pkt_cnt; pind++) {
1208 1208
1209 /* get curr PKT len & type */ 1209 /* get curr PKT len & type */
1210 pkt_len = *(u16 *) &curr_ptr[0]; 1210 pkt_len = le16_to_cpu(*(__le16 *) &curr_ptr[0]);
1211 pkt_type = *(u16 *) &curr_ptr[2]; 1211 pkt_type = le16_to_cpu(*(__le16 *) &curr_ptr[2]);
1212 1212
1213 /* copy pkt to deaggr buf */ 1213 /* copy pkt to deaggr buf */
1214 skb_deaggr = card->mpa_rx.skb_arr[pind]; 1214 skb_deaggr = card->mpa_rx.skb_arr[pind];
diff --git a/drivers/net/wireless/mwifiex/sta_cmdresp.c b/drivers/net/wireless/mwifiex/sta_cmdresp.c
index 6a814eb2671a..58a6013712d2 100644
--- a/drivers/net/wireless/mwifiex/sta_cmdresp.c
+++ b/drivers/net/wireless/mwifiex/sta_cmdresp.c
@@ -280,7 +280,7 @@ static int mwifiex_ret_tx_rate_cfg(struct mwifiex_private *priv,
280 280
281 tlv_buf = ((u8 *)rate_cfg) + 281 tlv_buf = ((u8 *)rate_cfg) +
282 sizeof(struct host_cmd_ds_tx_rate_cfg); 282 sizeof(struct host_cmd_ds_tx_rate_cfg);
283 tlv_buf_len = *(u16 *) (tlv_buf + sizeof(u16)); 283 tlv_buf_len = le16_to_cpu(*(__le16 *) (tlv_buf + sizeof(u16)));
284 284
285 while (tlv_buf && tlv_buf_len > 0) { 285 while (tlv_buf && tlv_buf_len > 0) {
286 tlv = (*tlv_buf); 286 tlv = (*tlv_buf);