Skip to content
  1. Apr 26, 2012
  2. Apr 25, 2012
    • Eliad Peller's avatar
      mac80211: call ieee80211_mgd_stop() on interface stop · afa762f6
      Eliad Peller authored
      
      
      ieee80211_mgd_teardown() is called on netdev removal, which
      occurs after the vif was already removed from the low-level
      driver, resulting in the following warning:
      
      [ 4809.014734] ------------[ cut here ]------------
      [ 4809.019861] WARNING: at net/mac80211/driver-ops.h:12 ieee80211_bss_info_change_notify+0x200/0x2c8 [mac80211]()
      [ 4809.030388] wlan0:  Failed check-sdata-in-driver check, flags: 0x4
      [ 4809.036862] Modules linked in: wlcore_sdio(-) wl12xx wlcore mac80211 cfg80211 [last unloaded: cfg80211]
      [ 4809.046849] [<c001bd4c>] (unwind_backtrace+0x0/0x12c)
      [ 4809.055937] [<c047cf1c>] (dump_stack+0x20/0x24)
      [ 4809.065385] [<c003e334>] (warn_slowpath_common+0x5c/0x74)
      [ 4809.075589] [<c003e408>] (warn_slowpath_fmt+0x40/0x48)
      [ 4809.088291] [<bf033630>] (ieee80211_bss_info_change_notify+0x200/0x2c8 [mac80211])
      [ 4809.102844] [<bf067f84>] (ieee80211_destroy_auth_data+0x80/0xa4 [mac80211])
      [ 4809.116276] [<bf068004>] (ieee80211_mgd_teardown+0x5c/0x74 [mac80211])
      [ 4809.129331] [<bf043f18>] (ieee80211_teardown_sdata+0xb0/0xd8 [mac80211])
      [ 4809.141595] [<c03b5e58>] (rollback_registered_many+0x228/0x2f0)
      [ 4809.153056] [<c03b5f48>] (unregister_netdevice_many+0x28/0x50)
      [ 4809.165696] [<bf041ea8>] (ieee80211_remove_interfaces+0xb4/0xdc [mac80211])
      [ 4809.179151] [<bf032174>] (ieee80211_unregister_hw+0x50/0xf0 [mac80211])
      [ 4809.191043] [<bf0bebb4>] (wlcore_remove+0x5c/0x7c [wlcore])
      [ 4809.201491] [<c02c6918>] (platform_drv_remove+0x24/0x28)
      [ 4809.212029] [<c02c4d50>] (__device_release_driver+0x8c/0xcc)
      [ 4809.222738] [<c02c4e84>] (device_release_driver+0x30/0x3c)
      [ 4809.233099] [<c02c4258>] (bus_remove_device+0x10c/0x128)
      [ 4809.242620] [<c02c26f8>] (device_del+0x11c/0x17c)
      [ 4809.252150] [<c02c6de0>] (platform_device_del+0x28/0x68)
      [ 4809.263051] [<bf0df49c>] (wl1271_remove+0x3c/0x50 [wlcore_sdio])
      [ 4809.273590] [<c03806b0>] (sdio_bus_remove+0x48/0xf8)
      [ 4809.283754] [<c02c4d50>] (__device_release_driver+0x8c/0xcc)
      [ 4809.293729] [<c02c4e2c>] (driver_detach+0x9c/0xc4)
      [ 4809.303163] [<c02c3d7c>] (bus_remove_driver+0xc4/0xf4)
      [ 4809.312973] [<c02c5a98>] (driver_unregister+0x70/0x7c)
      [ 4809.323220] [<c03809c4>] (sdio_unregister_driver+0x24/0x2c)
      [ 4809.334213] [<bf0df458>] (wl1271_exit+0x14/0x1c [wlcore_sdio])
      [ 4809.344930] [<c009b1a4>] (sys_delete_module+0x228/0x2a8)
      [ 4809.354734] ---[ end trace 515290ccf5feb522 ]---
      
      Rename ieee80211_mgd_teardown() to ieee80211_mgd_stop(),
      and call it on ieee80211_do_stop().
      
      Signed-off-by: default avatarEliad Peller <eliad@wizery.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      afa762f6
    • Meenakshi Venkataraman's avatar
      iwlwifi: use correct released ucode version · 78cbcf2b
      Meenakshi Venkataraman authored
      
      
      Report correctly the latest released version
      of the iwlwifi firmware for all
      iwlwifi-supported devices.
      
      Cc: stable@vger.kernel.org #3.3+
      Signed-off-by: default avatarMeenakshi Venkataraman <meenakshi.venkataraman@intel.com>
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      78cbcf2b
    • Johannes Berg's avatar
      iwlwifi: fix hardware queue programming · 5ef4acd5
      Johannes Berg authored
      
      
      Newer devices have 20 (5000 series) or 30 (6000 series)
      hardware queues, rather than the 16 that 4965 had. This
      was added to the driver a long time ago, but improperly:
      the queue registers for the higher queues aren't just
      continuations of the registers for the first 16 queues,
      they are in other places. Therefore, the hardware would
      lock up when trying to activate queue 16 or above and
      the device would have to be restarted.
      
      Thanks goes to Emmanuel who identified this and told me
      how the queue programming should be done.
      
      Note that we don't use queues 20 and higher today and
      doing so needs more work than this.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5ef4acd5
  3. Apr 24, 2012
    • Ingo van Lil's avatar
      asix: Fix tx transfer padding for full-speed USB · 2a580949
      Ingo van Lil authored
      
      
      The asix.c USB Ethernet driver avoids ending a tx transfer with a zero-
      length packet by appending a four-byte padding to transfers whose length
      is a multiple of maxpacket. However, the hard-coded 512 byte maxpacket
      length is valid for high-speed USB only; full-speed USB uses 64 byte
      packets.
      
      Signed-off-by: default avatarIngo van Lil <inguin@gmx.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2a580949
    • Anatolij Gustschin's avatar
      net/davinci_emac: fix failing PHY connect attempts · 1ab8be4a
      Anatolij Gustschin authored
      
      
      PHY connect attempts fail if no PHY id is specified in the emac platform
      data and another mdio bus has been registered before 'davinci_mdio' bus. In
      this case when configuring the interface, there will be an attempt to
      connect to already attached PHY on the previously registered mdio bus:
      
      net eth1: PHY already attached
      net eth1: could not connect to phy smsc911x-0:01
      IP-Config: Failed to open eth1
      IP-Config: Device `eth1' not found
      
      Fix this by modifying match_first_device() to match first PHY device
      on 'davinci_mdio' bus.
      
      Signed-off-by: default avatarAnatolij Gustschin <agust@denx.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1ab8be4a
    • Thadeu Lima de Souza Cascardo's avatar
      ehea: only register irq after setting up ports · c2f1244b
      Thadeu Lima de Souza Cascardo authored
      
      
      If we receive an interrupt too early before we set up ports in the probe
      function, there won't be any port ready to handle it.
      
      Only registering the irq after the ports are setup fixes the problem,
      and works fine without losing any interrupts.
      
      This causes crashes in some situations:
      
      [c000000f7ff7fd60] d000000008e223f0 .ehea_neq_tasklet+0x78/0x148 [ehea]
      [c000000f7ff7fe00] c0000000000b6cac .tasklet_hi_action+0xdc/0x210
      [c000000f7ff7fea0] c0000000000b7cc8 .__do_softirq+0x178/0x300
      [c000000f7ff7ff90] c000000000022694 .call_do_softirq+0x14/0x24
      [c000000f68ee7900] c000000000010e04 .do_softirq+0xec/0x110
      [c000000f68ee79a0] c0000000000b789c .irq_exit+0xac/0xe0
      [c000000f68ee7a20] c0000000000110bc .do_IRQ+0x114/0x2a8
      [c000000f68ee7ae0] c00000000000553c hardware_interrupt_entry+0x18/0x1c
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c2f1244b
    • Stefan Raspl's avatar
      qeth: Use blkt defaults for OSA Express 4 · e6e056ba
      Stefan Raspl authored
      
      
      The previous blkt defaults for OSA Express 4 cards produced inadequate
      performance for streaming workloads. The present patch will apply a
      set of more appropriate defaults.
      
      Signed-off-by: default avatarStefan Raspl <raspl@linux.vnet.ibm.com>
      Reviewed-by: default avatarUrsula Braun <ursula.braun@de.ibm.com>
      Signed-off-by: default avatarFrank Blaschka <frank.blaschka@de.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e6e056ba
    • Ursula Braun's avatar
      qeth: allow change of blkt default values · 7e665afb
      Ursula Braun authored
      
      
      There exist qeth sysfs blkt attributes to change the default blkt
      values. But blkt changes are reset during online setting due to a 2nd
      invocation of qeth_determine_capabilites(). This patch makes sure
      blkt default values are configured during 1st run of
      qeth_determine_capabilities() only. Thus blkt changes are kept
      during online setting.
      
      Signed-off-by: default avatarUrsula Braun <ursula.braun@de.ibm.com>
      Reported-by: default avatarHorst Hartmann <horst.hartmann@de.ibm.com>
      Signed-off-by: default avatarFrank Blaschka <frank.blaschka@de.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7e665afb
    • Stephane Fillod's avatar
      net: usb: smsc95xx: fix mtu · 9bbf5660
      Stephane Fillod authored
      Make smsc95xx recalculate the hard_mtu after adjusting the
      hard_header_len.
      
      Without this, usbnet adjusts the MTU down to 1488 bytes, and the host is
      unable to receive standard 1500-byte frames from the device.
      
      Inspired by same fix on cdc_eem 78fb72f7
      
      .
      
      Tested on ARM/Beagle.
      
      Signed-off-by: default avatarStephane Fillod <fillods@users.sf.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9bbf5660
    • Peter Huang (Peng)'s avatar
      set fake_rtable's dst to NULL to avoid kernel Oops · a881e963
      Peter Huang (Peng) authored
      
      
      bridge: set fake_rtable's dst to NULL to avoid kernel Oops
      
      when bridge is deleted before tap/vif device's delete, kernel may
      encounter an oops because of NULL reference to fake_rtable's dst.
      Set fake_rtable's dst to NULL before sending packets out can solve
      this problem.
      
      v4 reformat, change br_drop_fake_rtable(skb) to {}
      
      v3 enrich commit header
      
      v2 introducing new flag DST_FAKE_RTABLE to dst_entry struct.
      
      [ Use "do { } while (0)" for nop br_drop_fake_rtable()
        implementation -DaveM ]
      
      Acked-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarPeter Huang <peter.huangpeng@huawei.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a881e963
    • Linus Torvalds's avatar
      Merge branch 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 4d634ca3
      Linus Torvalds authored
      Pull build system failure fix from Michal Marek:
       "This fixes build failure with newer gcc that adds some internal
        symbols that end in "__mod_*_device_table", but are not actually the
        tables themselves."
      
      * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        Fix modpost failures in fedora 17
      4d634ca3
    • Linus Torvalds's avatar
      Merge tag 'md-3.4-fixes' of git://neil.brown.name/md · d2da626d
      Linus Torvalds authored
      Pull a few more md bug fixes from NeilBrown:
       "2 are tagged for -stable, one being for a fairly serious bug that can
        corrupt metadata and make it hard to recovery an array.  The other is
        for a more recent regression since 3.3"
      
      * tag 'md-3.4-fixes' of git://neil.brown.name/md:
        md: fix possible corruption of array metadata on shutdown.
        md: don't call ->add_disk unless there is good reason.
        DM RAID: Use safe version of rdev_for_each
      d2da626d
    • Linus Torvalds's avatar
      Merge tag 'dlm-fixes-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · 721b024b
      Linus Torvalds authored
      Pull dlm fixes from David Teigland:
       "This includes one short patch fixing the behavior of the QUECVT flag,
        which the gfs2 folks are waiting on."
      
      * tag 'dlm-fixes-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        dlm: fix QUECVT when convert queue is empty
      721b024b
    • Hugh Dickins's avatar
      mm: fix s390 BUG by __set_page_dirty_no_writeback on swap · aca50bd3
      Hugh Dickins authored
      
      
      Mel reports a BUG_ON(slot == NULL) in radix_tree_tag_set() on s390
      3.0.13: called from __set_page_dirty_nobuffers() when page_remove_rmap()
      tries to transfer dirty flag from s390 storage key to struct page and
      radix_tree.
      
      That would be because of reclaim's shrink_page_list() calling
      add_to_swap() on this page at the same time: first PageSwapCache is set
      (causing page_mapping(page) to appear as &swapper_space), then
      page->private set, then tree_lock taken, then page inserted into
      radix_tree - so there's an interval before taking the lock when the
      radix_tree slot is empty.
      
      We could fix this by moving __add_to_swap_cache()'s spin_lock_irq up
      before the SetPageSwapCache.  But a better fix is simply to do what's
      five years overdue: Ken Chen introduced __set_page_dirty_no_writeback()
      (if !PageDirty TestSetPageDirty) for tmpfs to skip all the radix_tree
      overhead, and swap is just the same - it ignores the radix_tree tag, and
      does not participate in dirty page accounting, so should be using
      __set_page_dirty_no_writeback() too.
      
      s390 testing now confirms that this does indeed fix the problem.
      
      Reported-by: default avatarMel Gorman <mgorman@suse.de>
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Acked-by: default avatarMel Gorman <mgorman@suse.de>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Ken Chen <kenchen@google.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      aca50bd3
    • NeilBrown's avatar
      md: fix possible corruption of array metadata on shutdown. · 30b8aa91
      NeilBrown authored
      commit c744a65c
      
      
        md: don't set md arrays to readonly on shutdown.
      
      removed the possibility of a 'BUG' when data is written to an array
      that has just been switched to read-only, but also introduced the
      possibility that the array metadata could be corrupted.
      
      If, when md_notify_reboot gets the mddev lock, the array is
      in a state where it is assembled but hasn't been started (as can
      happen if the personality module is not available, or in other unusual
      situations), then incorrect metadata will be written out making it
      impossible to re-assemble the array.
      
      So only call __md_stop_writes() if the array has actually been
      activated.
      
      This patch is needed for any stable kernel which has had the above
      commit applied.
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarChristoph Nelles <evilazrael@evilazrael.de>
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      30b8aa91
    • NeilBrown's avatar
      md: don't call ->add_disk unless there is good reason. · ed209584
      NeilBrown authored
      Commit 7bfec5f3
      
      
      
         md/raid5: If there is a spare and a want_replacement device, start replacement.
      
      cause md_check_recovery to call ->add_disk much more often.
      Instead of only when the array is degraded, it is now called whenever
      md_check_recovery finds anything useful to do, which includes
      updating the metadata for clean<->dirty transition.
      This causes unnecessary work, and causes info messages from ->add_disk
      to be reported much too often.
      
      So refine md_check_recovery to only do any actual recovery checking
      (including ->add_disk) if MD_RECOVERY_NEEDED is set.
      
      This fix is suitable for 3.3.y:
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarJan Ceuleers <jan.ceuleers@computer.org>
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      ed209584
    • Jonathan Brassow's avatar
      DM RAID: Use safe version of rdev_for_each · a9ad8526
      Jonathan Brassow authored
      Fix segfault caused by using rdev_for_each instead of rdev_for_each_safe
      
      Commit dafb20fa
      
       mistakenly replaced a safe
      iterator with an unsafe one when making some macro changes.
      
      Signed-off-by: default avatarJonathan Brassow <jbrassow@redhat.com>
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      a9ad8526
    • Eldad Zack's avatar
      brcmsmac: "INTERMEDIATE but not AMPDU" only when tracing · 6ead629b
      Eldad Zack authored
      
      
      I keep getting the following messages on the log buffer:
      [ 2167.097507] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not AMPDU
      [ 2281.331305] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not AMPDU
      [ 2281.332539] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not AMPDU
      [ 2329.876605] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not AMPDU
      [ 2329.877354] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not AMPDU
      [ 2462.280756] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not AMPDU
      [ 2615.651689] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not AMPDU
      
      From the code comment I understand that this something that can -
      and does, quite frequently - happen.
      
      Signed-off-by: default avatarEldad Zack <eldad@fogrefinery.com>
      Acked-by: default avatarFranky <Lin&lt;frankyl@broadcom.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      6ead629b
    • Larry Finger's avatar
      rtlwifi: Fix oops on unload · 44eb65cf
      Larry Finger authored
      
      
      Under some circumstances, a PCI-based driver reports the following OOPs:
      
      Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Oops: 0000 [#1] SMP
      --snip--
      Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Pid: 19627, comm: rmmod
      Not tainted 3.2.9-2.fc16.x86_64 #1 LENOVO 05962RU/05962RU
      Mar 19 08:14:35 kvothe kernel: [ 6584.626011] RIP:
      0010:[<ffffffffa0418d39>]  [<ffffffffa0418d39>]
      rtl92ce_get_desc+0x19/0xd0 [rtl8192ce]
      --snip--
      Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Process rmmod (pid:
      19627, threadinfo ffff880050262000, task ffff8801156d5cc0)
      Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Stack:
      Mar 19 08:14:35 kvothe kernel: [ 6584.626011]  0000000000000002
      ffff8801176c2540 ffff880050263ca8 ffffffffa03348e7
      Mar 19 08:14:35 kvothe kernel: [ 6584.626011]  0000000000000282
      0000000180150014 ffff880050263fd8 ffff8801176c2810
      Mar 19 08:14:35 kvothe kernel: [ 6584.626011]  ffff880050263bc8
      ffffffff810550e2 00000000000002c0 ffff8801176c0d40
      Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Call Trace:
      Mar 19 08:14:35 kvothe kernel: [ 6584.626011]  [<ffffffffa03348e7>]
      _rtl_pci_rx_interrupt+0x187/0x650 [rtlwifi]
      --snip--
      Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Code: ff 09 d0 89 07 48
      83 c4 08 5b 5d c3 66 0f 1f 44 00 00 55 48 89 e5 53 48 83 ec 08 66 66
      66 66 90 40 84 f6 89 d3 74 13 84 d2 75 57 <8b> 07 48 83 c4 08 5b 5d c1
      e8 1f c3 0f 1f 00 84 d2 74 ed 80 fa
      Mar 19 08:14:35 kvothe kernel: [ 6584.626011] RIP
      [<ffffffffa0418d39>] rtl92ce_get_desc+0x19/0xd0 [rtl8192ce]
      Mar 19 08:14:35 kvothe kernel: [ 6584.626011]  RSP <ffff880050263b58>
      Mar 19 08:14:35 kvothe kernel: [ 6584.626011] CR2: 00000000000006e0
      Mar 19 08:14:35 kvothe kernel: [ 6584.646491] ---[ end trace
      8636c766dcfbe0e6 ]---
      
      This oops is due to interrupts not being disabled in this particular path.
      
      Reported-by: default avatarDave Airlie <airlied@gmail.com>
      Tested-by: default avatarDave Airlie <airlied@gmail.com>
      Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
      Cc: Stable <stable@vger.kernel.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      44eb65cf
    • Stanislav Yakovlev's avatar
      ipw2200: Fix race condition in the command completion acknowledge · dd447319
      Stanislav Yakovlev authored
      Driver incorrectly validates command completion: instead of waiting
      for a command to be acknowledged it continues execution.  Most of the
      time driver gets acknowledge of the command completion in a tasklet
      before it executes the next one. But sometimes it sends the next
      command before it gets acknowledge for the previous one. In such a
      case one of the following error messages appear in the log:
      
      Failed to send SYSTEM_CONFIG: Already sending a command.
      Failed to send ASSOCIATE: Already sending a command.
      Failed to send TX_POWER: Already sending a command.
      
      After that you need to reload the driver to get it working again.
      
      This bug occurs during roaming (reported by Sam Varshavchik)
      https://bugzilla.redhat.com/show_bug.cgi?id=738508
      and machine booting (reported by Tom Gundersen and Mads Kiilerich)
      https://bugs.archlinux.org/task/28097
      https://bugzilla.redhat.com/show_bug.cgi?id=802106
      
      
      
      This patch doesn't fix the delay issue during firmware load.
      But at least device now works as usual after boot.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarStanislav Yakovlev <stas.yakovlev@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      dd447319
    • Stanislaw Gruszka's avatar
      iwlwifi: do not nulify ctx->vif on reset · 8db4c7e2
      Stanislaw Gruszka authored
      
      
      ctx->vif is dereferenced in different part of iwlwifi code, so do not
      nullify it.
      
      This should address at least one of the possible reasons of WARNING at
      iwlagn_mac_remove_interface, and perhaps some random crashes when
      firmware reset is performed.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      8db4c7e2
    • Gabor Juhos's avatar
      ath9k: fix tx power settings for AR9287 · 83722bd4
      Gabor Juhos authored
      The 'ath9k_hw_update_regulatory_maxpower'
      helper function has been introduced by
      commit a55f8588
      
      
      (ath9k_hw: Cleanup TX power calculation for AR9287).
      
      Updating of the max_power_level value has been moved
      into the helper function in that change, however the
      removed code from 'ath9k_hw_ar9287_set_txpower' has
      not been replaced with a call of the new helper
      function.
      
      Due to that missing call, retrieving tx power for 2x2
      and 3x3 chainmask is not handled properly. During the
      calculation of the tx power for 2x2 and 3x3 chainmasks
      the values are reduced. Those reductions must be
      compensated during retrieving.
      
      Fix this by adding the missing call of the helper
      function.
      
      Signed-off-by: default avatarGabor Juhos <juhosg@openwrt.org>
      Acked-by: default avatarSujith Manoharan <c_manoha@qca.qualcomm.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      83722bd4
    • Gabor Juhos's avatar
      ath9k: add an extra boolean parameter to ath9k_hw_apply_txpower · 64ea57d0
      Gabor Juhos authored
      In order to unifying regulatory limit handling
      commit ca2c68cc
      
      
      (ath9k_hw: clean up tx power handling) introduced
      a new helper function 'ath9k_hw_apply_txpower',
      and the direct calls of 'ah->eep_ops->set_txpower'
      has been replaced by a call of the helper function.
      
      This caused a change in the behaviour of the
      'ath9k_hw_set_txpowerlimit' function. The purpose
      of that function is to calculate and store the
      rate txpower table and the regulatory limit without
      touching the hardware registers. Before the commit,
      the 'test' parameter of the function was passed to
      the 'ah->eep_ops->set_txpower'. Now the calling of
      the 'set_txpower' function happens indirectly through
      'ath9k_hw_apply_txpower', so the 'test' argument of
      the 'set_txpower' is always 'false'.
      
      This patch restores the original behaviour of
      'ath9k_hw_set_txpowerlimit' by adding a new
      argument to 'ath9k_hw_apply_txpower.'
      
      Signed-off-by: default avatarGabor Juhos <juhosg@openwrt.org>
      Acked-by: default avatarFelix Fietkau <nbd@openwrt.org>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      64ea57d0
    • David Teigland's avatar
      dlm: fix QUECVT when convert queue is empty · 53ad1c98
      David Teigland authored
      
      
      The QUECVT flag should not prevent conversions from
      being granted immediately when the convert queue is
      empty.
      
      Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
      53ad1c98
  4. Apr 23, 2012
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm · e895bd79
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "Here's my usual Sunday push, just for one revert which PeterZ hollered
        about after last weeks push.  Other than that, all seems strangely
        quiet as far as fixes go in non-platform ARM land at the moment."
      
      * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
        Revert "ARM: 7359/2: smp_twd: Only wait for reprogramming on active cpus"
      e895bd79
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 205b9c9c
      Linus Torvalds authored
      Pull powerpc fixes from Benjamin Herrenschmidt:
       "Here are a few fixes for powerpc.  Note the addition to the generic
        irq.h.  This is part of a 3-patches regression fix for mpic due to
        changes in how IRQ_TYPE_NONE is being handled.  Thomas agreed to the
        addition of the new IRQ_TYPE_DEFAULT contant, however he hasn't
        replied with an Ack to the actual patch yet.  I don't to wait much
        longer with these patches tho."
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc/mpic: Properly set default triggers
        irq: Add IRQ_TYPE_DEFAULT for use by PIC drivers
        powerpc/mpic: Fix confusion between hw_irq and virq
        powerpc/pmac: Don't add_timer() twice
        powerpc/eeh: Fix crash caused by null eeh_dev
        powerpc/mpc85xx: add MPIC message dts node
        powerpc/mpic_msgr: fix offset error when setting mer register
        powerpc/mpic_msgr: add lock for MPIC message global variable
        powerpc/mpic_msgr: fix compile error when SMP disabled
        powerpc: fix build when CONFIG_BOOKE_WDT is enabled
        powerpc/85xx: don't call of_platform_bus_probe() twice
      205b9c9c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 7e296295
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix namespace init and cleanup in phonet to fix some oopses, from
          Eric W. Biederman.
      
       2) Missing kfree_skb() in AF_KEY, from Julia Lawall.
      
       3) Refcount leak and source address handling fix in l2tp from James
          Chapman.
      
       4) Memory leak fix in CAIF from Tomasz Gregorek.
      
       5) When routes are cloned from ipv6 addrconf routes, we don't process
          expirations properly.  Fix from Gao Feng.
      
       6) Fix panic on DMA errors in atl1 driver, from Tony Zelenoff.
      
       7) Only enable interrupts in 8139cp driver after we've registered the
          IRQ handler.  From Jason Wang.
      
       8) Fix too many reads of KS_CIDER register in ks8851 during probe,
          fixing crashes on spurious interrupts.  From Matt Renzelmann.
      
       9) Missing include in ath5k driver and missing iounmap on probe
          failure, from Jonathan Bither.
      
      10) Fix RX packet handling in smsc911x driver, from Will Deacon.
      
      11) Fix ixgbe WoL on fiber by leaving the laser on during shutdown.
      
      12) ks8851 needs MAX_RECV_FRAMES increased otherwise the internal MAC
          buffers are easily overflown.  Fix from Davide Cimingahi.
      
      13) Fix memory leaks in peak_usb CAN driver, from Jesper Juhl.
      
      14) gred packet scheduler can dump in WRED more when doing a netlink
          dump.  Fix from David Ward.
      
      15) Fix MTU in USB smsc75xx driver, from Stephane Fillod.
      
      16) Dummy device needs ->ndo_uninit handler to properly handle
          ->ndo_init failures.  From Hiroaki SHIMODA.
      
      17) Fix TX fragmentation in ath9k driver, from Sujith Manoharan.
      
      18) Missing RTNL lock in ixgbe PM resume, from Benjamin Poirier.
      
      19) Missing iounmap in farsync WAN driver, from Julia Lawall.
      
      20) With LRO/GRO, tcp_grow_window() is easily tricked into not growing
          the receive window properly, and this hurts performance.  Fix from
          Eric Dumazet.
      
      21) Network namespace init failure can leak net_generic data, fix from
          Julian Anastasov.
      
      22) Fix skb_over_panic due to mis-accounting in TCP for partially ACK'd
          SKBs.  From Eric Dumazet.
      
      23) New IDs for qmi_wwan driver, from Bjørn Mork.
      
      24) Fix races in ax25_exit(), from Eric W. Biederman.
      
      25) IPV6 TCP doesn't handle TCP_MAXSEG socket option properly, copy over
          logic from the IPV4 side.  From Neal Cardwell.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (59 commits)
        tcp: fix TCP_MAXSEG for established IPv6 passive sockets
        drivers/net: Do not free an IRQ if its request failed
        drop_monitor: allow more events per second
        ks8851: Fix request_irq/free_irq mismatch
        net/hyperv: Adding cancellation to ensure rndis filter is closed
        ks8851: Fix mutex deadlock in ks8851_net_stop()
        net ax25: Reorder ax25_exit to remove races.
        icplus: fix interrupt for IC+ 101A/G and 1001LF
        net: qmi_wwan: support Sierra Wireless MC77xx devices in QMI mode
        bnx2x: off by one in bnx2x_ets_e3b0_sp_pri_to_cos_set()
        ksz884x: don't copy too much in netdev_set_mac_address()
        tcp: fix retransmit of partially acked frames
        netns: do not leak net_generic data on failed init
        net/sock.h: fix sk_peek_off kernel-doc warning
        tcp: fix tcp_grow_window() for large incoming frames
        drivers/net/wan/farsync.c: add missing iounmap
        davinci_mdio: Fix MDIO timeout check
        ipv6: clean up rt6_clean_expires
        ipv6: fix rt6_update_expires
        arcnet: rimi: Fix device name in debug output
        ...
      7e296295
    • Benjamin Herrenschmidt's avatar
      powerpc/mpic: Properly set default triggers · 446f6d06
      Benjamin Herrenschmidt authored
      
      
      This gets rid of the unused default senses array, and replaces the
      incorrect use of IRQ_TYPE_NONE with the new IRQ_TYPE_DEFAULT for
      the initial set_trigger() call when mapping an interrupt.
      
      This in turn makes us read the HW state and update the irq desc
      accordingly.
      
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      446f6d06
    • Benjamin Herrenschmidt's avatar
      irq: Add IRQ_TYPE_DEFAULT for use by PIC drivers · 3fca40c7
      Benjamin Herrenschmidt authored
      
      
      This is meant typically to allow a PIC driver's irq domain map() callback
      to establish sane defaults for the interrupt (and make sure that the HW
      and the irq_desc are in sync as far as the trigger is concerned).
      
      The irq core may not call the set_trigger callback if it thinks the
      trigger is already set to the right setting, so we need to ensure new
      descriptors are properly synchronized with the hardware.
      
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      3fca40c7
    • Benjamin Herrenschmidt's avatar
      powerpc/mpic: Fix confusion between hw_irq and virq · 3a2b4f7c
      Benjamin Herrenschmidt authored
      
      
      mpic_is_ipi() takes a virq and immediately converts it to a hw_irq.
      
      However, one of the two call sites calls it with a ... hw_irq. The
      other call site also happens to have the hw_irq at hand, so let's
      change it to just take that as an argument. Also change mpic_is_tm()
      for consistency.
      
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      3a2b4f7c
    • Benjamin Herrenschmidt's avatar
      powerpc/pmac: Don't add_timer() twice · 3027691e
      Benjamin Herrenschmidt authored
      
      
      If the interrupt and the timeout happen roughly at the same
      time, we can get into a situation where the timer function
      is run while the interrupt has already been processed. In
      this case, the timer function might end up doing an add_timer
      on an already pending timer, causing a BUG_ON() to trigger.
      
      Instead, just skip the whole timeout operation if we see that
      the timer is pending. The spinlock ensures that the only way
      that happens is if we already started a new operation and thus
      the timeout can be ignored.
      
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      3027691e
    • Gavin Shan's avatar
      powerpc/eeh: Fix crash caused by null eeh_dev · 2ef822c5
      Gavin Shan authored
      
      
      The problem was reported by Anton Blanchard. While EEH error
      happened to the PCI device without the corresponding device
      driver, kernel crash was seen. Eventually, I successfully
      reproduced the problem on Firebird-L machine with utility
      "errinjct". Initially, the device driver for Emulex ethernet
      MAC has been disabled from .config and force data parity on
      the Emulex ethernet MAC with help of "errinjct". Eventually,
      I saw the kernel crash after issueing couple of "lspci -v"
      command.
      
      The root cause behind is that the PCI device, including the
      reference to the corresponding eeh device, will be removed
      from the system while EEH does recovery. Afterwards, the
      PCI device will be probed again and added into the system
      accordingly. So it's not safe to retrieve the eeh device from
      the corresponding PCI device after the PCI device has been removed
      and not added again.
      
      The patch fixes the issue and retrieve the eeh device from OF node
      instead of PCI device after the PCI device has been removed.
      
      Signed-off-by: default avatarGavin Shan <shangw@linux.vnet.ibm.com>
      Tested-by: default avatarAnton Blanchard <anton@samba.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      2ef822c5
    • Benjamin Herrenschmidt's avatar