1. 15 Jun, 2013 2 commits
    • Oleg Nesterov's avatar
      move exit_task_namespaces() outside of exit_notify() · 8aac6270
      Oleg Nesterov authored
      exit_notify() does exit_task_namespaces() after
      forget_original_parent(). This was needed to ensure that ->nsproxy
      can't be cleared prematurely, an exiting child we are going to
      reparent can do do_notify_parent() and use the parent's (ours) pid_ns.
      
      However, after 32084504 "pidns: use task_active_pid_ns in
      do_notify_parent" ->nsproxy != NULL is no longer needed, we rely
      on task_active_pid_ns().
      
      Move exit_task_namespaces() from exit_notify() to do_exit(), after
      exit_fs() and before exit_task_work().
      
      This solves the problem reported by Andrey, free_ipc_ns()->shm_destroy()
      does fput() which needs task_work_add().
      
      Note: this particular problem can be fixed if we change fput(), and
      that change makes sense anyway. But there is another reason to move
      the callsite. The original reason for exit_task_namespaces() from
      the middle of exit_notify() was subtle and it has already gone away,
      now this looks confusing. And this allows us do simplify exit_notify(),
      we can avoid unlock/lock(tasklist) and we can use ->exit_state instead
      of PF_EXITING in forget_original_parent().
      Reported-by: default avatarAndrey Vagin <avagin@openvz.org>
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      Acked-by: default avatarAndrey Vagin <avagin@openvz.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      8aac6270
    • Oleg Nesterov's avatar
      fput: task_work_add() can fail if the caller has passed exit_task_work() · e7b2c406
      Oleg Nesterov authored
      fput() assumes that it can't be called after exit_task_work() but
      this is not true, for example free_ipc_ns()->shm_destroy() can do
      this. In this case fput() silently leaks the file.
      
      Change it to fallback to delayed_fput_work if task_work_add() fails.
      The patch looks complicated but it is not, it changes the code from
      
      	if (PF_KTHREAD) {
      		schedule_work(...);
      		return;
      	}
      	task_work_add(...)
      
      to
      	if (!PF_KTHREAD) {
      		if (!task_work_add(...))
      			return;
      		/* fallback */
      	}
      	schedule_work(...);
      
      As for shm_destroy() in particular, we could make another fix but I
      think this change makes sense anyway. There could be another similar
      user, it is not safe to assume that task_work_add() can't fail.
      Reported-by: default avatarAndrey Vagin <avagin@openvz.org>
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      e7b2c406
  2. 07 Jun, 2013 1 commit
  3. 05 Jun, 2013 13 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 4d3797d7
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix timeouts with direct mode authentication in mac80211, from
          Stanislaw Gruszka.
      
       2) Aggregation sessions can deadlock in ath9k, from Felix Fietkau.
      
       3) Netfilter's xt_addrtype doesn't work with ipv6 due to route lookups
          creating undesirable cache entries, from Florian Westphal.
      
       4) Fix netfilter's ipt_ULOG from generating non-NULL terminated
          strings.
      
       5) Fix netdev transmit queue crashes in mac80211, from Johannes Berg.
      
       6) Fix copy and paste error in 802.11 stack that broke reporting of
          64-bit station tx statistics, from Felix Fietkau.
      
       7) When qlge_probe fails, it leaks the netdev.  Fix from Wei Yongjun.
      
       8) SKB control block (where we store the IP options information,
          amongst other things) must be cleared properly otherwise ICMP
          sending can crash for IP tunnels.  Fix from Eric Dumazet.
      
       9) Verification of Energy Efficient Ether support was coded wrongly,
          the test was inversed.  Fix from Giuseppe CAVALLARO.
      
      10) TCP handles redirects improperly because the wrong flow key is used
          for the route lookup.  From Michal Kubecek.
      
      11) Don't interpret MSG_CMSG_COMPAT from userspace, fix from Andy
          Lutomirski.
      
      12) The new AF_VSOCK was missing from the lockdep string table, fix from
          Federico Vaga.
      
      13) be2net doesn't handle checksumming of IP fragments properly, from
          Somnath Kotur.
      
      14) Fix several bugs in the device address list code that lead to
          crashes and other misbehaviors.  From Jay Vosburgh.
      
      15) Fix ipv6 segmentation handling of fragmented GRE tunnel traffic,
          from Pravin B Shalr.
      
      16) Fix usage of stale policies in IPSEC layer, from Paul Moore.
      
      17) Fix team driver dump of ports when there are a large number of them,
          from Jiri Pirko.
      
      18) Fix softlockups in UDP ipv4 socket lookup causes by and error in the
          hlist_nulls_for_each_entry_rcu() macro.  From Eric Dumazet.
      
      19) Fix several regressions added by the high rate accuracy changes to
          the htb packet scheduler.  From Eric Dumazet.
      
      20) Fix DMA'ing onto the stack in esd_usb2 and peak_usb CAN drivers,
          from Olivier Sobrie and Marc Kleine-Budde.
      
      21) Fix unremovable network devices due to missing route pointer
          installation in the per-device ipv6 address list entries.  From Gao
          feng.
      
      22) Apply the tg3 5719 DMA workaround on 5720 chips as well, otherwise
          we get stalls.  From Nithin Sujir.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (68 commits)
        net_sched: htb: do not mix 1ns and 64ns time units
        net: fix sk_buff head without data area
        tg3: Add read dma workaround for 5720
        net: ethernet: xilinx_emaclite: set protocol selector bits when writing ANAR
        bnx2x: Fix bridged GSO for 57710/57711 chips
        net: fec: add fallback to random MAC address
        bnx2x: fix TCP offload for tunneling ipv4 over ipv6
        ipv6: assign rt6_info to inet6_ifaddr in init_loopback
        net/mlx4_core: Keep VF assigned MAC in the PF admin table
        net/mlx4_en: Handle unassigned VF MAC address correctly
        net/mlx4_core: Return -EPROBE_DEFER when a VF is probed before PF is sufficiently initialized
        net/mlx4_en: Fix adaptive moderation cq update
        net: can: peak_usb: Do not do dma on the stack
        net: can: esd_usb2: Do not do dma on the stack
        net: can: kvaser_usb: fix reception on "USBcan Pro" and "USBcan R" type hardware.
        net_sched: restore "overhead xxx" handling
        net: force a reload of first item in hlist_nulls_for_each_entry_rcu
        hyperv: Fix vlan_proto setting in netvsc_recv_callback()
        team: fix port list dump for big number of ports
        list: introduce list_first_entry_or_null
        ...
      4d3797d7
    • Eric Dumazet's avatar
      net_sched: htb: do not mix 1ns and 64ns time units · 5343a7f8
      Eric Dumazet authored
      commit 56b765b7 ("htb: improved accuracy at high rates") added another
      regression for low rates, because it mixes 1ns and 64ns time units.
      
      So the maximum delay (mbuffer) was not 60 second, but 937 ms.
      
      Lets convert all time fields to 1ns as 64bit arches are becoming the
      norm.
      Reported-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Tested-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5343a7f8
    • Pablo Neira's avatar
      net: fix sk_buff head without data area · 5e71d9d7
      Pablo Neira authored
      Eric Dumazet spotted that we have to check skb->head instead
      of skb->data as skb->head points to the beginning of the
      data area of the skbuff. Similarly, we have to initialize the
      skb->head pointer, not skb->data in __alloc_skb_head.
      
      After this fix, netlink crashes in the release path of the
      sk_buff, so let's fix that as well.
      
      This bug was introduced in (0ebd0ac5 net: add function to
      allocate sk_buff head without data area).
      Reported-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5e71d9d7
    • Nithin Sujir's avatar
      tg3: Add read dma workaround for 5720 · 9bc297ea
      Nithin Sujir authored
      Commit 091f0ea3 "tg3: Add New 5719 Read
      DMA workaround" added a workaround for TX DMA stall on the 5719. This
      workaround needs to be applied to the 5720 as well.
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarRoland Dreier <roland@purestorage.com>
      Tested-by: default avatarRoland Dreier <roland@purestorage.com>
      Signed-off-by: default avatarNithin Nayak Sujir <nsujir@broadcom.com>
      Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9bc297ea
    • Jens Renner \(EFE\)'s avatar
      net: ethernet: xilinx_emaclite: set protocol selector bits when writing ANAR · 3a5395b3
      Jens Renner \(EFE\) authored
      This patch sets the protocol selector bits (4:0) of the PHY's MII_ADVERTISE
      register (ANAR) when writing ADVERTISE_ALL. The protocol selector bits are
      indicating IEEE 803.3u support and are fixed / read-only on some PHYs. Not
      setting them correctly on others (like TI DP83630) makes the PHY fall back
      to 10M HDX mode which should be avoided.
      
      Tested for TI DP83630 PHY on Microblaze platform.
      Signed-off-by: default avatarJens Renner <renner@efe-gmbh.de>
      Tested-by: default avatarMichal Simek <monstr@monstr.eu>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3a5395b3
    • Yuval Mintz's avatar
      bnx2x: Fix bridged GSO for 57710/57711 chips · 44dbc78e
      Yuval Mintz authored
      It was recently found out that GSO on 57710/57711 was broken, due to packets
      being sent without a valid IP checksum.
      
      Commit 057cf65e "bnx2x: Fix GSO for 57710/57711 chips" partially fixed this
      issue, but failed to set the correct IP checksum when receiving GSO packets
      via bridges, as such packets enter bnx2x_tx_split() and the FW flags needed
      to calculate IP checksum were erroneously set in the incorrect
      buffer descriptor.
      
      This patch re-enables GSO in said scenario for 57710/57711 chips.
      Signed-off-by: default avatarYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: default avatarAriel Elior <ariele@broadcom.com>
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      44dbc78e
    • Linus Torvalds's avatar
      Merge tag 'mmc-fixes-for-3.10-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc · 844ce9f2
      Linus Torvalds authored
      Pull MMC fixes from Chris Ball:
       - sdhci-acpi: Fix initial runtime PM status, add more ACPI IDs
       - atmel-mci, omap_hsmmc: DT handling fixes
       - esdhc-imx: Fix SDIO IRQs, fix multiblock reads (both h/w errata)
      
      * tag 'mmc-fixes-for-3.10-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:
        mmc: omap_hsmmc: Skip platform_get_resource_byname() for dt case
        mmc: omap_hsmmc: convert to dma_request_slave_channel_compat
        mmc: omap_hsmmc: Fix the DT pbias workaround for MMC controllers 2 to 5
        mmc: sdhci-pci: add more device ids
        mmc: sdhci-acpi: add more device ids
        mmc: sdhci-acpi: fix initial runtime pm status
        mmc: atmel-mci: convert to dma_request_slave_channel_compat()
        mmc: sdhci-esdhc-imx: fix multiblock reads on i.MX53
        mmc: sdhci-esdhc-imx: Fix SDIO interrupts
      844ce9f2
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · bb762929
      Linus Torvalds authored
      Pull input fixes from Dmitry Torokhov:
       "Just a 2 small driver fixups here"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: wacom - fix a typo for Cintiq 22HDT
        Input: synaptics - fix sync lost after resume on some laptops
      bb762929
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 8b35c359
      Linus Torvalds authored
      Pull kvm bugfixes from Gleb Natapov:
       "The bulk of the fixes is in MIPS KVM kernel<->userspace ABI.  MIPS KVM
        is new for 3.10 and some problems were found with current ABI.  It is
        better to fix them now and do not have a kernel with broken one"
      
      * 'fixes' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: Fix race in apic->pending_events processing
        KVM: fix sil/dil/bpl/spl in the mod/rm fields
        KVM: Emulate multibyte NOP
        ARM: KVM: be more thorough when invalidating TLBs
        ARM: KVM: prevent NULL pointer dereferences with KVM VCPU ioctl
        mips/kvm: Use ENOIOCTLCMD to indicate unimplemented ioctls.
        mips/kvm: Fix ABI by moving manipulation of CP0 registers to KVM_{G,S}ET_ONE_REG
        mips/kvm: Use ARRAY_SIZE() instead of hardcoded constants in kvm_arch_vcpu_ioctl_{s,g}et_regs
        mips/kvm: Fix name of gpr field in struct kvm_regs.
        mips/kvm: Fix ABI for use of 64-bit registers.
        mips/kvm: Fix ABI for use of FPU.
      8b35c359
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes · 6f66f900
      Linus Torvalds authored
      Pull gfs2 fixes from Steven Whitehouse:
       "There are four patches this time.
      
        The first fixes a problem where the wrong descriptor type was being
        written into the log for journaled data blocks.
      
        The second fixes a race relating to the deallocation of allocator
        data.
      
        The third provides a fallback if kmalloc is unable to satisfy a
        request to allocate a directory hash table.
      
        The fourth fixes the iopen glock caching so that inodes are deleted in
        a more timely manner after rmdir/unlink"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-fixes:
        GFS2: Don't cache iopen glocks
        GFS2: Fall back to vmalloc if kmalloc fails for dir hash tables
        GFS2: Increase i_writecount during gfs2_setattr_size
        GFS2: Set log descriptor type for jdata blocks
      6f66f900
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · 8764d861
      Linus Torvalds authored
      Pull fuse fixes from Miklos Szeredi:
       "One patch fixes an Oops introduced in 3.9 with the readdirplus
        feature.  The rest are fixes for async-dio in 3.10"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: fix alignment in short read optimization for async_dio
        fuse: return -EIOCBQUEUED from fuse_direct_IO() for all async requests
        fuse: fix readdirplus Oops in fuse_dentry_revalidate
        fuse: update inode size and invalidate attributes on fallocate
        fuse: truncate pagecache range on hole punch
        fuse: allocate for_background dio requests based on io->async state
      8764d861
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze · 1dc735bd
      Linus Torvalds authored
      Pull microblaze fixes from Michal Simek:
       "One is fixing warning reported by sparse and the second warning was
        reported by Geert in his build regressions/improvements status update
        for -rc4."
      
      * 'next' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Use static inline functions in cacheflush.h
        microblaze: Fix sparse warnings
      1dc735bd
    • Lucas Stach's avatar
      net: fec: add fallback to random MAC address · ff5b2fab
      Lucas Stach authored
      If no valid MAC address could be obtained from the hardware,
      fall back to a randomly generated one.
      Signed-off-by: default avatarPavel Machek <pavel@denx.de>
      Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ff5b2fab
  4. 04 Jun, 2013 9 commits
  5. 03 Jun, 2013 15 commits