lkml.org 
[lkml]   [2015]   [Dec]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.1 45/95] mac80211: fix divide by zero when NOA update
    Date
    4.1-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: "Janusz.Dziedzic@tieto.com" <Janusz.Dziedzic@tieto.com>

    commit 519ee6918b91abdc4bc9720deae17599a109eb40 upstream.

    In case of one shot NOA the interval can be 0, catch that
    instead of potentially (depending on the driver) crashing
    like this:

    divide error: 0000 [#1] SMP
    [...]
    Call Trace:
    <IRQ>
    [<ffffffffc08e891c>] ieee80211_extend_absent_time+0x6c/0xb0 [mac80211]
    [<ffffffffc08e8a17>] ieee80211_update_p2p_noa+0xb7/0xe0 [mac80211]
    [<ffffffffc069cc30>] ath9k_p2p_ps_timer+0x170/0x190 [ath9k]
    [<ffffffffc070adf8>] ath_gen_timer_isr+0xc8/0xf0 [ath9k_hw]
    [<ffffffffc0691156>] ath9k_tasklet+0x296/0x2f0 [ath9k]
    [<ffffffff8107ad65>] tasklet_action+0xe5/0xf0
    [...]

    Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    net/mac80211/util.c | 7 +++++++
    1 file changed, 7 insertions(+)

    --- a/net/mac80211/util.c
    +++ b/net/mac80211/util.c
    @@ -2984,6 +2984,13 @@ ieee80211_extend_noa_desc(struct ieee802
    if (end > 0)
    return false;

    + /* One shot NOA */
    + if (data->count[i] == 1)
    + return false;
    +
    + if (data->desc[i].interval == 0)
    + return false;
    +
    /* End time is in the past, check for repetitions */
    skip = DIV_ROUND_UP(-end, data->desc[i].interval);
    if (data->count[i] < 255) {



    \
     
     \ /
      Last update: 2015-12-07 16:01    [W:3.577 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site