1. 06 8月, 2015 2 次提交
  2. 09 6月, 2015 1 次提交
  3. 28 5月, 2015 1 次提交
    • L
      kernel/params: constify struct kernel_param_ops uses · 9c27847d
      Luis R. Rodriguez 提交于
      Most code already uses consts for the struct kernel_param_ops,
      sweep the kernel for the last offending stragglers. Other than
      include/linux/moduleparam.h and kernel/params.c all other changes
      were generated with the following Coccinelle SmPL patch. Merge
      conflicts between trees can be handled with Coccinelle.
      
      In the future git could get Coccinelle merge support to deal with
      patch --> fail --> grammar --> Coccinelle --> new patch conflicts
      automatically for us on patches where the grammar is available and
      the patch is of high confidence. Consider this a feature request.
      
      Test compiled on x86_64 against:
      
      	* allnoconfig
      	* allmodconfig
      	* allyesconfig
      
      @ const_found @
      identifier ops;
      @@
      
      const struct kernel_param_ops ops = {
      };
      
      @ const_not_found depends on !const_found @
      identifier ops;
      @@
      
      -struct kernel_param_ops ops = {
      +const struct kernel_param_ops ops = {
      };
      
      Generated-by: Coccinelle SmPL
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Junio C Hamano <gitster@pobox.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: cocci@systeme.lip6.fr
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NLuis R. Rodriguez <mcgrof@suse.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      9c27847d
  4. 26 5月, 2015 1 次提交
  5. 05 5月, 2015 2 次提交
  6. 29 4月, 2015 1 次提交
  7. 20 3月, 2015 2 次提交
  8. 13 3月, 2015 1 次提交
  9. 27 2月, 2015 3 次提交
  10. 29 1月, 2015 3 次提交
  11. 15 1月, 2015 10 次提交
  12. 02 12月, 2014 4 次提交
  13. 31 10月, 2014 5 次提交
  14. 03 10月, 2014 1 次提交
    • V
      wil6210: manual FW error recovery mode · c33407a8
      Vladimir Kondratiev 提交于
      Introduce manual FW recovery mode. It is activated if module parameter
      @no_fw_recovery set to true. May be changed at runtime.
      
      Recovery information provided by new "recovery" debugfs file. It prints:
      
      mode = [auto|manual]
      state = [idle|pending|running]
      
      In manual mode, after FW error, recovery won't start automatically. Instead,
      after notification to user space, recovery waits in "pending" state, as indicated by the
      "recovery" debugfs file. User space tools may perform data collection and allow to
      continue recovery by writing "run" to the "recovery" debugfs file.
      Alternatively, recovery pending may be canceled by stopping network interface
      i.e. 'ifconfig wlan0 down'
      Signed-off-by: NVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c33407a8
  15. 27 9月, 2014 1 次提交
  16. 12 9月, 2014 2 次提交
    • V
      wil6210: fix for oops while stopping interface · 73d839ae
      Vladimir Kondratiev 提交于
      When interface stopped while running intensive Rx traffic, the following oops
      observed:
      
      [89846.734683] Call trace:
      [89846.737117] [<ffffffc00083aa64>] dev_gro_receive+0xac/0x358
      [89846.742674] [<ffffffc00083ae94>] napi_gro_receive+0x24/0xa4
      [89846.748251] [<ffffffbffc1c2f88>] $x+0xec/0x1f8 [wil6210]         wil_netif_rx_any
      [89846.753547] [<ffffffbffc1c4830>] $x+0x34/0x54 [wil6210]          wil_release_reorder_frame
      [89846.758755] [<ffffffbffc1c48ac>] wil_release_reorder_frames+0x5c/0x78 [wil6210]
      [89846.766044] [<ffffffbffc1c4bf8>] wil_tid_ampdu_rx_free+0x20/0x48 [wil6210]
      [89846.772901] [<ffffffbffc1bedc8>] $x+0x190/0x1e8 [wil6210]
      [89846.778285] [<ffffffbffc1c0ed4>] wmi_event_worker+0x230/0x2f8 [wil6210]
      [89846.784865] [<ffffffc0000b0bc8>] process_one_work+0x278/0x3fc
      [89846.790591] [<ffffffc0000b1218>] worker_thread+0x200/0x330
      [89846.796060] [<ffffffc0000b6664>] kthread+0xac/0xb8
      [89846.800836] Code: b940c661 f9406a62 8b010041 f9400026 (f8636882)
      [89846.807008] ---[ end trace d6fdc17cd27d18f6 ]---
      
      Reason is the following: when removing Rx vring
      (wil_netdev_ops.ndo_stop -> wil_stop -> wil_down -> __wil_down -> wil_rx_fini),
      Rx interrupt occurs. It trigger Rx NAPI, calling wil_rx_handle() that reaps
      (already cleaned) buffer, causing skb referring to garbage memory being set into reorder buffer.
      Then, network stack trying to access this buffer and fails.
      
      Prevent Rx NAPI from being scheduled if device going to stop. Bit wil_status_napi_en reflects
      NAPI enablement state, check it when triggering Rx NAPI.
      
      Testing shows that check for wil_status_napi_en sometimes gets negative, and new error message
      get printed - in this case kernel oops would be observed. Original oops is no more reproducible.
      
      This change requires also changes in the AP flows.
      Properly enable/disable NAPI for the AP. Make sure Rx VRING is disabled
      when resetting target.
      
      For this, promote __wil_up() and __wil_down() to the module scope, and use it
      in the relevant flows.
      Signed-off-by: NVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      73d839ae
    • V
      wil6210: rename [en|dis]able irq to [un]mask · e4dbb093
      Vladimir Kondratiev 提交于
      To better reflect real action performed, rename:
      s/wil6210_disable_irq/wil_mask_irq/
      s/wil6210_enable_irq/wil_unmask_irq/
      Signed-off-by: NVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e4dbb093