1. 28 5月, 2015 1 次提交
  2. 22 5月, 2015 3 次提交
    • L
      iwlwifi: mvm: clean net-detect info if device was reset during suspend · a500e469
      Luciano Coelho 提交于
      If the device is reset during suspend with net-detect enabled, we
      leave the net-detect information dangling and this causes the next
      suspend to fail with a warning:
      
      [21795.351010] WARNING: at /root/iwlwifi/iwlwifi-stack-dev/drivers/net/wireless/iwlwifi/mvm/d3.c:989 __iwl_mvm_suspend.isra.6+0x2be/0x460 [iwlmvm]()
      [21795.353253] Modules linked in: iwlmvm(O) iwlwifi(O) mac80211(O) cfg80211(O) compat(O) [...]
      [21795.366168] CPU: 1 PID: 3645 Comm: bash Tainted: G           O 3.10.29-dev #1
      [21795.368785] Hardware name: Dell Inc. Latitude E6430/0CPWYR, BIOS A09 12/13/2012
      [21795.371441]  f8ec6748 f8ec6748 e51f3ce8 c168aa62 e51f3d10 c103a824 c1871238 f8ec6748
      [21795.374228]  000003dd f8eb982e f8eb982e 00000000 c3408ed4 c41edbbc e51f3d20 c103a862
      [21795.377006]  00000009 00000000 e51f3da8 f8eb982e c41ee3dc 00000004 e7970000 e51f3d74
      [21795.379792] Call Trace:
      [21795.382461]  [<c168aa62>] dump_stack+0x16/0x18
      [21795.385133]  [<c103a824>] warn_slowpath_common+0x64/0x80
      [21795.387803]  [<f8eb982e>] ? __iwl_mvm_suspend.isra.6+0x2be/0x460 [iwlmvm]
      [21795.390485]  [<f8eb982e>] ? __iwl_mvm_suspend.isra.6+0x2be/0x460 [iwlmvm]
      [21795.393124]  [<c103a862>] warn_slowpath_null+0x22/0x30
      [21795.395787]  [<f8eb982e>] __iwl_mvm_suspend.isra.6+0x2be/0x460 [iwlmvm]
      [21795.398464]  [<f8eb9d7c>] iwl_mvm_suspend+0xec/0x140 [iwlmvm]
      [21795.401127]  [<c104be11>] ? del_timer_sync+0xa1/0xc0
      [21795.403800]  [<f8d4107e>] __ieee80211_suspend+0x1de/0xff0 [mac80211]
      [21795.406459]  [<c168e43d>] ? mutex_lock_nested+0x25d/0x350
      [21795.409084]  [<c1586b64>] ? rtnl_lock+0x14/0x20
      [21795.411685]  [<f8cf0076>] ieee80211_suspend+0x16/0x20 [mac80211]
      [21795.414318]  [<f8c4e014>] wiphy_suspend+0x74/0x710 [cfg80211]
      [21795.416916]  [<c141e612>] __device_suspend+0x1e2/0x220
      [21795.419521]  [<f8c4dfa0>] ? addresses_show+0xa0/0xa0 [cfg80211]
      [21795.422097]  [<c141f997>] dpm_suspend+0x67/0x210
      [21795.424661]  [<c141fd6f>] dpm_suspend_start+0x4f/0x60
      [21795.427219]  [<c108d8e0>] suspend_devices_and_enter+0x60/0x480
      [21795.429768]  [<c168646a>] ? printk+0x4d/0x4f
      [21795.432295]  [<c108de76>] pm_suspend+0x176/0x210
      [21795.434830]  [<c108ca5d>] state_store+0x5d/0xb0
      [21795.437410]  [<c108ca00>] ? wakeup_count_show+0x50/0x50
      [21795.439961]  [<c13208db>] kobj_attr_store+0x1b/0x30
      [21795.442514]  [<c11e3a4b>] sysfs_write_file+0xab/0x100
      [21795.445088]  [<c11e39a0>] ? sysfs_poll+0xa0/0xa0
      [21795.447659]  [<c1179655>] vfs_write+0xa5/0x1c0
      [21795.450212]  [<c1179af7>] SyS_write+0x57/0xa0
      [21795.452699]  [<c1699ec1>] sysenter_do_call+0x12/0x32
      [21795.455146] ---[ end trace faf5321baba2bfdb ]---
      
      To fix this, call the iwl_mvm_free_nd() function in case of any error
      during resume.  Additionally, rename the "out_unlock" label to err to
      make it clearer that it's only called in error conditions.
      
      Cc: stable@vger.kernel.org [3.19+]
      Signed-off-by: NLuciano Coelho <luciano.coelho@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      a500e469
    • L
      iwlwifi: mvm: take the UCODE_DOWN reference when resuming · dcfc7fb1
      Luciano Coelho 提交于
      The __iwl_mvm_resume() function always returns 1, which causes
      mac80211 to do a reconfig with IEEE80211_RECONFIG_TYPE_RESTART.  This
      type of reconfig calls iwl_mvm_restart_complete(), where we unref the
      IWL_MVM_REF_UCODE_DOWN, so we should always take the reference in this
      case.
      
      This prevents this kind of warning from happening:
      
      [40026.103025] WARNING: at /root/iwlwifi/iwlwifi-stack-dev/drivers/net/wireless/iwlwifi/mvm/mac80211.c:236 iwl_mvm_unref+0xc9/0xd0 [iwlmvm]()
      [40026.105145] Modules linked in: iwlmvm(O) iwlwifi(O) mac80211(O) cfg80211(O) compat(O) ctr ccm arc4 autofs4 snd_hda_codec_hdmi snd_hda_codec_idt joydev coretemp kvm_intel kvm aesni_intel ablk_helper cryptd lrw aes_i586 snd_hda_intel xts snd_hda_codec gf128mul snd_hwdep snd_pcm snd_seq_midi dell_wmi snd_rawmidi sparse_keymap snd_seq_midi_event snd_seq uvcvideo dell_laptop videobuf2_core dcdbas microcode videodev psmouse snd_timer videobuf2_vmalloc videobuf2_memops serio_raw snd_seq_device btusb i915 snd bluetooth lpc_ich drm_kms_helper soundcore snd_page_alloc drm i2c_algo_bit wmi parport_pc ppdev video binfmt_misc rpcsec_gss_krb5 nfsd mac_hid nfs_acl nfsv4 auth_rpcgss nfs fscache lockd sunrpc msdos lp parport sdhci_pci sdhci ahci libahci e1000e mmc_core ptp pps_core [last unloaded: compat]
      [40026.117640] CPU: 2 PID: 3827 Comm: bash Tainted: G        W  O 3.10.29-dev #1
      [40026.120216] Hardware name: Dell Inc. Latitude E6430/0CPWYR, BIOS A09 12/13/2012
      [40026.122815]  f8effd18 f8effd18 e740fd18 c168aa62 e740fd40 c103a824 c1871238 f8effd18
      [40026.125527]  000000ec f8ec79c9 f8ec79c9 d5d29ba4 d5d2a20c 00000000 e740fd50 c103a862
      [40026.128209]  00000009 00000000 e740fd7c f8ec79c9 f1c591c4 00000400 00000000 f8efb490
      [40026.130886] Call Trace:
      [40026.133506]  [<c168aa62>] dump_stack+0x16/0x18
      [40026.136115]  [<c103a824>] warn_slowpath_common+0x64/0x80
      [40026.138727]  [<f8ec79c9>] ? iwl_mvm_unref+0xc9/0xd0 [iwlmvm]
      [40026.141319]  [<f8ec79c9>] ? iwl_mvm_unref+0xc9/0xd0 [iwlmvm]
      [40026.143881]  [<c103a862>] warn_slowpath_null+0x22/0x30
      [40026.146453]  [<f8ec79c9>] iwl_mvm_unref+0xc9/0xd0 [iwlmvm]
      [40026.149030]  [<f8ec7a4d>] iwl_mvm_mac_reconfig_complete+0x7d/0x210 [iwlmvm]
      [40026.151645]  [<f8b74b20>] ? ftrace_raw_event_drv_reconfig_complete+0xc0/0xe0 [mac80211]
      [40026.154291]  [<f8b6769e>] ieee80211_reconfig+0x28e/0x2620 [mac80211]
      [40026.156920]  [<c10ef0ea>] ? ring_buffer_unlock_commit+0xba/0x100
      [40026.159585]  [<f8b4a04d>] ieee80211_resume+0x6d/0x80 [mac80211]
      [40026.162206]  [<f8a79722>] wiphy_resume+0x72/0x260 [cfg80211]
      [40026.164799]  [<c141e2e7>] ? device_resume+0x57/0x150
      [40026.167425]  [<f8a796b0>] ? wiphy_suspend+0x710/0x710 [cfg80211]
      [40026.170075]  [<c141e26e>] dpm_run_callback+0x2e/0x50
      [40026.172695]  [<c141e321>] device_resume+0x91/0x150
      [40026.175334]  [<c141f636>] dpm_resume+0xf6/0x200
      [40026.177922]  [<c141f920>] dpm_resume_end+0x10/0x20
      [40026.180489]  [<c108d9f7>] suspend_devices_and_enter+0x177/0x480
      [40026.183037]  [<c168646a>] ? printk+0x4d/0x4f
      [40026.185559]  [<c108de76>] pm_suspend+0x176/0x210
      [40026.188065]  [<c108ca5d>] state_store+0x5d/0xb0
      [40026.190581]  [<c108ca00>] ? wakeup_count_show+0x50/0x50
      [40026.193052]  [<c13208db>] kobj_attr_store+0x1b/0x30
      [40026.195608]  [<c11e3a4b>] sysfs_write_file+0xab/0x100
      [40026.198055]  [<c11e39a0>] ? sysfs_poll+0xa0/0xa0
      [40026.200469]  [<c1179655>] vfs_write+0xa5/0x1c0
      [40026.202893]  [<c1179af7>] SyS_write+0x57/0xa0
      [40026.205245]  [<c1699ec1>] sysenter_do_call+0x12/0x32
      [40026.207619] ---[ end trace db1d5a72a0381b0a ]---
      Signed-off-by: NLuciano Coelho <luciano.coelho@intel.com>
      Reviewed-by: NEliadX Peller <eliad@wizery.com>
      Reviewed-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      dcfc7fb1
    • H
      iwlwifi: mvm: Free fw_status after use to avoid memory leak · 2fc863a5
      Haim Dreyfuss 提交于
      fw_status is the only pointer pointing to a block of memory
      allocated above and should be freed after use.
      Note: this come from Klockwork static analyzer.
      
      Cc: stable@vger.kernel.org [3.19+]
      Fixes: 2021a89d ("iwlwifi: mvm: treat netdetect wake up separately")
      Signed-off-by: NHaim Dreyfuss <haim.dreyfuss@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      2fc863a5
  3. 29 4月, 2015 2 次提交
  4. 28 4月, 2015 1 次提交
  5. 02 4月, 2015 1 次提交
  6. 19 3月, 2015 1 次提交
  7. 12 3月, 2015 3 次提交
  8. 02 3月, 2015 1 次提交
  9. 29 12月, 2014 3 次提交
  10. 01 12月, 2014 4 次提交
  11. 24 11月, 2014 7 次提交
  12. 11 11月, 2014 1 次提交
  13. 29 10月, 2014 5 次提交
    • L
      iwlwifi: mvm: change the iwl_mvm_d3_iface_iterator into a generic function · 7f549e2c
      Luciano Coelho 提交于
      Getting the BSS station vif is something that may be needed by other
      parts of the code.  So, instead of having an iterator specifically for
      d3, change it into a generic one in utils.c.  Additionally, add a
      iwl_mvm_get_bss_vif() function to make it easier to retrieving it.
      Signed-off-by: NLuciano Coelho <luciano.coelho@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      7f549e2c
    • L
      iwlwifi: mvm: add debugfs entry to configure netdetect SSIDs · 3c2f3b20
      Luciano Coelho 提交于
      Before we get all the chain (ie. mac80211, cfg80211, nl80211 and
      userspace) changed to support net-detect, we can use this debugfs
      entry for easy testing and as a proof of concept.
      Signed-off-by: NLuciano Coelho <luciano.coelho@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      3c2f3b20
    • L
      iwlwifi: mvm: move the check if associated outside of the iterator for wowlan · 1e4d19ca
      Luciano Coelho 提交于
      Instead of checking if we are associated when suspending with wowlan
      enabled in the interface iterator, allow it to return an unassociated
      vif and move the check to the main suspend function.  This will be
      needed by netdetect, since it should also work when we are not
      associated but the vif is active.
      Signed-off-by: NLuciano Coelho <luciano.coelho@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      1e4d19ca
    • L
      iwlwifi: mvm: split wowlan handling out of the main suspend function · 671b5820
      Luciano Coelho 提交于
      Take the WoWLAN handling code out of the main suspend function,
      dividing it into three parts: get_config (which is used before the
      firmware is switched), switch_to_d3 (which handles the rebooting of
      the hardware with the D3 firmware) and config (which configures the D3
      firmware for WoWLAN operation).  This is necessary to prepare for the
      net-detect implementation, which will use only the switch_to_d3 part
      of this flow.
      Signed-off-by: NLuciano Coelho <luciano.coelho@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      671b5820
    • L
      iwlwifi: mvm: hold the rtnl when resuming from a d3 test · 31ca09dd
      Luciano Coelho 提交于
      We use ieee80211_iter_keys() which requires the rtnl to be held.  If
      we don't lock the rtnl, like we do when we suspend during a d3 test,
      we get the following splat:
      
       RTNL: assertion failed at net/mac80211/key.c (566)
       CPU: 1 PID: 26529 Comm: cat Tainted: G        W  O 3.10.29-dev #1
       Hardware name: Dell Inc. Latitude E6430/0CPWYR, BIOS A09 12/13/2012
        e7b15008 e7b15008 e68adc1c c168aa62 e68adc54 f91f20b6 f923700c f9236fd8
        00000236 00000000 ece23874 00000000 f94941e0 00000000 e43b8e48 e7b15008
        00000000 e8b69e78 e68adcc0 f9493ab9 e68adc68 00000000 e43b8e48 e7b15008
       Call Trace:
        [<c168aa62>] dump_stack+0x16/0x18
        [<f91f20b6>] ieee80211_iter_keys+0x166/0x170 [mac80211]
        [<f94941e0>] ? iwl_mvm_query_wakeup_reasons+0x5f0/0x5f0 [iwlmvm]
        [<f9493ab9>] iwl_mvm_setup_connection_keep.isra.5+0x99/0x1d0 [iwlmvm]
        [<f9165e28>] ? cfg80211_report_wowlan_wakeup+0x308/0x510 [cfg80211]
        [<f9493fe5>] iwl_mvm_query_wakeup_reasons+0x3f5/0x5f0 [iwlmvm]
        [<c116125a>] ? init_object+0x3a/0x70
        [<f8a5b8ee>] ? iwl_trans_pcie_d3_resume+0x1be/0x3a0 [iwlwifi]
        [<f94956da>] __iwl_mvm_resume+0x14a/0x180 [iwlmvm]
        [<f9495736>] iwl_mvm_d3_test_release+0x26/0xc0 [iwlmvm]
        [<c117a64d>] __fput+0xad/0x210
        [<c117a7bd>] ____fput+0xd/0x10
        [<c10601a1>] task_work_run+0x81/0xb0
        [<c1040fa5>] do_exit+0x255/0xac0
        [<c104e511>] ? dequeue_signal+0x31/0x1a0
        [<c1041888>] do_group_exit+0x38/0xa0
        [<c10a6cfb>] ? trace_hardirqs_on+0xb/0x10
        [<c1051c31>] get_signal_to_deliver+0x1e1/0x8e0
        [<c104bd52>] ? try_to_del_timer_sync+0x42/0x60
        [<c104bd70>] ? try_to_del_timer_sync+0x60/0x60
        [<c168dc82>] ? schedule_timeout+0x102/0x2a0
        [<c10011ba>] do_signal+0x3a/0x8e0
        [<c104b190>] ? __internal_add_timer+0xb0/0xb0
        [<c168de7a>] ? schedule_timeout_interruptible+0x1a/0x20
        [<c104ce39>] ? msleep_interruptible+0x39/0x40
        [<f94939a9>] ? iwl_mvm_d3_test_read+0x49/0x70 [iwlmvm]
        [<c11797fc>] ? vfs_read+0x8c/0x160
        [<c11243af>] ? SyS_fadvise64_64+0x15f/0x2b0
        [<f9493960>] ? iwl_mvm_wowlan_program_keys+0x4a0/0x4a0 [iwlmvm]
        [<c1179a57>] ? SyS_read+0x57/0xa0
        [<c1001acf>] do_notify_resume+0x6f/0xa0
        [<c1692500>] work_notifysig+0x29/0x31
      
      Fix this by hold the rtnl lock when calling __iwl_mvm_resume() in the
      d3 test wake up path.
      Signed-off-by: NLuciano Coelho <luciano.coelho@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      31ca09dd
  14. 04 9月, 2014 2 次提交
  15. 22 5月, 2014 1 次提交
  16. 21 5月, 2014 1 次提交
  17. 13 5月, 2014 1 次提交
  18. 14 4月, 2014 2 次提交