diff options
| author | Tobias Waldekranz <tobias@waldekranz.com> | 2013-08-26 03:18:06 -0400 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2013-08-26 14:10:38 -0400 |
| commit | cfcd926ea2bc46aaca4e9ca3f0a3b8ac35b9d691 (patch) | |
| tree | 21e91fa792b19a4e6eb3f31f9fff5509f7cbab66 | |
| parent | d4c04ba141d4c5981aebc0aa0ecadc0f16f99387 (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.c | 2 | ||||
| -rw-r--r-- | drivers/net/wireless/mwifiex/main.h | 2 | ||||
| -rw-r--r-- | drivers/net/wireless/mwifiex/sdio.c | 6 | ||||
| -rw-r--r-- | drivers/net/wireless/mwifiex/sta_cmdresp.c | 2 |
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 | */ |
| 1027 | static inline bool mwifiex_is_skb_mgmt_frame(struct sk_buff *skb) | 1027 | static 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); |
