lkml.org 
[lkml]   [2016]   [Jun]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2] mwifiex: Fix endianness for event TLV type TLV_BTCOEX_WL_SCANTIME
    Date
    The two members min_scan_time and max_scan_time of structure
    "mwifiex_ie_types_btcoex_scan_time" are of two bytes each. The values
    are assigned directtly from firmware without endian conversion handling.
    So, wrong datas will get saved in big-endian systems.

    This patch converts the values into cpu's byte order before assigning them
    into the local members.

    Signed-off-by: Prasun Maiti <prasunmaiti87@gmail.com>
    ---
    Changes in v2:
    - Fixed the following sparse compilation warnings:
    * sta_event.c:477:55: warning: cast to restricted __le16
    * sta_event.c:478:55: warning: cast to restricted __le16

    drivers/net/wireless/marvell/mwifiex/fw.h | 4 ++--
    drivers/net/wireless/marvell/mwifiex/sta_event.c | 4 ++--
    2 files changed, 4 insertions(+), 4 deletions(-)

    diff --git a/drivers/net/wireless/marvell/mwifiex/fw.h b/drivers/net/wireless/marvell/mwifiex/fw.h
    index 8e4145a..03d3edf 100644
    --- a/drivers/net/wireless/marvell/mwifiex/fw.h
    +++ b/drivers/net/wireless/marvell/mwifiex/fw.h
    @@ -1958,8 +1958,8 @@ struct mwifiex_ie_types_btcoex_scan_time {
    struct mwifiex_ie_types_header header;
    u8 coex_scan;
    u8 reserved;
    - u16 min_scan_time;
    - u16 max_scan_time;
    + __le16 min_scan_time;
    + __le16 max_scan_time;
    } __packed;

    struct mwifiex_ie_types_btcoex_aggr_win_size {
    diff --git a/drivers/net/wireless/marvell/mwifiex/sta_event.c b/drivers/net/wireless/marvell/mwifiex/sta_event.c
    index 0104108..7dff452 100644
    --- a/drivers/net/wireless/marvell/mwifiex/sta_event.c
    +++ b/drivers/net/wireless/marvell/mwifiex/sta_event.c
    @@ -474,8 +474,8 @@ void mwifiex_bt_coex_wlan_param_update_event(struct mwifiex_private *priv,
    scantlv =
    (struct mwifiex_ie_types_btcoex_scan_time *)tlv;
    adapter->coex_scan = scantlv->coex_scan;
    - adapter->coex_min_scan_time = scantlv->min_scan_time;
    - adapter->coex_max_scan_time = scantlv->max_scan_time;
    + adapter->coex_min_scan_time = le16_to_cpu(scantlv->min_scan_time);
    + adapter->coex_max_scan_time = le16_to_cpu(scantlv->max_scan_time);
    break;

    default:
    --
    1.9.1
    \
     
     \ /
      Last update: 2016-06-30 11:01    [W:3.014 / U:0.168 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site