1. 03 Apr, 2013 5 commits
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · d6624832
      David S. Miller authored
      Pull net into net-next to get the synchronize_net() bug fix in
      bonding.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d6624832
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · da241efc
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix VSOCK layer handling of context ID changes, from Reilly Grant.
      
       2) Now that we have a synchronize_net() in netdev_rx_handler_unregister(),
          we can't let any call sites hold locks.  Unfortunately bonding does,
          so we have to drop the rwlock there a little bit earlier, fix from
          Veaceslav Falico.
      
       3) MAC address setting loop exits one iteration too early in mlx4
          driver, from Yan Burman.
      
       4) Restore ipv6 routes properly upon ifdown/ifup of loopback, from
          Balakumaran Kannan.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        VSOCK: Handle changes to the VMCI context ID.
        net IPv6 : Fix broken IPv6 routing table after loopback down-up
        cbq: incorrect processing of high limits
        net/mlx4_en: Fix setting initial MAC address
        bonding: get netdev_rx_handler_unregister out of locks
      da241efc
    • Linus Torvalds's avatar
      Merge tag 'regmap-v3.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 6e8517a9
      Linus Torvalds authored
      Pull regmap fixes from Mark Brown:
       "A small collection of fixes.  The most important ones are those from
        Stephen and Lars-Peter both of which fix cache issues that have been
        lurking for a while but not manifesting noticably enough for anyone to
        report them."
      
      * tag 'regmap-v3.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: async: Add missing return
        regmap: don't corrupt work buffer in _regmap_raw_write()
        regmap: cache Fix regcache-rbtree sync
        regmap: Initialize `map->debugfs' before regcache
      6e8517a9
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · bd709bd0
      Linus Torvalds authored
      Pull DRM fixes from Dave Airlie:
       "Two core fixes, both regressions, along with some intel and some
        nouveau fixes for regressions and oopses"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm: correctly restore mappings if drm_open fails
        drm/nouveau: fix NULL ptr dereference from nv50_disp_intr()
        drm/nouveau: fix handling empty channel list in ioctl's
        drm: don't unlock in the addfb error paths
        drm/i915: Fix build failure
        drm/i915: Be sure to turn hsync/vsync back on at crt enable (v2)
        drm/i915: duct-tape locking when eDP init fails
      bd709bd0
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · aea7fab8
      Linus Torvalds authored
      Pull MIPS fixes from Ralf Baechle:
       "A collection of fixes pretty much across the MIPS code.  Even the
        change to include/linux/signal.h by David Howells' 2a148698 ("Fix
        breakage in MIPS siginfo handling") should be considered MIPS-specific
        as it touches an ifdefed segment that is only relevant to MIPS and
        which unfortunately can't be made to go away entirely."
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        Fix breakage in MIPS siginfo handling
        Revert "MIPS: BCM63XX: Call board_register_device from device_initcall()"
        MIPS: BCM63XX: Make nvram checksum failure non fatal
        MIPS: Fix code generation for non-DSP capable CPUs
        MIPS: Fix inconsistent formatting inside /proc/cpuinfo
        MIPS: SEAD3: Enable LL/SC.
        MIPS: Get rid of CONFIG_CPU_HAS_LLSC again
        MIPS: Add dependencies for HAVE_ARCH_TRANSPARENT_HUGEPAGE
        MIPS: VR4133: Fix probe for LL/SC.
        MIPS: Fix logic errors in bitops.c
        MIPS: Use CONFIG_CPU_MIPSR2 in csum_partial.S
        MIPS: compat: Return same error ENOSYS as native for invalid operation.
      aea7fab8
  2. 02 Apr, 2013 27 commits
  3. 01 Apr, 2013 8 commits
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux · fefcdbe4
      Linus Torvalds authored
      Pull virtio fixes from Rusty Russell:
       "One reversion, a tiny leak fix, and a cc:stable locking fix, in two
        parts"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
        virtio: console: add locking around c_ovq operations
        virtio: console: rename cvq_lock to c_ivq_lock
        hw_random: free rng_buffer at module exit
        Revert "virtio_console: Initialize guest_connected=true for rproc_serial"
      fefcdbe4
    • Anatol Pomozov's avatar
      loop: prevent bdev freeing while device in use · c1681bf8
      Anatol Pomozov authored
      struct block_device lifecycle is defined by its inode (see fs/block_dev.c) -
      block_device allocated first time we access /dev/loopXX and deallocated on
      bdev_destroy_inode. When we create the device "losetup /dev/loopXX afile"
      we want that block_device stay alive until we destroy the loop device
      with "losetup -d".
      
      But because we do not hold /dev/loopXX inode its counter goes 0, and
      inode/bdev can be destroyed at any moment. Usually it happens at memory
      pressure or when user drops inode cache (like in the test below). When later in
      loop_clr_fd() we want to use bdev we have use-after-free error with following
      stack:
      
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000280
        bd_set_size+0x10/0xa0
        loop_clr_fd+0x1f8/0x420 [loop]
        lo_ioctl+0x200/0x7e0 [loop]
        lo_compat_ioctl+0x47/0xe0 [loop]
        compat_blkdev_ioctl+0x341/0x1290
        do_filp_open+0x42/0xa0
        compat_sys_ioctl+0xc1/0xf20
        do_sys_open+0x16e/0x1d0
        sysenter_dispatch+0x7/0x1a
      
      To prevent use-after-free we need to grab the device in loop_set_fd()
      and put it later in loop_clr_fd().
      
      The issue is reprodusible on current Linus head and v3.3. Here is the test:
      
        dd if=/dev/zero of=loop.file bs=1M count=1
        while [ true ]; do
          losetup /dev/loop0 loop.file
          echo 2 > /proc/sys/vm/drop_caches
          losetup -d /dev/loop0
        done
      
      [ Doing bdgrab/bput in loop_set_fd/loop_clr_fd is safe, because every
        time we call loop_set_fd() we check that loop_device->lo_state is
        Lo_unbound and set it to Lo_bound If somebody will try to set_fd again
        it will get EBUSY.  And if we try to loop_clr_fd() on unbound loop
        device we'll get ENXIO.
      
        loop_set_fd/loop_clr_fd (and any other loop ioctl) is called under
        loop_device->lo_ctl_mutex. ]
      Signed-off-by: default avatarAnatol Pomozov <anatol.pomozov@gmail.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c1681bf8
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.linaro.org/people/mturquette/linux · aae92db9
      Linus Torvalds authored
      Pull tegra clock driver fix from Mike Turquette:
       "Missing base address in Tegra clock driver results in non-operational
        PCIe.  On some devices this means that Ethernet will go uninitialized
        and other devices will fail.  This pull request fixes it with a single
        patch to pass the proper base address in the Tegra clock driver."
      
      * tag 'clk-fixes-for-linus' of git://git.linaro.org/people/mturquette/linux:
        clk: tegra: Allow PLLE training to succeed
      aae92db9
    • Linus Torvalds's avatar
      Merge tag 'for-3.9-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rwlove/fcoe · dc543f9e
      Linus Torvalds authored
      Pull FCoE fixes from Robert Love:
       "Critical patches to fix FCoE VN2VN mode with new interfaces targeting
        3.9-rc"
      
      * tag 'for-3.9-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rwlove/fcoe:
        libfcoe: Fix fcoe_sysfs VN2VN mode
        libfc, fcoe, bnx2fc: Split fc_disc_init into fc_disc_{init, config}
        libfc, fcoe, bnx2fc: Always use fcoe_disc_init for discovery layer initialization
        fcoe: Fix deadlock between create and destroy paths
        bnx2fc: Make the fcoe_cltr the SCSI host parent
      dc543f9e
    • Thierry Reding's avatar
      clk: tegra: Allow PLLE training to succeed · 0f1bc12e
      Thierry Reding authored
      Under some circumstances the PLLE needs to be retrained, in which case
      access to the PMC registers is required. Fix this by passing a pointer
      to the PMC registers instead of NULL when registering the PLLE clock.
      Signed-off-by: default avatarThierry Reding <thierry.reding@avionic-design.de>
      Acked-By: default avatarPeter De Schrijver <pdeschrijver@nvidia.com>
      Signed-off-by: default avatarMike Turquette <mturquette@linaro.org>
      0f1bc12e
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · a210576c
      David S. Miller authored
      Conflicts:
      	net/mac80211/sta_info.c
      	net/wireless/core.h
      
      Two minor conflicts in wireless.  Overlapping additions of extern
      declarations in net/wireless/core.h and a bug fix overlapping with
      the addition of a boolean parameter to __ieee80211_key_free().
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a210576c
    • Linus Torvalds's avatar
      Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile · 3658f360
      Linus Torvalds authored
      Pull arch/tile fix from Chris Metcalf:
       "This change allows newer Tilera boot tools to work correctly with
        current (and stable) kernels by using the right filename to get the
        initramfs from the Tilera hypervisor filesystem."
      
      * 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
        tile: expect new initramfs name from hypervisor file system
      3658f360
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · ff3421de
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) sadb_msg prepared for IPSEC userspace forgets to initialize the
          satype field, fix from Nicolas Dichtel.
      
       2) Fix mac80211 synchronization during station removal, from Johannes
          Berg.
      
       3) Fix IPSEC sequence number notifications when they wrap, from Steffen
          Klassert.
      
       4) Fix cfg80211 wdev tracing crashes when add_virtual_intf() returns an
          error pointer, from Johannes Berg.
      
       5) In mac80211, don't call into the channel context code with the
          interface list mutex held.  From Johannes Berg.
      
       6) In mac80211, if we don't actually associate, do not restart the STA
          timer, otherwise we can crash.  From Ben Greear.
      
       7) Missing dma_mapping_error() check in e1000, ixgb, and e1000e.  From
          Christoph Paasch.
      
       8) Fix sja1000 driver defines to not conflict with SH port, from Marc
          Kleine-Budde.
      
       9) Don't call il4965_rs_use_green with a NULL station, from Colin Ian
          King.
      
      10) Suspend/Resume in the FEC driver fail because the buffer descriptors
          are not initialized at all the moments in which they should.  Fix
          from Frank Li.
      
      11) cpsw and davinci_emac drivers both use the wrong interface to
          restart a stopped TX queue.  Use netif_wake_queue not
          netif_start_queue, the latter is for initialization/bringup not
          active management of the queue.  From Mugunthan V N.
      
      12) Fix regression in rate calculations done by
          psched_ratecfg_precompute(), missing u64 type promotion.  From
          Sergey Popovich.
      
      13) Fix length overflow in tg3 VPD parsing, from Kees Cook.
      
      14) AOE driver fails to allocate enough headroom, resulting in crashes.
          Fix from Eric Dumazet.
      
      15) RX overflow happens too quickly in sky2 driver because pause packet
          thresholds are not programmed correctly.  From Mirko Lindner.
      
      16) Bonding driver manages arp_interval and miimon settings incorrectly,
          disabling one unintentionally disables both.  Fix from Nikolay
          Aleksandrov.
      
      17) smsc75xx drivers don't program the RX mac properly for jumbo frames.
          Fix from Steve Glendinning.
      
      18) Fix off-by-one in Codel packet scheduler.  From Vijay Subramanian.
      
      19) Fix packet corruption in atl1c by disabling MSI support, from Hannes
          Frederic Sowa.
      
      20) netdev_rx_handler_unregister() needs a synchronize_net() to fix
          crashes in bonding driver unload stress tests.  From Eric Dumazet.
      
      21) rxlen field of ks8851 RX packet descriptors not interpreted
          correctly (it is 12 bits not 16 bits, so needs to be masked after
          shifting the 32-bit value down 16 bits).  Fix from Max Nekludov.
      
      22) Fix missed RX/TX enable in sh_eth driver due to mishandling of link
          change indications.  From Sergei Shtylyov.
      
      23) Fix crashes during spurious ECI interrupts in sh_eth driver, also
          from Sergei Shtylyov.
      
      24) dm9000 driver initialization is done wrong for revision B devices
          with DSP PHY, from Joseph CHANG.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (53 commits)
        DM9000B: driver initialization upgrade
        sh_eth: make 'link' field of 'struct sh_eth_private' *int*
        sh_eth: workaround for spurious ECI interrupt
        sh_eth: fix handling of no LINK signal
        ks8851: Fix interpretation of rxlen field.
        net: add a synchronize_net() in netdev_rx_handler_unregister()
        MAINTAINERS: Update netxen_nic maintainers list
        atl1e: drop pci-msi support because of packet corruption
        net: fq_codel: Fix off-by-one error
        net: calxedaxgmac: Wake-on-LAN fixes
        net: calxedaxgmac: fix rx ring handling when OOM
        net: core: Remove redundant call to 'nf_reset' in 'dev_forward_skb'
        smsc75xx: fix jumbo frame support
        net: fix the use of this_cpu_ptr
        bonding: fix disabling of arp_interval and miimon
        ipv6: don't accept node local multicast traffic from the wire
        sky2: Threshold for Pause Packet is set wrong
        sky2: Receive Overflows not counted
        aoe: reserve enough headroom on skbs
        line up comment for ndo_bridge_getlink
        ...
      ff3421de