1. 17 Mar, 2014 24 commits
  2. 14 Mar, 2014 16 commits
    • Axel Lin's avatar
      NFC: llcp: Use list_for_each_entry in nfc_llcp_find_local() · 29e27dd8
      Axel Lin authored
      nfc_llcp_find_local() does not modify any list entry while iterating the list.
      So use list_for_each_entry instead of list_for_each_entry_safe.
      Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
      Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
      29e27dd8
    • Axel Lin's avatar
      NFC: Move checking valid gb_len value to nfc_llcp_set_remote_gb · 3143a4ca
      Axel Lin authored
      This checking is common for all caller, so move the checking to one place.
      Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
      Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
      3143a4ca
    • Axel Lin's avatar
      NFC: Remove redundant test for dev->n_targets in nfc_find_target · 365a721a
      Axel Lin authored
      Without this test, it returns NULL if dev->n_targets is 0 anyway.
      Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
      Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
      365a721a
    • Jean Delvare's avatar
      brcmfmac: Make probe function __init · c2d23c70
      Jean Delvare authored
      One of the benefits of platform_driver_probe() is that you can make
      the probe function __init.
      Signed-off-by: default avatarJean Delvare <jdelvare@suse.de>
      Cc: Hante Meuleman <meuleman@broadcom.com>
      Cc: Arend van Spriel <arend@broadcom.com>
      Cc: John W. Linville <linville@tuxdriver.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      c2d23c70
    • Joe Perches's avatar
      ath9k: Convert uses of __constant_<foo> to <foo> · 1b5c8d60
      Joe Perches authored
      The use of __constant_<foo> has been unnecessary for quite awhile now.
      
      Make these uses consistent with the rest of the kernel.
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      1b5c8d60
    • John Greene's avatar
      ath5k: add missing dma_map_error call · b499abdc
      John Greene authored
      Trivial patch to address this trace. Now calls dma_mapping_error and
      return -ENOSPC if a problem found.
      
      WARNING: at lib/dma-debug.c:933 check_unmap+0x47b/0x960()
      Hardware name: Aspire 5515
      ath5k 0000:02:00.0: DMA-API: device driver failed to check map
      error[device address=0x00000000874fcd42] [size=45 bytes] [mapped as
      single]
      Modules linked in: bnep bluetooth ebtable_filter ebtables
      ip6table_filter ip6_tables be2iscsi iscsi_boot_sysfs bnx2i cnic uio
      cxgb4i cxgb4 cxgb3i cxgb3 mdio libcxgbi ib_iser rdma_cm ib_addr iw_cm
      ib_cm ib_sa ib_mad ib_core iscsi_tcp libiscsi_tcp libiscsi
      scsi_transport_iscsi arc4 snd_hda_codec_realtek snd_hda_intel
      snd_hda_codec snd_hwdep snd_seq snd_seq_device ath5k ath snd_pcm
      sparse_keymap snd_page_alloc mac80211 snd_timer sp5100_tco snd edac_core
      k8temp soundcore edac_mce_amd i2c_piix4 cfg80211 rfkill shpchp vhost_net
      tun macvtap macvlan kvm_amd kvm uinput dm_crypt ata_generic pata_acpi
      radeon i2c_algo_bit pata_atiixp drm_kms_helper ttm drm r8169 mii
      i2c_core wmi video sunrpc
      Pid: 820, comm: firewalld Not tainted 3.9.0-0.rc3.git1.4.fc19.x86_64 #1
      Call Trace:
       <IRQ>  [<ffffffff81068df0>] warn_slowpath_common+0x70/0xa0
       [<ffffffff81068e6c>] warn_slowpath_fmt+0x4c/0x50
       [<ffffffff8137ebeb>] check_unmap+0x47b/0x960
       [<ffffffff81021cf5>] ? native_sched_clock+0x15/0x80
       [<ffffffff81021d69>] ? sched_clock+0x9/0x10
       [<ffffffff8137f12f>] debug_dma_unmap_page+0x5f/0x70
       [<ffffffffa048fa07>] ath5k_tasklet_tx+0x157/0x3f0 [ath5k]
       [<ffffffff810acc0d>] ? sched_clock_local+0x1d/0x80
       [<ffffffff81072aa6>] ? tasklet_action+0x56/0x210
       [<ffffffff81072ae7>] tasklet_action+0x97/0x210
       [<ffffffff8107343f>] __do_softirq+0xff/0x400
       [<ffffffff81073905>] irq_exit+0xb5/0xc0
       [<ffffffff81728916>] do_IRQ+0x56/0xc0
       [<ffffffff8171dc32>] common_interrupt+0x72/0x72
       <EOI>  [<ffffffff811f1f81>] ? dput+0x111/0x310
       [<ffffffff811f1ea7>] ? dput+0x37/0x310
       [<ffffffff811e75e8>] link_path_walk+0x528/0x910
       [<ffffffff811ea624>] path_openat+0x94/0x530
       [<ffffffff811eb148>] do_filp_open+0x38/0x80
       [<ffffffff811e1dda>] open_exec+0x4a/0x130
       [<ffffffff81238be3>] load_elf_binary+0x7f3/0x18e0
       [<ffffffff81021d69>] ? sched_clock+0x9/0x10
       [<ffffffff810acc0d>] ? sched_clock_local+0x1d/0x80
       [<ffffffff810acd98>] ? sched_clock_cpu+0xa8/0x100
       [<ffffffff810d515d>] ? trace_hardirqs_off+0xd/0x10
       [<ffffffff810acedf>] ? local_clock+0x5f/0x70
       [<ffffffff810d5dbf>] ? lock_release_holdtime.part.28+0xf/0x190
       [<ffffffff812383f0>] ? elf_core_dump+0x1980/0x1980
       [<ffffffff811e1151>] search_binary_handler+0x1a1/0x4f0
       [<ffffffff811e1017>] ? search_binary_handler+0x67/0x4f0
       [<ffffffff811e28fc>] do_execve_common.isra.26+0x64c/0x710
       [<ffffffff811e23c2>] ? do_execve_common.isra.26+0x112/0x710
       [<ffffffff811e2cc6>] sys_execve+0x36/0x50
       [<ffffffff81727249>] stub_execve+0x69/0xa0
      Signed-off-by: default avatarJohn Greene <jogreene@redhat.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      b499abdc
    • Felix Fietkau's avatar
      ath9k_hw: set ANI firstep as absolute values instead of relative · 9301ca90
      Felix Fietkau authored
      On older chips, the INI value differ in similar ways as cycpwr_thr1, so
      convert it to absolute values as well.
      
      Since the ANI algorithm is different here compared to the old
      implementation (fewer steps, controlled at a different point in time),
      it makes sense to use values similar to what would be applied for newer
      chips, just without relying on INI defaults.
      Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      9301ca90
    • Felix Fietkau's avatar
      ath9k_hw: set ANI cycpwr_thr1 as absolute values instead of relative · 28327fd0
      Felix Fietkau authored
      The table was copied from the ANI implementation of AR9300. It assumes
      that the INI values contain a baseline value that is usable as reference
      from which to increase/decrease based on the noise immunity value.
      
      On older chips, the differences are bigger and especially AR5008/AR9001
      are configured to much more sensitive values than what is useful.
      
      Improve ANI behavior by reverting to the absolute values used in the
      previous implementation (expressed as a simple formula instead of the
      old table).
      Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      28327fd0
    • Felix Fietkau's avatar
      ath9k_hw: remove ANI function restrictions for AP mode · afdc05f0
      Felix Fietkau authored
      The primary purpose of this piece of code was to selectively disable
      OFDM weak signal detection. The checks for this are elsewhere, and an
      earlier commit relaxed the restrictions for older chips, which are more
      sensitive to interference.
      Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      afdc05f0
    • Arnd Bergmann's avatar
      wireless: Kconfig: add missing dependency for airo_cs · a0b2a8f4
      Arnd Bergmann authored
      commit 4c59ff22 "wireless: Kconfig: add missing dependency" added a number
      of 'depends on CFG80211' statements, but missed the AIRO_CS driver that
      also causes the airo.c file to be built. This adds the (hopefully) last
      such missing statement
      
      Cc: "Zhao, Gang" <gamerh2o@gmail.com>
      Cc: "John W. Linville" <linville@tuxdriver.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      a0b2a8f4
    • Emil Goode's avatar
      brcmsmac: update comment to reflect the code · c9423937
      Emil Goode authored
      The brcms_attach function is defined as static but the comment is
      saying that it should not be static or gcc will issue a warning.
      I believe we can remove the comment as I don't se a problem with
      this function being defined as static.
      Signed-off-by: default avatarEmil Goode <emilgoode@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      c9423937
    • Emil Goode's avatar
      brcmsmac: fix deadlock on missing firmware · 8fc1e8c2
      Emil Goode authored
      When brcm80211 firmware is not installed networking hangs.
      A deadlock happens because we call ieee80211_unregister_hw()
      from the .start callback of struct ieee80211_ops. When .start
      is called we are under rtnl lock and ieee80211_unregister_hw()
      tries to take it again.
      
      Function call stack:
      
      dev_change_flags()
      	__dev_change_flags()
      		__dev_open()
      			ASSERT_RTNL() <-- Assert rtnl lock
      			ops->ndo_open()
      
      .ndo_open = ieee80211_open,
      
      ieee80211_open()
      	ieee80211_do_open()
      		drv_start()
      			local->ops->start()
      
      .start = brcms_ops_start,
      
      brcms_ops_start()
      	brcms_remove()
      		ieee80211_unregister_hw()
      			rtnl_lock() <-- Here we deadlock
      
      Introduced by:
      commit 25b5632f
      ("brcmsmac: request firmware in .start() callback")
      
      This patch fixes the bug by removing the call to brcms_remove()
      and moves the brcms_request_fw() call to the top of the .start
      callback to not initiate anything unless firmware is installed.
      Signed-off-by: default avatarEmil Goode <emilgoode@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      8fc1e8c2
    • Felix Fietkau's avatar
      ath9k: clean up and enhance ANI debugfs file · abee4c84
      Felix Fietkau authored
      Unify scnprintf calls and include the current OFDM/CCK immunity level.
      Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      abee4c84
    • Felix Fietkau's avatar
      ath9k: fix ready time of the multicast buffer queue · 3b3e0efb
      Felix Fietkau authored
      qi->tqi_readyTime is written directly to registers that expect
      microseconds as unit instead of TU.
      When setting the CABQ ready time, cur_conf->beacon_interval is in TU, so
      convert it to microseconds before passing it to ath9k_hw.
      
      This should hopefully fix some Tx DMA issues with buffered multicast
      frames in AP mode.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      3b3e0efb
    • Andrea Merello's avatar
      rtl8180: prepare to handle more than two chip types · 6caefd12
      Andrea Merello authored
      Currently a "r8185" integer variable is used as a boolean flag to
      indicate whether the card is a rtl8185 or not.
      Since now the driver supports only rtl8185 and rtl8180 cards, if
      "r8185" variable is zero then the card is implicitly assumed to
      be a rtl8180.
      
      Now I'm preparing to add support for a third card type (rtl8187se).
      
      This patch changes the "r8185" flag with an enum variable to
      explicitly indicate which card type we have.
      
      I'm submitting this this patch now, even if I still have to submit
      other patches that not pertain with rtl8187se support, because
      IMHO it's not worth rebasing them on the current code, using r8185
      flag, and then changing them back again nearly immediately.
      BTW if someone feels I really should do this, please tell me..
      Signed-off-by: default avatarAndrea Merello <andrea.merello@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      6caefd12
    • Amitkumar Karwar's avatar
      mwifiex: add AMSDU inside AMPDU support · 4c9f9fb2
      Amitkumar Karwar authored
      Currently AMPDU aggregation is preferred over AMSDU. AMSDU
      aggregation is performed only if AMPDU streams in firmware
      are full.
      This patch adds simultaneous AMSDU and AMPDU aggregation
      support. This mechanism helps to improve throughput.
      AMSDU is enabled only for 8897 chipsets which supports 4K
      transmit buffer. User can disable AMSDU using
      'disable_tx_amsdu' module parameter.
      Signed-off-by: default avatarAmitkumar Karwar <akarwar@marvell.com>
      Signed-off-by: default avatarBing Zhao <bzhao@marvell.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      4c9f9fb2