1. 20 Jun, 2012 3 commits
  2. 19 Jun, 2012 4 commits
    • Antonio Quartulli's avatar
      batman-adv: fix skb->data assignment · 2c995ff8
      Antonio Quartulli authored
      skb_linearize(skb) possibly rearranges the skb internal data and then changes
      the skb->data pointer value. For this reason any other pointer in the code that
      was assigned skb->data before invoking skb_linearise(skb) must be re-assigned.
      
      In the current tt_query message handling code this is not done and therefore, in
      case of skb linearization, the pointer used to handle the packet header ends up
      in pointing to free'd memory.
      
      This bug was introduced by a73105b8
      (batman-adv: improved client announcement mechanism)
      Signed-off-by: default avatarAntonio Quartulli <ordex@autistici.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2c995ff8
    • Jason Wang's avatar
      phy/micrel: change phy_id_mask for KSZ9021 and KS8001 · 48d7d0ad
      Jason Wang authored
      On a freescale imx6q platform, a hardware phy chip KSZ9021 is
      recognized as a KS8001 chip by the current driver like this:
      eth0: Freescale FEC PHY driver [Micrel KS8001 or KS8721]
      
      KSZ9021 has phy_id 0x00221610, while KSZ8001 has phy_id
      0x0022161a, the current phy_id_mask (0x00fffff0/0x00ffff10) can't
      distinguish them. So change phy_id_mask to resolve this problem.
      
      Although the micrel datasheet says that the 4 LSB of phyid2 register
      contains the chip revision number and the current driver is designed
      to follow this rule, in reality the chip implementation doesn't follow
      it.
      
      Cc: David J. Choi <david.choi@micrel.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
      Signed-off-by: default avatarHui Wang <jason77.wang@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      48d7d0ad
    • Daniel Halperin's avatar
      sctp: fix warning when compiling without IPv6 · 39d84a58
      Daniel Halperin authored
      net/sctp/protocol.c: In function ‘sctp_addr_wq_timeout_handler’:
      net/sctp/protocol.c:676: warning: label ‘free_next’ defined but not used
      Signed-off-by: default avatarDaniel Halperin <dhalperi@cs.washington.edu>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      39d84a58
    • Thomas Graf's avatar
      ipv6: Move ipv6 proc file registration to end of init order · d189634e
      Thomas Graf authored
      /proc/net/ipv6_route reflects the contents of fib_table_hash. The proc
      handler is installed in ip6_route_net_init() whereas fib_table_hash is
      allocated in fib6_net_init() _after_ the proc handler has been installed.
      
      This opens up a short time frame to access fib_table_hash with its pants
      down.
      
      Move the registration of the proc files to a later point in the init
      order to avoid the race.
      
      Tested :-)
      Signed-off-by: default avatarThomas Graf <tgraf@suug.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d189634e
  3. 18 Jun, 2012 1 commit
  4. 17 Jun, 2012 9 commits
  5. 16 Jun, 2012 1 commit
  6. 15 Jun, 2012 5 commits
  7. 14 Jun, 2012 4 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/virt/kvm/kvm · 424d54d2
      Linus Torvalds authored
      Pull kvm fix from Marcelo Tosatti:
       "Fix a spurious warning on CPU offline path"
      
      * git://git.kernel.org/pub/scm/virt/kvm/kvm:
        x86: kvmclock: remove check_and_clear_guest_paused warning
      424d54d2
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-fixes-for-v3.5' of... · 09531359
      Linus Torvalds authored
      Merge tag 'pinctrl-fixes-for-v3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
      
      Pull pinctrl fixes from Linus Walleij:
       - section markup fixes
       - clk_prepare() fix to conform to the clk API
       - memory leaks
       - incorrect debug messages
       - bad errorpaths
       - typos
      
      * tag 'pinctrl-fixes-for-v3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: pinctrl-mxs: set platform driver data to NULL at errpath and at unregister
        pinctrl: pinctrl-mxs: Take care of frees if the kzalloc fails
        pinctrl: pinctrl-imx: fix incorrect debug message of maps
        pinctrl: pinctrl-imx: free if of_get_parent fails to get the parent node
        pinctrl: pinctrl-imx: free allocated pinctrl_map structure only once and use kernel facilities for IMX_PMX_DUMP
        pinctrl: nomadik: fix up typo
        pinctrl: nomadik: add clk_prepare() call
        pinctrl: fix a minor harmless typo
        pinctrl: sirf: mark of_device_id match table as __devinitconst
      09531359
    • Linus Torvalds's avatar
      Merge tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · b532ff20
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
      
       - Fix a regression of USB-audio PCM assignment since 3.4
       - A few VGA-switcheroo-related fixes for proper HDMI audio enablement
       - Fixed the missing initializations of HD-audio verbs, which may have
         resulted in various breakage
       - Some driver-specific ASoC updates
       - A few fixes for the dynamic PCM code
       - The addition of pinctrl support for the i.MX audmux which didn't make
         it into -rc1 due to cross tree dependency issues
       - A few minor fixes in compress API codes
      
      * tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - Don't forget to call init verbs added by fixup list
        ALSA: HDA: Pin fixup for Zotac Z68 motherboard
        ALSA: compress_core: cleanup pointers on stop
        ALSA: compress_core: don't wake up on pause
        ALSA: hda - Fix detection of Creative SoundCore3D controllers
        vga_switcheroo: Enable/disable audio clients at the right time
        ALSA: hda - HDMI Audio init all connectors when VGA-switcheroo is off
        vga_switcheroo: Fix error without CONFIG_VGA_SWITCHEROO
        ALSA: hda - Fix uninitialized HDMI controllers with VGA-switcheroo
        vga_switcheroo: Add a helper function to get the client state
        ALSA: usb-audio: Fix substream assignments
        ASoC: tegra: add MODULE_DEVICE_TABLE to tegra30_ahub
        ASoC: wm2000: Always use a 4s timeout for the firmware
        ASoC: dapm: Fix input list to use source widgets
        ASoC: dpcm: Fix dpcm_get_be() to check that DAI is BE
        ASoC: wm8994: Apply volume updates with clocks enabled
        ASoC: wm8994: Ensure all AIFnCLK events are run from the _late variants
        ASoC: imx-audmux: add pinctrl support
        ASoC: dapm: Fix connected widget capture path query.
      b532ff20
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · fea7c783
      Linus Torvalds authored
      Pull networking fixes from David S. Miller:
      
      This has the fix for the wireless issues I ran into the other week as
      well as:
      
       1) Fix CAN c_can driver transmit handling resulting in BUG check
          triggers, from AnilKumar Ch.
      
       2) Fix packet drop monitor sleeping in atomic context, from Eric
          Dumazet.
      
       3) Fix mv643xx_eth driver build regression, from Andrew Lunn.
      
       4) Inetpeer freeing needs an RCU grace period in order to avoid races
          during tree invalidation.  From Eric Dumazet.
      
       5) Fix endianness bugs in xt_HMARK netfilter module, from Hans
          Schillstrom.
      
       6) Add proper module refcounting to l2tp_eth to avoid crash on module
          unload, from Eric Dumazet.
      
       7) Fix truncation of neighbour entry dumps due to logic errors in
          neigh_dump_info() and friends, from Eric Dumazet.
      
       8) The conversion of fib6_age() to dst_neigh_lookup() accidently
          reversed the logic of a flags test, fix from Thomas Graf.
      
       9) Fix checksum configuration in newer sky2 chips, from Stephen
          Hemminger.
      
      10) Revert BQL support in NIU driver, doesn't work.
      
      11) l2tp_ip_sendmsg() illegally uses a route without a proper reference.
          From Eric Dumazet.
      
      12) be2net driver references an SKB after it's potentially been freed,
          also from Eric Dumazet.
      
      13) Fix RCU stalls in dummy net driver init.  Also from Eric Dumazet.
      
      14) lpc_eth has several bugs in it's transmit engine leading to packet
          leaks and improper queue wakes, from Eric Dumazet.
      
      15) Apply short DMA workaround to more tg3 chips, from Matt Carlson.
      
      16) Add tilegx network driver.
      
      17) Bonding queue mapping for a packet can get corrupted, fix from Eric
          Dumazet.
      
      18) Fix bug in netpoll_send_udp() SKB management that can leave garbage
          in the payload in certain situations.  From Eric Dumazet.
      
      19) bnx2x driver interprets chip RX checksum offload incorrectly in
          encapsulation situations.  Fix from Eric Dumazet.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (75 commits)
        bnx2x: fix checksum validation
        netpoll: fix netpoll_send_udp() bugs
        bonding: Fix corrupted queue_mapping
        bonding:record primary when modify it via sysfs
        tilegx network driver: initial support
        tg3: Apply short DMA frag workaround to 5906
        net: stmmac: Fix clock en-/disable calls
        lpc_eth: fix tx completion
        lpc_eth: add missing ndo_change_mtu()
        dummy: fix rcu_sched self-detected stalls
        net: Reorder initialization in ip_route_output to fix gcc warning
        virtio-net: fix a race on 32bit arches
        r8169: avoid NAPI scheduling delay.
        net: Make linux/tcp.h C++ friendly (trivial)
        netdev: fix drivers/net/phy/ kernel-doc warnings
        net/core: fix kernel-doc warnings
        be2net: fix a race in be_xmit()
        l2tp: fix a race in l2tp_ip_sendmsg()
        mac80211: add back channel change flag
        NFC: Fix possible NULL ptr deref when getting the name of a socket
        ...
      fea7c783
  8. 13 Jun, 2012 13 commits
    • Eric Dumazet's avatar
      bnx2x: fix checksum validation · d6cb3e41
      Eric Dumazet authored
      bnx2x driver incorrectly sets ip_summed to CHECKSUM_UNNECESSARY on
      encapsulated segments. TCP stack happily accepts frames with bad
      checksums, if they are inside a GRE or IPIP encapsulation.
      
      Our understanding is that if no IP or L4 csum validation was done by the
      hardware, we should leave ip_summed as is (CHECKSUM_NONE), since
      hardware doesn't provide CHECKSUM_COMPLETE support in its cqe.
      
      Then, if IP/L4 checksumming was done by the hardware, set
      CHECKSUM_UNNECESSARY if no error was flagged.
      
      Patch based on findings and analysis from Robert Evans
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Cc: Yaniv Rosner <yanivr@broadcom.com>
      Cc: Merav Sicron <meravs@broadcom.com>
      Cc: Tom Herbert <therbert@google.com>
      Cc: Robert Evans <evansr@google.com>
      Cc: Willem de Bruijn <willemb@google.com>
      Acked-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d6cb3e41
    • Eric Dumazet's avatar
      netpoll: fix netpoll_send_udp() bugs · 954fba02
      Eric Dumazet authored
      Bogdan Hamciuc diagnosed and fixed following bug in netpoll_send_udp() :
      
      "skb->len += len;" instead of "skb_put(skb, len);"
      
      Meaning that _if_ a network driver needs to call skb_realloc_headroom(),
      only packet headers would be copied, leaving garbage in the payload.
      
      However the skb_realloc_headroom() must be avoided as much as possible
      since it requires memory and netpoll tries hard to work even if memory
      is exhausted (using a pool of preallocated skbs)
      
      It appears netpoll_send_udp() reserved 16 bytes for the ethernet header,
      which happens to work for typicall drivers but not all.
      
      Right thing is to use LL_RESERVED_SPACE(dev)
      (And also add dev->needed_tailroom of tailroom)
      
      This patch combines both fixes.
      
      Many thanks to Bogdan for raising this issue.
      Reported-by: default avatarBogdan Hamciuc <bogdan.hamciuc@freescale.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Tested-by: default avatarBogdan Hamciuc <bogdan.hamciuc@freescale.com>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Neil Horman <nhorman@tuxdriver.com>
      Reviewed-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Reviewed-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      954fba02
    • Linus Torvalds's avatar
      Merge tag 'sh-for-linus' of git://github.com/pmundt/linux-sh · 790b9d4b
      Linus Torvalds authored
      Pull SuperH fixes from Paul Mundt.
      
      * tag 'sh-for-linus' of git://github.com/pmundt/linux-sh:
        sh: Kill off additional asm-generic wrappers.
        sh: Setup CROSS_COMPILE at the top
        sh: Fix up link time defsym warnings.
        sh: use the new generic strnlen_user() function
        sh: switch to generic strncpy_from_user().
        sh: Kill off last dead UBC header
        serial: sh-sci: Make probe fail for ports that exceed the maximum count
        serial: sh-sci: Fix probe error paths
        clocksource: sh_tmu: Use clockevents_config_and_register().
        clocksource: sh_tmu: Convert timer lock to raw spinlock.
        clocksource: sh_mtu2: Convert timer lock to raw spinlock.
        clocksource: sh_cmt: Convert timer lock to raw spinlock.
        bug.h: need linux/kernel.h for TAINT_WARN.
        sh: convert to kbuild asm-generic support.
        sh64: Fix up fallout from generic init_task conversion.
        sh: arch/sh/kernel/process.c needs asm/fpu.h for unlazy_fpu().
      790b9d4b
    • Linus Torvalds's avatar
      Merge branch 'fixes-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds · c02feeea
      Linus Torvalds authored
      Pull led fixes from Bryan Wu.
      
      * 'fixes-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
        leds: Make LEDS_ASIC3 and LEDS_RENESAS_TPU depend on LEDS_CLASS=y
        leds: fixed a coding style issue.
        leds: don't disable blinking when writing the same value to delay_on or delay_off
      c02feeea
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 6ddb9904
      Linus Torvalds authored
      Pull m68k update from Geert Uytterhoeven.
      
      This makes m68k use the generic library functions for the user-space
      strn[cpy|len] functions.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: Use generic strncpy_from_user(), strlen_user(), and strnlen_user()
      6ddb9904
    • Mohammed Shafi Shajakhan's avatar
      ath9k: Fix softlockup in AR9485 · bcb7ad7b
      Mohammed Shafi Shajakhan authored
      steps to recreate:
      load latest ath9k driver with AR9485
      stop the network-manager and wpa_supplicant
      bring the interface up
      
      	Call Trace:
      	[<ffffffffa0517490>] ? ath_hw_check+0xe0/0xe0 [ath9k]
      	[<ffffffff812cd1e8>] __const_udelay+0x28/0x30
      	[<ffffffffa03bae7a>] ar9003_get_pll_sqsum_dvc+0x4a/0x80 [ath9k_hw]
      	[<ffffffffa05174eb>] ath_hw_pll_work+0x5b/0xe0 [ath9k]
      	[<ffffffff810744fe>] process_one_work+0x11e/0x470
      	[<ffffffff8107530f>] worker_thread+0x15f/0x360
      	[<ffffffff810751b0>] ? manage_workers+0x230/0x230
      	[<ffffffff81079af3>] kthread+0x93/0xa0
      	[<ffffffff815fd3a4>] kernel_thread_helper+0x4/0x10
      	[<ffffffff81079a60>] ? kthread_freezable_should_stop+0x70/0x70
      	[<ffffffff815fd3a0>] ? gs_change+0x13/0x13
      
      ensure that the PLL-WAR for AR9485/AR9340 is executed only if the STA is
      associated (or) IBSS/AP mode had started beaconing. Ideally this WAR
      is needed to recover from some rare beacon stuck during stress testing.
      Before the STA is associated/IBSS had started beaconing, PLL4(0x1618c)
      always seem to have zero even though we had configured PLL3(0x16188) to
      query about PLL's locking status. When we keep on polling infinitely PLL4's
      8th bit(ie check for PLL locking measurements is done), machine hangs
      due to softlockup.
      
      fixes https://bugzilla.redhat.com/show_bug.cgi?id=811142Reported-by: default avatarRolf Offermanns <rolf.offermanns@gmx.net>
      Cc: stable@vger.kernel.org [3.0+]
      Tested-by: default avatarMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
      Signed-off-by: default avatarMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      bcb7ad7b
    • John W. Linville's avatar
    • Linus Torvalds's avatar
      Merge tag 'omapdss-for-3.5-rc2' of git://gitorious.org/linux-omap-dss2/linux · 7794f709
      Linus Torvalds authored
      Pull omapdss build problem fix from Tomi Valkeinen:
       "Small fixes for omapdss driver.  Most importantly, fixes a build
        problem when debugfs or omapdss debug support is turned off, and fixes
        a suspend related crash."
      
      This has apparently been annoying rmk for a while..
      
      * tag 'omapdss-for-3.5-rc2' of git://gitorious.org/linux-omap-dss2/linux:
        OMAPDSS: fix registration of DPI and SDI devices
        OMAPDSS: DSI: Fix bug when calculating LP command interleaving parameters
        OMAPDSS: fix bogus WARN_ON in dss_runtime_put()
        OMAPDSS: Taal: fix compilation warning
        OMAPDSS: fix build when DEBUG_FS or DSS_DEBUG_SUPPORT disabled
      7794f709
    • Takashi Iwai's avatar
      ALSA: hda - Don't forget to call init verbs added by fixup list · 2e8b2b29
      Takashi Iwai authored
      During the split to the auto-parser helper functions, the actual call
      of init verbs was lost.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43366Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      2e8b2b29
    • David Spinadel's avatar
      mac80211: stop polling in disassociation · 79543d8e
      David Spinadel authored
      Stop connection monitor poll during disassociation.
      This clears the polling flags and if a scan was
      deferred it will be run.
      
      Without this fix, if a scan was deferred due to
      connection monitoring while disassociation happens,
      this scan blocks further scan requests until interface
      down/up which causes problems connecting to another AP.
      Signed-off-by: default avatarDavid Spinadel <david.spinadel@intel.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      79543d8e
    • Eliad Peller's avatar
      mac80211: check sdata_running on ieee80211_set_bitrate_mask · 554a43d5
      Eliad Peller authored
      Otherwise, we might call the driver callback before
      the interface was uploaded.
      
      Solves the following warning:
      WARNING: at net/mac80211/driver-ops.h:12 ieee80211_set_bitrate_mask+0xbc/0x18c [mac80211]()
      wlan0:  Failed check-sdata-in-driver check, flags: 0x0
      Modules linked in: wlcore_sdio wl12xx wl18xx wlcore mac80211 cfg80211 [last unloaded: cfg80211]
      [<c001b964>] (unwind_backtrace+0x0/0x12c) from [<c0495550>] (dump_stack+0x20/0x24)
      [<c0495550>] (dump_stack+0x20/0x24) from [<c003ee28>] (warn_slowpath_common+0x5c/0x74)
      [<c003ee28>] (warn_slowpath_common+0x5c/0x74) from [<c003eefc>] (warn_slowpath_fmt+0x40/0x48)
      [<c003eefc>] (warn_slowpath_fmt+0x40/0x48) from [<bf5c1ad0>] (ieee80211_set_bitrate_mask+0xbc/0x18c [mac80211])
      [<bf5c1ad0>] (ieee80211_set_bitrate_mask+0xbc/0x18c [mac80211]) from [<bf575960>] (nl80211_set_tx_bitrate_mask+0x350/0x358 [cfg80211])
      [<bf575960>] (nl80211_set_tx_bitrate_mask+0x350/0x358 [cfg80211]) from [<c03e9e94>] (genl_rcv_msg+0x1a8/0x1e8)
      [<c03e9e94>] (genl_rcv_msg+0x1a8/0x1e8) from [<c03e9164>] (netlink_rcv_skb+0x5c/0xc0)
      [<c03e9164>] (netlink_rcv_skb+0x5c/0xc0) from [<c03e9ce0>] (genl_rcv+0x28/0x34)
      [<c03e9ce0>] (genl_rcv+0x28/0x34) from [<c03e8e74>] (netlink_unicast+0x158/0x234)
      [<c03e8e74>] (netlink_unicast+0x158/0x234) from [<c03e93e0>] (netlink_sendmsg+0x218/0x298)
      [<c03e93e0>] (netlink_sendmsg+0x218/0x298) from [<c03b4e5c>] (sock_sendmsg+0xa4/0xc0)
      [<c03b4e5c>] (sock_sendmsg+0xa4/0xc0) from [<c03b5af4>] (__sys_sendmsg+0x1d8/0x254)
      [<c03b5af4>] (__sys_sendmsg+0x1d8/0x254) from [<c03b5ca8>] (sys_sendmsg+0x4c/0x70)
      [<c03b5ca8>] (sys_sendmsg+0x4c/0x70) from [<c0013980>] (ret_fast_syscall+0x0/0x3c)
      
      Note that calling the driver can also result
      in undefined behaviour since it doesn't have
      to deal with calls while down.
      Signed-off-by: default avatarEliad Peller <eliad@wizery.com>
      [removed timestamps, added note - Johannes]
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      554a43d5
    • Eliad Peller's avatar
      cfg80211: fix potential deadlock in regulatory · fe20b39e
      Eliad Peller authored
      reg_timeout_work() calls restore_regulatory_settings() which
      takes cfg80211_mutex.
      
      reg_set_request_processed() already holds cfg80211_mutex
      before calling cancel_delayed_work_sync(reg_timeout),
      so it might deadlock.
      
      Call the async cancel_delayed_work instead, in order
      to avoid the potential deadlock.
      
      This is the relevant lockdep warning:
      
      cfg80211: Calling CRDA for country: XX
      
      ======================================================
      [ INFO: possible circular locking dependency detected ]
      3.4.0-rc5-wl+ #26 Not tainted
      -------------------------------------------------------
      kworker/0:2/1391 is trying to acquire lock:
       (cfg80211_mutex){+.+.+.}, at: [<bf28ae00>] restore_regulatory_settings+0x34/0x418 [cfg80211]
      
      but task is already holding lock:
       ((reg_timeout).work){+.+...}, at: [<c0059e94>] process_one_work+0x1f0/0x480
      
      which lock already depends on the new lock.
      
      the existing dependency chain (in reverse order) is:
      
      -> #2 ((reg_timeout).work){+.+...}:
             [<c008fd44>] validate_chain+0xb94/0x10f0
             [<c0090b68>] __lock_acquire+0x8c8/0x9b0
             [<c0090d40>] lock_acquire+0xf0/0x114
             [<c005b600>] wait_on_work+0x4c/0x154
             [<c005c000>] __cancel_work_timer+0xd4/0x11c
             [<c005c064>] cancel_delayed_work_sync+0x1c/0x20
             [<bf28b274>] reg_set_request_processed+0x50/0x78 [cfg80211]
             [<bf28bd84>] set_regdom+0x550/0x600 [cfg80211]
             [<bf294cd8>] nl80211_set_reg+0x218/0x258 [cfg80211]
             [<c03c7738>] genl_rcv_msg+0x1a8/0x1e8
             [<c03c6a00>] netlink_rcv_skb+0x5c/0xc0
             [<c03c7584>] genl_rcv+0x28/0x34
             [<c03c6720>] netlink_unicast+0x15c/0x228
             [<c03c6c7c>] netlink_sendmsg+0x218/0x298
             [<c03933c8>] sock_sendmsg+0xa4/0xc0
             [<c039406c>] __sys_sendmsg+0x1e4/0x268
             [<c0394228>] sys_sendmsg+0x4c/0x70
             [<c0013840>] ret_fast_syscall+0x0/0x3c
      
      -> #1 (reg_mutex){+.+.+.}:
             [<c008fd44>] validate_chain+0xb94/0x10f0
             [<c0090b68>] __lock_acquire+0x8c8/0x9b0
             [<c0090d40>] lock_acquire+0xf0/0x114
             [<c04734dc>] mutex_lock_nested+0x48/0x320
             [<bf28b2cc>] reg_todo+0x30/0x538 [cfg80211]
             [<c0059f44>] process_one_work+0x2a0/0x480
             [<c005a4b4>] worker_thread+0x1bc/0x2bc
             [<c0061148>] kthread+0x98/0xa4
             [<c0014af4>] kernel_thread_exit+0x0/0x8
      
      -> #0 (cfg80211_mutex){+.+.+.}:
             [<c008ed58>] print_circular_bug+0x68/0x2cc
             [<c008fb28>] validate_chain+0x978/0x10f0
             [<c0090b68>] __lock_acquire+0x8c8/0x9b0
             [<c0090d40>] lock_acquire+0xf0/0x114
             [<c04734dc>] mutex_lock_nested+0x48/0x320
             [<bf28ae00>] restore_regulatory_settings+0x34/0x418 [cfg80211]
             [<bf28b200>] reg_timeout_work+0x1c/0x20 [cfg80211]
             [<c0059f44>] process_one_work+0x2a0/0x480
             [<c005a4b4>] worker_thread+0x1bc/0x2bc
             [<c0061148>] kthread+0x98/0xa4
             [<c0014af4>] kernel_thread_exit+0x0/0x8
      
      other info that might help us debug this:
      
      Chain exists of:
        cfg80211_mutex --> reg_mutex --> (reg_timeout).work
      
       Possible unsafe locking scenario:
      
             CPU0                    CPU1
             ----                    ----
        lock((reg_timeout).work);
                                     lock(reg_mutex);
                                     lock((reg_timeout).work);
        lock(cfg80211_mutex);
      
       *** DEADLOCK ***
      
      2 locks held by kworker/0:2/1391:
       #0:  (events){.+.+.+}, at: [<c0059e94>] process_one_work+0x1f0/0x480
       #1:  ((reg_timeout).work){+.+...}, at: [<c0059e94>] process_one_work+0x1f0/0x480
      
      stack backtrace:
      [<c001b928>] (unwind_backtrace+0x0/0x12c) from [<c0471d3c>] (dump_stack+0x20/0x24)
      [<c0471d3c>] (dump_stack+0x20/0x24) from [<c008ef70>] (print_circular_bug+0x280/0x2cc)
      [<c008ef70>] (print_circular_bug+0x280/0x2cc) from [<c008fb28>] (validate_chain+0x978/0x10f0)
      [<c008fb28>] (validate_chain+0x978/0x10f0) from [<c0090b68>] (__lock_acquire+0x8c8/0x9b0)
      [<c0090b68>] (__lock_acquire+0x8c8/0x9b0) from [<c0090d40>] (lock_acquire+0xf0/0x114)
      [<c0090d40>] (lock_acquire+0xf0/0x114) from [<c04734dc>] (mutex_lock_nested+0x48/0x320)
      [<c04734dc>] (mutex_lock_nested+0x48/0x320) from [<bf28ae00>] (restore_regulatory_settings+0x34/0x418 [cfg80211])
      [<bf28ae00>] (restore_regulatory_settings+0x34/0x418 [cfg80211]) from [<bf28b200>] (reg_timeout_work+0x1c/0x20 [cfg80211])
      [<bf28b200>] (reg_timeout_work+0x1c/0x20 [cfg80211]) from [<c0059f44>] (process_one_work+0x2a0/0x480)
      [<c0059f44>] (process_one_work+0x2a0/0x480) from [<c005a4b4>] (worker_thread+0x1bc/0x2bc)
      [<c005a4b4>] (worker_thread+0x1bc/0x2bc) from [<c0061148>] (kthread+0x98/0xa4)
      [<c0061148>] (kthread+0x98/0xa4) from [<c0014af4>] (kernel_thread_exit+0x0/0x8)
      cfg80211: Calling CRDA to update world regulatory domain
      cfg80211: World regulatory domain updated:
      cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
      cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
      cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
      cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
      cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
      cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarEliad Peller <eliad@wizery.com>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      fe20b39e
    • Paul Mundt's avatar
      Merge branches 'sh/urgent', 'sh/core', 'sh/clockevents', 'sh/asm-generic' and... · 380622e9
      Paul Mundt authored
      Merge branches 'sh/urgent', 'sh/core', 'sh/clockevents', 'sh/asm-generic' and 'sh/trivial' into sh-fixes-for-linus
      380622e9