lkml.org 
[lkml]   [2020]   [Feb]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 096/344] ath10k: correct the tlv len of ath10k_wmi_tlv_op_gen_config_pno_start
    Date
    From: Wen Gong <wgong@codeaurora.org>

    [ Upstream commit e01cc82c4d1ec3bddcbb7cd991cf5dc0131ed9a1 ]

    the tlv len is set to the total len of the wmi cmd, it will trigger
    firmware crash, correct the tlv len.

    Tested with QCA6174 SDIO with firmware
    WLAN.RMH.4.4.1-00017-QCARMSWP-1 and QCA6174
    PCIE with firmware WLAN.RM.4.4.1-00110-QCARMSWPZ-1.

    Fixes: ce834e280f2f875 ("ath10k: support NET_DETECT WoWLAN feature")
    Signed-off-by: Wen Gong <wgong@codeaurora.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/ath/ath10k/wmi-tlv.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    diff --git a/drivers/net/wireless/ath/ath10k/wmi-tlv.c b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
    index 4d5d10c010645..eb0c963d9fd51 100644
    --- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c
    +++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
    @@ -3650,6 +3650,7 @@ ath10k_wmi_tlv_op_gen_config_pno_start(struct ath10k *ar,
    struct wmi_tlv *tlv;
    struct sk_buff *skb;
    __le32 *channel_list;
    + u16 tlv_len;
    size_t len;
    void *ptr;
    u32 i;
    @@ -3707,10 +3708,12 @@ ath10k_wmi_tlv_op_gen_config_pno_start(struct ath10k *ar,
    /* nlo_configured_parameters(nlo_list) */
    cmd->no_of_ssids = __cpu_to_le32(min_t(u8, pno->uc_networks_count,
    WMI_NLO_MAX_SSIDS));
    + tlv_len = __le32_to_cpu(cmd->no_of_ssids) *
    + sizeof(struct nlo_configured_parameters);

    tlv = ptr;
    tlv->tag = __cpu_to_le16(WMI_TLV_TAG_ARRAY_STRUCT);
    - tlv->len = __cpu_to_le16(len);
    + tlv->len = __cpu_to_le16(tlv_len);

    ptr += sizeof(*tlv);
    nlo_list = ptr;
    --
    2.20.1


    \
     
     \ /
      Last update: 2020-02-21 09:05    [W:5.353 / U:0.528 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site