1. 01 Dec, 2016 3 commits
    • Mohammed Shafi Shajakhan's avatar
      ath10k: fix soft lockup during firmware crash/hw-restart · c2cac2f7
      Mohammed Shafi Shajakhan authored
      During firmware crash (or) user requested manual restart
      the system gets into a soft lock up state because of the
      below root cause.
      
      During user requested hardware restart / firmware crash
      the system goes into a soft lockup state as 'napi_synchronize'
      is called after 'napi_disable' (which sets 'NAPI_STATE_SCHED'
      bit) and it sleeps into infinite loop as it waits for
      'NAPI_STATE_SCHED' to be cleared. This condition is hit because
      'ath10k_hif_stop' is called twice as below (resulting in calling
      'napi_synchronize' after 'napi_disable')
      
      'ath10k_core_restart' -> 'ath10k_hif_stop' (ATH10K_STATE_ON) ->
      -> 'ieee80211_restart_hw' -> 'ath10k_start' -> 'ath10k_halt' ->
      'ath10k_core_stop' -> 'ath10k_hif_stop' (ATH10K_STATE_RESTARTING)
      
      Fix this by calling 'ath10k_halt' in ath10k_core_restart itself
      as it makes more sense before informing mac80211 to restart h/w
      Also remove 'ath10k_halt' in ath10k_start for the state of 'restarting'
      
      Fixes: 3c97f5de ("ath10k: implement NAPI support")
      Cc: <stable@vger.kernel.org> # v4.9
      Signed-off-by: default avatarMohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      c2cac2f7
    • Erik Stromdahl's avatar
      ath10k: fix TLV set regdomain command · 4e322f7d
      Erik Stromdahl authored
      There is a typo bug in the current implementation of
      ath10k_wmi_tlv_op_gen_pdev_set_rd.
      The conformance test limits are not set up properly.
      
      The two arguments ctl2g and ctl5g were not used at all.
      Instead, the regdomain arguments rd2g and rd5g were used
      for the ctl settings as well.
      Signed-off-by: default avatarErik Stromdahl <erik.stromdahl@gmail.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      4e322f7d
    • Zefir Kurtisi's avatar
      ath9k: feed only active spectral / dfs-detector · 87fedb97
      Zefir Kurtisi authored
      Radar pulse and spectral scan reports are provided by the HW
      with the ATH9K_RXERR_PHY flag set. Those are forwarded to
      the dfs-detector and spectral module for further processing.
      
      For some older chips, the pre-conditions checked in those
      modules are ambiguous, since ATH9K_PHYERR_RADAR is used to
      tag both types. As a result, spectral frames are fed into
      the dfs-detector and vice versa.
      
      This could lead to a false radar detection on a non-DFS
      channel (which is uncritical), but more relevant it causes
      useless CPU load for processing invalid frames.
      
      This commit ensures that the dfs-detector and spectral
      collector are only fed when they are active.
      Signed-off-by: default avatarZefir Kurtisi <zefir.kurtisi@neratec.com>
      Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
      87fedb97
  2. 23 Nov, 2016 17 commits
  3. 19 Nov, 2016 15 commits
  4. 18 Nov, 2016 3 commits
  5. 17 Nov, 2016 2 commits
    • Ricky Liang's avatar
      mwifiex: fix memory leak in mwifiex_save_hidden_ssid_channels() · 5ff26222
      Ricky Liang authored
      kmemleak reports memory leak in mwifiex_save_hidden_ssid_channels():
      
      unreferenced object 0xffffffc0a2914780 (size 192):
        comm "ksdioirqd/mmc2", pid 2004, jiffies 4307182506 (age 820.684s)
        hex dump (first 32 bytes):
          00 06 47 49 4e 2d 32 67 01 03 c8 60 6c 03 01 40  ..GIN-2g...`l..@
          07 10 54 57 20 34 04 1e 64 05 24 84 03 24 95 04  ..TW 4..d.$..$..
        backtrace:
          [<ffffffc0003375f4>] create_object+0x164/0x2b4
          [<ffffffc0008e3530>] kmemleak_alloc+0x50/0x88
          [<ffffffc000335120>] __kmalloc_track_caller+0x1bc/0x264
          [<ffffffc00030899c>] kmemdup+0x38/0x64
          [<ffffffbffc2311cc>] mwifiex_fill_new_bss_desc+0x3c/0x130 [mwifiex]
          [<ffffffbffc22ee9c>] mwifiex_save_curr_bcn+0x4ec/0x640 [mwifiex]
          [<ffffffbffc22f45c>] mwifiex_handle_event_ext_scan_report+0x1d4/0x268 [mwifiex]
          [<ffffffbffc2375d0>] mwifiex_process_sta_event+0x378/0x898 [mwifiex]
          [<ffffffbffc224dc8>] mwifiex_process_event+0x1a8/0x1e8 [mwifiex]
          [<ffffffbffc2228f0>] mwifiex_main_process+0x258/0x534 [mwifiex]
          [<ffffffbffc258858>] 0xffffffbffc258858
          [<ffffffc00071ee90>] process_sdio_pending_irqs+0xf8/0x160
          [<ffffffc00071efdc>] sdio_irq_thread+0x9c/0x1a4
          [<ffffffc000240d08>] kthread+0xf4/0x100
          [<ffffffc0002043fc>] ret_from_fork+0xc/0x50
          [<ffffffffffffffff>] 0xffffffffffffffff
      Signed-off-by: default avatarRicky Liang <jcliang@chromium.org>
      Acked-by: default avatarAmitkumar Karwar <akarwar@marvell.com>
      Reviewed-by: default avatarBrian Norris <briannorris@chromium.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      5ff26222
    • Larry Finger's avatar
      ssb: Fix error routine when fallback SPROM fails · 8052d724
      Larry Finger authored
      When there is a CRC error in the SPROM read from the device, the code
      attempts to handle a fallback SPROM. When this also fails, the driver
      returns zero rather than an error code.
      Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
      Cc: Stable <stable@vger.kernel.org>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      8052d724