1. 09 Sep, 2013 5 commits
    • Waiman Long's avatar
      dcache: Translating dentry into pathname without taking rename_lock · 232d2d60
      Waiman Long authored
      When running the AIM7's short workload, Linus' lockref patch eliminated
      most of the spinlock contention. However, there were still some left:
      
           8.46%     reaim  [kernel.kallsyms]     [k] _raw_spin_lock
                       |--42.21%-- d_path
                       |          proc_pid_readlink
                       |          SyS_readlinkat
                       |          SyS_readlink
                       |          system_call
                       |          __GI___readlink
                       |
                       |--40.97%-- sys_getcwd
                       |          system_call
                       |          __getcwd
      
      The big one here is the rename_lock (seqlock) contention in d_path()
      and the getcwd system call. This patch will eliminate the need to take
      the rename_lock while translating dentries into the full pathnames.
      
      The need to take the rename_lock is to make sure that no rename
      operation can be ongoing while the translation is in progress. However,
      only one thread can take the rename_lock thus blocking all the other
      threads that need it even though the translation process won't make
      any change to the dentries.
      
      This patch will replace the writer's write_seqlock/write_sequnlock
      sequence of the rename_lock of the callers of the prepend_path() and
      __dentry_path() functions with the reader's read_seqbegin/read_seqretry
      sequence within these 2 functions. As a result, the code will have to
      retry if one or more rename operations had been performed. In addition,
      RCU read lock will be taken during the translation process to make sure
      that no dentries will go away. To prevent live-lock from happening,
      the code will switch back to take the rename_lock if read_seqretry()
      fails for three times.
      
      To further reduce spinlock contention, this patch does not take the
      dentry's d_lock when copying the filename from the dentries. Instead,
      it treats the name pointer and length as unreliable and just copy
      the string byte-by-byte over until it hits a null byte or the end of
      string as specified by the length. This should avoid stepping into
      invalid memory address. The error cases are left to be handled by
      the sequence number check.
      
      The following code re-factoring are also made:
      1. Move prepend('/') into prepend_name() to remove one conditional
         check.
      2. Move the global root check in prepend_path() back to the top of
         the while loop.
      
      With this patch, the _raw_spin_lock will now account for only 1.2%
      of the total CPU cycles for the short workload. This patch also has
      the effect of reducing the effect of running perf on its profile
      since the perf command itself can be a heavy user of the d_path()
      function depending on the complexity of the workload.
      
      When taking the perf profile of the high-systime workload, the amount
      of spinlock contention contributed by running perf without this patch
      was about 16%. With this patch, the spinlock contention caused by
      the running of perf will go away and we will have a more accurate
      perf profile.
      Signed-off-by: default avatarWaiman Long <Waiman.Long@hp.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      232d2d60
    • Ian Kent's avatar
      autofs4 - fix device ioctl mount lookup · ac838719
      Ian Kent authored
      When reconnecting to automounts at startup an autofs ioctl is used
      to find the device and inode of existing mounts so they can be used
      to open a file descriptor of possibly covered mounts.
      
      At this time the the caller might not yet "own" the mount so it can
      trigger calling ->d_automount(). This causes automount to hang when
      trying to reconnect to direct or offset mount types.
      
      Consequently kern_path() can't be used but kern_path_mountpoint() can be.
      Signed-off-by: default avatarIan Kent <raven@themaw.net>
      Cc: Jeff Layton <jlayton@redhat.com>
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      ac838719
    • Al Viro's avatar
      introduce kern_path_mountpoint() · 2d864651
      Al Viro authored
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      2d864651
    • Al Viro's avatar
      rename user_path_umountat() to user_path_mountpoint_at() · 197df04c
      Al Viro authored
      ... and move the extern from linux/namei.h to fs/internal.h,
      along with that of vfs_path_lookup().
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      197df04c
    • Al Viro's avatar
      take unlazy_walk() into umount_lookup_last() · 35759521
      Al Viro authored
      ... and massage it a bit to reduce nesting
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      35759521
  2. 07 Sep, 2013 18 commits
    • Al Viro's avatar
      Kill indirect include of file.h from eventfd.h, use fdget() in cgroup.c · 4e10f3c9
      Al Viro authored
      kernel/cgroup.c is the only place in the tree that relies on eventfd.h
      pulling file.h; move that include there.  Switch from eventfd_fget()/fput()
      to fdget()/fdput(), while we are at it - eventfd_ctx_fileget() will fail
      on non-eventfd descriptors just fine, no need to do that check twice...
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      4e10f3c9
    • Al Viro's avatar
      prune_super(): sb->s_op is never NULL · d0407903
      Al Viro authored
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      d0407903
    • Al Viro's avatar
      exportfs: don't assume that ->iterate() won't feed us too long entries · dfc59e2c
      Al Viro authored
      On some filesystems it's impossible even with fs corruption, but we'd
      better not rely on that, what with memcpy() into on-stack array we
      are doing there.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      dfc59e2c
    • Al Viro's avatar
      afs: get rid of redundant ->d_name.len checks · 5d8943b0
      Al Viro authored
      No dentry can get to directory modification methods without
      having passed either ->lookup() or ->atomic_open(); if name is
      rejected by those two (or by ->d_hash()) with an error, it won't
      be seen by anything else.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      5d8943b0
    • Linus Torvalds's avatar
      lockref: add ability to mark lockrefs "dead" · e7d33bb5
      Linus Torvalds authored
      The only actual current lockref user (dcache) uses zero reference counts
      even for perfectly live dentries, because it's a cache: there may not be
      any users, but that doesn't mean that we want to throw away the dentry.
      
      At the same time, the dentry cache does have a notion of a truly "dead"
      dentry that we must not even increment the reference count of, because
      we have pruned it and it is not valid.
      
      Currently that distinction is not visible in the lockref itself, and the
      dentry cache validation uses "lockref_get_or_lock()" to either get a new
      reference to a dentry that already had existing references (and thus
      cannot be dead), or get the dentry lock so that we can then verify the
      dentry and increment the reference count under the lock if that
      verification was successful.
      
      That's all somewhat complicated.
      
      This adds the concept of being "dead" to the lockref itself, by simply
      using a count that is negative.  This allows a usage scenario where we
      can increment the refcount of a dentry without having to validate it,
      and pushing the special "we killed it" case into the lockref code.
      
      The dentry code itself doesn't actually use this yet, and it's probably
      too late in the merge window to do that code (the dentry_kill() code
      with its "should I decrement the count" logic really is pretty complex
      code), but let's introduce the concept at the lockref level now.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e7d33bb5
    • Linus Torvalds's avatar
      lockref: fix docbook argument names · 44a0cf92
      Linus Torvalds authored
      The code got rewritten, but the comments got copied as-is from older
      versions, and as a result the argument name in the comment didn't
      actually match the code any more.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      44a0cf92
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · dc0755cd
      Linus Torvalds authored
      Pull vfs pile 2 (of many) from Al Viro:
       "Mostly Miklos' series this time"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        constify dcache.c inlined helpers where possible
        fuse: drop dentry on failed revalidate
        fuse: clean up return in fuse_dentry_revalidate()
        fuse: use d_materialise_unique()
        sysfs: use check_submounts_and_drop()
        nfs: use check_submounts_and_drop()
        gfs2: use check_submounts_and_drop()
        afs: use check_submounts_and_drop()
        vfs: check unlinked ancestors before mount
        vfs: check submounts and drop atomically
        vfs: add d_walk()
        vfs: restructure d_genocide()
      dc0755cd
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · c7c4591d
      Linus Torvalds authored
      Pull namespace changes from Eric Biederman:
       "This is an assorted mishmash of small cleanups, enhancements and bug
        fixes.
      
        The major theme is user namespace mount restrictions.  nsown_capable
        is killed as it encourages not thinking about details that need to be
        considered.  A very hard to hit pid namespace exiting bug was finally
        tracked and fixed.  A couple of cleanups to the basic namespace
        infrastructure.
      
        Finally there is an enhancement that makes per user namespace
        capabilities usable as capabilities, and an enhancement that allows
        the per userns root to nice other processes in the user namespace"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        userns:  Kill nsown_capable it makes the wrong thing easy
        capabilities: allow nice if we are privileged
        pidns: Don't have unshare(CLONE_NEWPID) imply CLONE_THREAD
        userns: Allow PR_CAPBSET_DROP in a user namespace.
        namespaces: Simplify copy_namespaces so it is clear what is going on.
        pidns: Fix hang in zap_pid_ns_processes by sending a potentially extra wakeup
        sysfs: Restrict mounting sysfs
        userns: Better restrictions on when proc and sysfs can be mounted
        vfs: Don't copy mount bind mounts of /proc/<pid>/ns/mnt between namespaces
        kernel/nsproxy.c: Improving a snippet of code.
        proc: Restrict mounting the proc filesystem
        vfs: Lock in place mounts from more privileged users
      c7c4591d
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 11c7b03d
      Linus Torvalds authored
      Pull security subsystem updates from James Morris:
       "Nothing major for this kernel, just maintenance updates"
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (21 commits)
        apparmor: add the ability to report a sha1 hash of loaded policy
        apparmor: export set of capabilities supported by the apparmor module
        apparmor: add the profile introspection file to interface
        apparmor: add an optional profile attachment string for profiles
        apparmor: add interface files for profiles and namespaces
        apparmor: allow setting any profile into the unconfined state
        apparmor: make free_profile available outside of policy.c
        apparmor: rework namespace free path
        apparmor: update how unconfined is handled
        apparmor: change how profile replacement update is done
        apparmor: convert profile lists to RCU based locking
        apparmor: provide base for multiple profiles to be replaced at once
        apparmor: add a features/policy dir to interface
        apparmor: enable users to query whether apparmor is enabled
        apparmor: remove minimum size check for vmalloc()
        Smack: parse multiple rules per write to load2, up to PAGE_SIZE-1 bytes
        Smack: network label match fix
        security: smack: add a hash table to quicken smk_find_entry()
        security: smack: fix memleak in smk_write_rules_list()
        xattr: Constify ->name member of "struct xattr".
        ...
      11c7b03d
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 6be48f29
      Linus Torvalds authored
      Pull crypto update from Herbert Xu:
       "Here is the crypto update for 3.12:
      
         - Added MODULE_SOFTDEP to allow pre-loading of modules.
         - Reinstated crct10dif driver using the module softdep feature.
         - Allow via rng driver to be auto-loaded.
      
         - Split large input data when necessary in nx.
         - Handle zero length messages correctly for GCM/XCBC in nx.
         - Handle SHA-2 chunks bigger than block size properly in nx.
      
         - Handle unaligned lengths in omap-aes.
         - Added SHA384/SHA512 to omap-sham.
         - Added OMAP5/AM43XX SHAM support.
         - Added OMAP4 TRNG support.
      
         - Misc fixes"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (66 commits)
        Reinstate "crypto: crct10dif - Wrap crc_t10dif function all to use crypto transform framework"
        hwrng: via - Add MODULE_DEVICE_TABLE
        crypto: fcrypt - Fix bitoperation for compilation with clang
        crypto: nx - fix SHA-2 for chunks bigger than block size
        crypto: nx - fix GCM for zero length messages
        crypto: nx - fix XCBC for zero length messages
        crypto: nx - fix limits to sg lists for AES-CCM
        crypto: nx - fix limits to sg lists for AES-XCBC
        crypto: nx - fix limits to sg lists for AES-GCM
        crypto: nx - fix limits to sg lists for AES-CTR
        crypto: nx - fix limits to sg lists for AES-CBC
        crypto: nx - fix limits to sg lists for AES-ECB
        crypto: nx - add offset to nx_build_sg_lists()
        padata - Register hotcpu notifier after initialization
        padata - share code between CPU_ONLINE and CPU_DOWN_FAILED, same to CPU_DOWN_PREPARE and CPU_UP_CANCELED
        hwrng: omap - reorder OMAP TRNG driver code
        crypto: omap-sham - correct dma burst size
        crypto: omap-sham - Enable Polling mode if DMA fails
        crypto: tegra-aes - bitwise vs logical and
        crypto: sahara - checking the wrong variable
        ...
      6be48f29
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 0ffb01d9
      Linus Torvalds authored
      Pull networking fixes from David Miller:
       "A quick set of fixes, some to deal with fallout from yesterday's
        net-next merge.
      
         1) Fix compilation of bnx2x driver with CONFIG_BNX2X_SRIOV disabled,
            from Dmitry Kravkov.
      
         2) Fix a bnx2x regression caused by one of Dave Jones's mistaken
            braces changes, from Eilon Greenstein.
      
         3) Add some protective filtering in the netlink tap code, from Daniel
            Borkmann.
      
         4) Fix TCP congestion window growth regression after timeouts, from
            Yuchung Cheng.
      
         5) Correctly adjust TCP's rcv_ssthresh for out of order packets, from
            Eric Dumazet"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        tcp: properly increase rcv_ssthresh for ofo packets
        net: add documentation for BQL helpers
        mlx5: remove unused MLX5_DEBUG param in Kconfig
        bnx2x: Restore a call to config_init
        bnx2x: fix broken compilation with CONFIG_BNX2X_SRIOV is not set
        tcp: fix no cwnd growth after timeout
        net: netlink: filter particular protocols from analyzers
      0ffb01d9
    • Linus Torvalds's avatar
      Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging · 7b4022fa
      Linus Torvalds authored
      Pull hwmon fixes from Jean Delvare.
      
      * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
        hwmon: (emc6w201) Do not declare enum variable
        hwmon: (w83792d) Update module author
      7b4022fa
    • Linus Torvalds's avatar
      Merge tag 'gpio-v3.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 27c7651a
      Linus Torvalds authored
      Pull GPIO updates from Linus Walleij:
       "This is the bulk of GPIO changes for the v3.12 series:
      
         - A new driver for the TZ1090 PDC which is used on the metag
           architecture.
      
         - A new driver for the Kontron ETX or COMexpress GPIO block.  This is
           found on some ETX x86 devices.
      
         - A new driver for the Fintek Super-I/O chips, used on some x86
           boards.
      
         - Added device tree probing on a few select GPIO blocks.
      
         - Drop the Exynos support from the Samsung GPIO driver.
      
           The Samsung maintainers have moved over to use the modernized pin
           control driver to provide GPIO for the modern platforms instead.
      
         - The usual bunch of non-critical fixes and cleanups"
      
      * tag 'gpio-v3.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (36 commits)
        gpio: return -ENOTSUPP if debounce cannot be set
        gpio: improve error path in gpiolib
        gpio: add GPIO support for F71882FG and F71889F
        of: add vendor prefix for Microchip Technology Inc
        gpio: mcp23s08: rename the device tree property
        gpio: samsung: Drop support for Exynos SoCs
        gpio: pcf857x: Remove pdata argument to pcf857x_irq_domain_init()
        gpio: pcf857x: Sort headers alphabetically
        gpio: max7301: Reverting "Do not force SPI speed when using OF Platform"
        gpio: Fix bit masking in Kontron PLD GPIO driver
        gpio: pca953x: fix gpio input on gpio offsets >= 8
        drivers/gpio: simplify use of devm_ioremap_resource
        drivers/gpio/gpio-omap.c: convert comma to semicolon
        gpio-lynxpoint: Fix warning about unbalanced pm_runtime_enable
        gpio: Fix platform driver name in Kontron PLD GPIO driver
        gpio: adnp: Fix segfault if request_threaded_irq fails
        gpio: msm: Staticize local variable 'msm_gpio'
        gpio: gpiolib-of.c: make error message more meaningful by adding the node name and index
        gpio: use dev_get_platdata()
        gpio/mxc: add chained_irq_enter/exit() to mx2_gpio_irq_handler
        ...
      27c7651a
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 8b8a7df9
      Linus Torvalds authored
      Pull input updates from Dmitry Torokhov:
       "A new driver for slidebar on Ideapad laptops and a bunch of assorted
        driver fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (32 commits)
        Input: add SYN_MAX and SYN_CNT constants
        Input: max11801_ts - convert to devm
        Input: egalax-ts - fix typo and improve text
        Input: MAINTAINERS - change maintainer for cyttsp driver
        Input: cyttsp4 - kill 'defined but not used' compiler warnings
        Input: add driver for slidebar on Lenovo IdeaPad laptops
        Input: omap-keypad - set up irq type from DT
        Input: omap-keypad - enable wakeup capability for keypad.
        Input: omap-keypad - clear interrupts on open
        Input: omap-keypad - convert to threaded IRQ
        Input: omap-keypad - use bitfiled instead of hardcoded values
        Input: cyttsp4 - remove useless NULL test from cyttsp4_watchdog_timer()
        Input: wacom - fix error return code in wacom_probe()
        Input: as5011 - fix error return code in as5011_probe()
        Input: keyboard, serio - simplify use of devm_ioremap_resource
        Input: tegra-kbc - simplify use of devm_ioremap_resource
        Input: htcpen - fix incorrect placement of __initdata
        Input: qt1070 - add power management ops
        Input: wistron_btns - add MODULE_DEVICE_TABLE
        Input: wistron_btns - mark the Medion MD96500 keymap as tested
        ...
      8b8a7df9
    • Linus Torvalds's avatar
      Revert "Input: introduce BTN/ABS bits for drums and guitars" · b04c99e3
      Linus Torvalds authored
      This reverts commits 61e00655, 73f8645d and 8e22ecb6:
        "Input: introduce BTN/ABS bits for drums and guitars"
        "HID: wiimote: add support for Guitar-Hero drums"
        "HID: wiimote: add support for Guitar-Hero guitars"
      
      The extra new ABS_xx values resulted in ABS_MAX no longer being a
      power-of-two, which broke the comparison logic.  It also caused the
      ioctl numbers to overflow into the next byte, causing problems for that.
      
      We'll try again for 3.13.
      Reported-by: default avatarMarkus Trippelsdorf <markus@trippelsdorf.de>
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Acked-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
      Acked-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
      Cc: Benjamin Tissoires <benjamin.tissoires@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b04c99e3
    • Dmitry Torokhov's avatar
      Merge branch 'next' into for-linus · 07176b98
      Dmitry Torokhov authored
      Merge first round of changes for 3.12 merge window.
      07176b98
    • Herbert Xu's avatar
      Reinstate "crypto: crct10dif - Wrap crc_t10dif function all to use crypto transform framework" · 68411521
      Herbert Xu authored
      This patch reinstates commits
      	67822649
      	39761214
      	0b95a7f8
      	31d93962
      	2d31e518
      
      Now that module softdeps are in the kernel we can use that to resolve
      the boot issue which cause the revert.
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      68411521
    • Herbert Xu's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux · eeca9fad
      Herbert Xu authored
      Merge upstream tree in order to reinstate crct10dif.
      eeca9fad
  3. 06 Sep, 2013 17 commits
    • Linus Torvalds's avatar
      Merge tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 44598f98
      Linus Torvalds authored
      Pull ARM SoC board updates from Olof Johansson:
       "Board updates for 3.12.  Again, a bit of domain overlap with SoC and
        DT branches, but most of this is around legacy code and board support.
        We've found that platform maintainers have a hard time separating all
        of these out and might move towards fewer branches for next release.
      
         - Removal of a number of Marvell Kirkwood board files, since contents
           is now common and mostly configured via DT.
         - Device-tree updates for Marvell Dove, including irqchip and
           clocksource setup.
         - Defconfig updates.  Gotta go somewhere.  One new one for Renesas
           Lager.
         - New backlight drivers for backlights used on Renesas shmobile
           platforms.
         - Removal of Renesas leds driver.
         - Shuffling of some of the new Broadcom platforms to give room for
           others in the same mach directory.  More in 3.13"
      
      * tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (67 commits)
        mmc: sdhci-bcm-kona: Staticize sdhci_bcm_kona_card_event
        mmc: sdhci-bcm-kona: Remove unneeded version.h inclusion
        ARM: bcm: Make secure API call optional
        ARM: DT: binding fixup to align with vendor-prefixes.txt (drivers)
        ARM: mmc: fix NONREMOVABLE test in sdhci-bcm-kona
        ARM: bcm: Rename board_bcm
        mmc: sdhci-bcm-kona: make linker-section warning go away
        ARM: tegra: defconfig updates
        ARM: dove: add initial DT file for Globalscale D2Plug
        ARM: dove: add GPIO IR receiver node to SolidRun CuBox
        ARM: dove: add common pinmux functions to DT
        ARM: dove: add cpu device tree node
        ARM: dove: update dove_defconfig with SI5351, PCI, and xHCI
        arch/arm/mach-kirkwood: Avoid using ARRAY_AND_SIZE(e) as a function argument
        ARM: kirkwood: fix DT building and update defconfig
        ARM: kirkwood: Remove all remaining trace of DNS-320/325 platform code
        ARM: configs: disable DEBUG_LL in bcm_defconfig
        ARM: bcm281xx: Board specific reboot code
        ARM bcm281xx: Turn on socket & network support.
        ARM: bcm281xx: Turn on L2 cache.
        ...
      44598f98
    • Linus Torvalds's avatar
      Merge tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · b4b50fd7
      Linus Torvalds authored
      Pull ARM SoC platform changes from Olof Johansson:
       "This branch contains mostly additions and changes to platform
        enablement and SoC-level drivers.  Since there's sometimes a
        dependency on device-tree changes, there's also a fair amount of
        those in this branch.
      
        Pieces worth mentioning are:
      
         - Mbus driver for Marvell platforms, allowing kernel configuration
           and resource allocation of on-chip peripherals.
         - Enablement of the mbus infrastructure from Marvell PCI-e drivers.
         - Preparation of MSI support for Marvell platforms.
         - Addition of new PCI-e host controller driver for Tegra platforms
         - Some churn caused by sharing of macro names between i.MX 6Q and 6DL
           platforms in the device tree sources and header files.
         - Various suspend/PM updates for Tegra, including LP1 support.
         - Versatile Express support for MCPM, part of big little support.
         - Allwinner platform support for A20 and A31 SoCs (dual and quad
           Cortex-A7)
         - OMAP2+ support for DRA7, a new Cortex-A15-based SoC.
      
        The code that touches other architectures are patches moving MSI
        arch-specific functions over to weak symbols and removal of
        ARCH_SUPPORTS_MSI, acked by PCI maintainers"
      
      * tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (266 commits)
        tegra-cpuidle: provide stub when !CONFIG_CPU_IDLE
        PCI: tegra: replace devm_request_and_ioremap by devm_ioremap_resource
        ARM: tegra: Drop ARCH_SUPPORTS_MSI and sort list
        ARM: dts: vf610-twr: enable i2c0 device
        ARM: dts: i.MX51: Add one more I2C2 pinmux entry
        ARM: dts: i.MX51: Move pins configuration under "iomuxc" label
        ARM: dtsi: imx6qdl-sabresd: Add USB OTG vbus pin to pinctrl_hog
        ARM: dtsi: imx6qdl-sabresd: Add USB host 1 VBUS regulator
        ARM: dts: imx27-phytec-phycore-som: Enable AUDMUX
        ARM: dts: i.MX27: Disable AUDMUX in the template
        ARM: dts: wandboard: Add support for SDIO bcm4329
        ARM: i.MX5 clocks: Remove optional clock setup (CKIH1) from i.MX51 template
        ARM: dts: imx53-qsb: Make USBH1 functional
        ARM i.MX6Q: dts: Enable I2C1 with EEPROM and PMIC on Phytec phyFLEX-i.MX6 Ouad module
        ARM i.MX6Q: dts: Enable SPI NOR flash on Phytec phyFLEX-i.MX6 Ouad module
        ARM: dts: imx6qdl-sabresd: Add touchscreen support
        ARM: imx: add ocram clock for imx53
        ARM: dts: imx: ocram size is different between imx6q and imx6dl
        ARM: dts: imx27-phytec-phycore-som: Fix regulator settings
        ARM: dts: i.MX27: Remove clock name from CPU node
        ...
      b4b50fd7
    • Linus Torvalds's avatar
      Merge tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · dccfd1e4
      Linus Torvalds authored
      Pull ARM SoC DT updates from Olof Johansson:
       "Device tree and bindings updates for 3.12.
      
        General additions of various on-chip and on-board peripherals on
        various platforms as support gets added.  Some of the bigger changes
        are:
      
         - Addition of (new) PCI-e support on Tegra.
         - More Tegra4 support, including PMC configuration for Dalmore.
         - Addition of a new board for Exynos4 (trats2) and more bindings for
           4x12 IP.
         - Addition of Allwinner A20 and A31 SoC and board files.
         - Move of the ST Ericsson device tree files to now use ste-* prefix.
         - More move of hardware description of shmobile platforms to DT.
         - Two new board dts files for Freescale MXs"
      
      * tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (177 commits)
        dts: Rename DW APB timer compatible strings
        dts: Deprecate ALTR as a vendor prefix
        of: add vendor prefix for Altera Corp.
        ARM: at91/dt: sam9x5ek: add sound configuration
        ARM: at91/dt: sam9x5ek: enable SSC
        ARM: at91/dt: sam9x5ek: add WM8731 codec
        ARM: at91/dt: sam9x5: add SSC DMA parameters
        ARM: at91/dt: add at91rm9200 PQFP package version
        ARM: at91: at91rm9200: set default mmc0 pinctrl-names
        ARM: at91: at91sam9n12: correct pin number of gpio-key
        ARM: at91: at91sam9n12: add qt1070 support
        ARM: at91: at91sam9n12: add pinctrl of TWI
        ARM: at91: Add PMU support for sama5d3
        ARM: at91: at91sam9260: add missing pinctrl-names on mmc
        ARM: tegra: configure power off for Dalmore
        ARM: DT: binding fixup to align with vendor-prefixes.txt (DT)
        ARM: dts: add sdio blocks to bcm28155-ap board
        ARM: dts: align sdio numbers to HW definition
        ARM: sun7i: Add Olimex A20-Olinuxino-Micro support
        ARM: sun7i: Add Allwinner A20 DTSI
        ...
      dccfd1e4
    • Linus Torvalds's avatar
      Merge tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 8e73e367
      Linus Torvalds authored
      Pull ARM SoC cleanups from Olof Johansson:
       "This branch contains code cleanups, moves and removals for 3.12.
      
        There's a large number of various cleanups, and a nice net removal of
        13500 lines of code.
      
        Highlights worth mentioning are:
      
         - A series of patches from Stephen Boyd removing the ARM local timer
           API.
         - Move of Qualcomm MSM IOMMU code to drivers/iommu.
         - Samsung PWM driver cleanups from Tomasz Figa, removing legacy PWM
           driver and switching over to the drivers/pwm one.
         - Removal of some unusued auto-generated headers for OMAP2+ (PRM/CM).
      
        There's also a move of a header file out of include/linux/i2c/ to
        platform_data, where it really belongs.  It touches mostly ARM
        platform code for include changes so we took it through our tree"
      
      * tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (83 commits)
        ARM: OMAP2+: Add back the define for AM33XX_RST_GLOBAL_WARM_SW_MASK
        gpio: (gpio-pca953x) move header to linux/platform_data/
        arm: zynq: hotplug: Remove unreachable code
        ARM: SAMSUNG: Remove unnecessary exynos4_default_sdhci*()
        tegra: simplify use of devm_ioremap_resource
        ARM: SAMSUNG: Remove plat/regs-timer.h header
        ARM: SAMSUNG: Remove remaining uses of plat/regs-timer.h header
        ARM: SAMSUNG: Remove pwm-clock infrastructure
        ARM: SAMSUNG: Remove old PWM timer platform devices
        pwm: Remove superseded pwm-samsung-legacy driver
        ARM: SAMSUNG: Modify board files to use new PWM platform device
        ARM: SAMSUNG: Rework private data handling in dev-backlight
        pwm: Add new pwm-samsung driver
        ARM: mach-mvebu: remove redundant DT parsing and validation
        ARM: msm: Only compile io.c on platforms that use it
        iommu/msm: Move mach includes to iommu directory
        ARM: msm: Remove devices-iommu.c
        ARM: msm: Move mach/board.h contents to common.h
        ARM: msm: Migrate msm_timer to CLOCKSOURCE_OF_DECLARE
        ARM: msm: Remove TMR and TMR0 static mappings
        ...
      8e73e367
    • Linus Torvalds's avatar
      Merge tag 'fixes-nc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · d2f3e9eb
      Linus Torvalds authored
      Pull ARM SoC low-priority fixes from Olof Johansson:
       "This branch contains a handful of fixes for various platforms that
        weren't serious enough to be included in late 3.11-rc releases.  Most
        of them are for minor cleanups and cosmetic fixes.
      
        There's also a bit of code removal here, one board file removal for
        clps711x, and removal of some legacy device creation on OMAP2+"
      
      * tag 'fixes-nc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (25 commits)
        ARM: OMAP2: use 'int' instead of 'unsigned' for variable 'gpmc_irq_start'
        ARM: OMAP2: remove useless variable 'ret'
        ARM: OMAP: dma: fix error return code in omap_system_dma_probe()
        ARM: OMAP2+: fix wrong address when loading PRM_FRAC_INCREMENTOR_DENUMERATOR_RELOAD
        ARM: OMAP2+: am33xx-restart: trigger warm reset on omap2+ boards
        ARM: OMAP2: Use a consistent AM33XX SoC option description
        ARM: OMAP2+: Remove legacy device creation for McPDM and DMIC
        ARM: clps711x: edb7211: Remove extra iotable_init() call
        ARM: clps711x: autcpu12: Remove incorrect config checking
        ARM: clps711x: Drop fortunet board support
        ARM: clps711x: Remove the special name for the syscon driver
        ARM: dts: Fix memory node in skeleton64.dtsi
        ARM: Keystone: Convert device tree file to use IRQ defines
        ARM: keystone: use #include to include skeleton.dtsi
        ARM: keystone: Drop the un-necessary dsb from keystone_cpu_smc()
        ARM: Keystone: No need to preserve r12 across smc call
        ARM: keystone: remove redundant smp_init_cpus definition
        ARM: keystone: drop useless HAVE_SCHED_CLOCK
        ARM: dove: fix missing __init section of dove_mpp_gpio_mode
        ARM: shmobile: armadillo800eva-reference: fix compiler warning
        ...
      d2f3e9eb
    • Linus Torvalds's avatar
      Merge tag 'please-pull-misc-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · 1bda20da
      Linus Torvalds authored
      Pull ia64 fixes from Tony Luck:
       "Couple of small cleanups for ia64"
      
      * tag 'please-pull-misc-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        [IA64] Use asm-generic/bitops/builtin-ffs.h
        [IA64] dmi.h: Make dmi_alloc use kzalloc
      1bda20da
    • Eric Dumazet's avatar
      tcp: properly increase rcv_ssthresh for ofo packets · 4e4f1fc2
      Eric Dumazet authored
      TCP receive window handling is multi staged.
      
      A socket has a memory budget, static or dynamic, in sk_rcvbuf.
      
      Because we do not really know how this memory budget translates to
      a TCP window (payload), TCP announces a small initial window
      (about 20 MSS).
      
      When a packet is received, we increase TCP rcv_win depending
      on the payload/truesize ratio of this packet. Good citizen
      packets give a hint that it's reasonable to have rcv_win = sk_rcvbuf/2
      
      This heuristic takes place in tcp_grow_window()
      
      Problem is : We currently call tcp_grow_window() only for in-order
      packets.
      
      This means that reorders or packet losses stop proper grow of
      rcv_win, and senders are unable to benefit from fast recovery,
      or proper reordering level detection.
      
      Really, a packet being stored in OFO queue is not a bad citizen.
      It should be part of the game as in-order packets.
      
      In our traces, we very often see sender is limited by linux small
      receive windows, even if linux hosts use autotuning (DRS) and should
      allow rcv_win to grow to ~3MB.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4e4f1fc2
    • Florian Fainelli's avatar
      net: add documentation for BQL helpers · 0042d0c8
      Florian Fainelli authored
      Provide a kernel-doc comment documentation for the BQL helpers:
      - netdev_sent_queue
      - netdev_completed_queue
      - netdev_reset_queue
      
      Similarly to how it is done for the other functions, the documentation
      only covers the function operating on struct net_device and not struct
      netdev_queue.
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0042d0c8
    • Michael Opdenacker's avatar
      mlx5: remove unused MLX5_DEBUG param in Kconfig · 635ad310
      Michael Opdenacker authored
      This patch proposes to remove the MLX5_DEBUG kernel configuration
      parameter defined in drivers/net/ethernet/mellanox/mlx5/core/Kconfig,
      but used nowhere in the makefiles and source code.
      
      This could also be fixed by using this parameter,
      but this may be a leftover from driver development...
      Signed-off-by: default avatarMichael Opdenacker <michael.opdenacker@free-electrons.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      635ad310
    • Eilon Greenstein's avatar
      bnx2x: Restore a call to config_init · 937e5c3d
      Eilon Greenstein authored
      Commit c0a77ec7 'bnx2x: Add missing braces in
      bnx2x:bnx2x_link_initialize' identified indentation problem, but resolved it
      by adding braces instead of fixing the indentation. The braces now prevents a
      config_init call in some cases, though it should be called regardless of that
      condition. This patch removes the braces and fix the confusing indentation
      that caused this mess.
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      CC: Dave Jones <davej@redhat.com>
      Tested-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      937e5c3d
    • Dmitry Kravkov's avatar
      bnx2x: fix broken compilation with CONFIG_BNX2X_SRIOV is not set · 9b0be651
      Dmitry Kravkov authored
      Since commit 60cad4e6
      "bnx2x: VF RSS support - VF side" fails to compile w/o
      CONFIG_BNX2X_SRIOV option.
      Reported-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      CC: Ariel Elior <ariele@broadcom.com>
      Signed-off-by: default avatarDmitry Kravkov <dmitry@broadcom.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9b0be651
    • Yuchung Cheng's avatar
      tcp: fix no cwnd growth after timeout · 16edfe7e
      Yuchung Cheng authored
      In commit 0f7cc9a3 "tcp: increase throughput when reordering is high",
      it only allows cwnd to increase in Open state. This mistakenly disables
      slow start after timeout (CA_Loss). Moreover cwnd won't grow if the
      state moves from Disorder to Open later in tcp_fastretrans_alert().
      
      Therefore the correct logic should be to allow cwnd to grow as long
      as the data is received in order in Open, Loss, or even Disorder state.
      Signed-off-by: default avatarYuchung Cheng <ycheng@google.com>
      Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      16edfe7e
    • Daniel Borkmann's avatar
      net: netlink: filter particular protocols from analyzers · 5ffd5cdd
      Daniel Borkmann authored
      Fix finer-grained control and let only a whitelist of allowed netlink
      protocols pass, in our case related to networking. If later on, other
      subsystems decide they want to add their protocol as well to the list
      of allowed protocols they shall simply add it. While at it, we also
      need to tell what protocol is in use otherwise BPF_S_ANC_PROTOCOL can
      not pick it up (as it's not filled out).
      Signed-off-by: default avatarDaniel Borkmann <dborkman@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5ffd5cdd
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile · 4de9ad9b
      Linus Torvalds authored
      Pull Tile arch updates from Chris Metcalf:
       "These changes bring in a bunch of new functionality that has been
        maintained internally at Tilera over the last year, plus other stray
        bits of work that I've taken into the tile tree from other folks.
      
        The changes include some PCI root complex work, interrupt-driven
        console support, support for performing fast-path unaligned data
        fixups by kernel-based JIT code generation, CONFIG_PREEMPT support,
        vDSO support for gettimeofday(), a serial driver for the tilegx
        on-chip UART, KGDB support, more optimized string routines, support
        for ftrace and kprobes, improved ASLR, and many bug fixes.
      
        We also remove support for the old TILE64 chip, which is no longer
        buildable"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: (85 commits)
        tile: refresh tile defconfig files
        tile: rework <asm/cmpxchg.h>
        tile PCI RC: make default consistent DMA mask 32-bit
        tile: add null check for kzalloc in tile/kernel/setup.c
        tile: make __write_once a synonym for __read_mostly
        tile: remove support for TILE64
        tile: use asm-generic/bitops/builtin-*.h
        tile: eliminate no-op "noatomichash" boot argument
        tile: use standard tile_bundle_bits type in traps.c
        tile: simplify code referencing hypervisor API addresses
        tile: change <asm/system.h> to <asm/switch_to.h> in comments
        tile: mark pcibios_init() as __init
        tile: check for correct compiler earlier in asm-offsets.c
        tile: use standard 'generic-y' model for <asm/hw_irq.h>
        tile: use asm-generic version of <asm/local64.h>
        tile PCI RC: add comment about "PCI hole" problem
        tile: remove DEBUG_EXTRA_FLAGS kernel config option
        tile: add virt_to_kpte() API and clean up and document behavior
        tile: support FRAME_POINTER
        tile: support reporting Tilera hypervisor statistics
        ...
      4de9ad9b
    • Linus Torvalds's avatar
      Merge tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64 · 576c25eb
      Linus Torvalds authored
      Pull ARM64 update from Catalin Marinas:
       - User tagged pointers support (top 8-bit of user pointers
         automatically ignored by the CPU).
       - Kernel mode NEON (no users for arm64 yet but work in progress).
       - arm64 kernel Image header extended to accommodate future EFI stub.
       - Remove BogoMIPS reporting (not relevant, it's just the timer
         frequency).
       - Clean-up (EM_AARCH64/EM_ARM to elf-em.h, ELF notes in read-only
         segment, unused variable).
       - Bug-fixes (RAM boundaries not 2MB aligned, perf, includes).
      
      * tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64:
        Documentation/arm64: clarify requirements for DTB placement
        arm64: mm: permit use of tagged pointers at EL0
        Move the EM_ARM and EM_AARCH64 definitions to uapi/linux/elf-em.h
        arm64: Remove unused cpu_name ascii in arch/arm64/mm/proc.S
        arm64: delay: don't bother reporting bogomips in /proc/cpuinfo
        arm64: Fix mapping of memory banks not ending on a PMD_SIZE boundary
        arm64: move elf notes into readonly segment
        arm64: Enable interrupts in the EL0 undef handler
        arm64: Expand arm64 image header
        ARM64: include: asm: include "asm/types.h" in "pgtable-2level-types.h" and "pgtable-3level-types.h"
        arm64: add support for kernel mode NEON
        arm64: perf: fix ARMv8 EVTYPE_MASK to include NSH bit
        arm64: perf: fix group validation when using enable_on_exec
      576c25eb
    • Linus Torvalds's avatar
      Merge tag 'microblaze-3.12-rc1' of git://git.monstr.eu/linux-2.6-microblaze · 5872c840
      Linus Torvalds authored
      Pull Microblaze patches from Michal Simek:
       - PCI fixes
       - Selfmod code removing
       - Intc and timer fixes
       - Adding new MB versions
       - Minor fixes
      
      * tag 'microblaze-3.12-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Show message when reset gpio is not present
        microblaze: Add linux.bin.ub target
        microblaze: Add PVR version string for MB v9.0 and v9.1
        microblaze: timer: Replace microblaze_ prefix by xilinx_
        microblaze: timer: Update header
        microblaze: timer: Remove unused header
        microblaze: timer: Clear driver init function
        microblaze: timer: Use CLKSRC_OF initialization
        microblaze: intc: Remove unused header
        microblaze: intc: Clean driver init function
        microblaze: intc: Using irqchip
        microblaze: intc: Update header
        microblaze: intc: Remove unused headers
        microblaze: Remove selfmodified feature
        of/pci: Use of_pci_range_parser
      5872c840
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 39eda2ab
      Linus Torvalds authored
      Pull powerpc updates from Ben Herrenschmidt:
       "Here's the powerpc batch for this merge window.  Some of the
        highlights are:
      
         - A bunch of endian fixes ! We don't have full LE support yet in that
           release but this contains a lot of fixes all over arch/powerpc to
           use the proper accessors, call the firmware with the right endian
           mode, etc...
      
         - A few updates to our "powernv" platform (non-virtualized, the one
           to run KVM on), among other, support for bridging the P8 LPC bus
           for UARTs, support and some EEH fixes.
      
         - Some mpc51xx clock API cleanups in preparation for a clock API
           overhaul
      
         - A pile of cleanups of our old math emulation code, including better
           support for using it to emulate optional FP instructions on
           embedded chips that otherwise have a HW FPU.
      
         - Some infrastructure in selftest, for powerpc now, but could be
           generalized, initially used by some tests for our perf instruction
           counting code.
      
         - A pile of fixes for hotplug on pseries (that was seriously
           bitrotting)
      
         - The usual slew of freescale embedded updates, new boards, 64-bit
           hiberation support, e6500 core PMU support, etc..."
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (146 commits)
        powerpc: Correct FSCR bit definitions
        powerpc/xmon: Fix printing of set of CPUs in xmon
        powerpc/pseries: Move lparcfg.c to platforms/pseries
        powerpc/powernv: Return secondary CPUs to firmware on kexec
        powerpc/btext: Fix CONFIG_PPC_EARLY_DEBUG_BOOTX on ppc32
        powerpc: Cleanup handling of the DSCR bit in the FSCR register
        powerpc/pseries: Child nodes are not detached by dlpar_detach_node
        powerpc/pseries: Add mising of_node_put in delete_dt_node
        powerpc/pseries: Make dlpar_configure_connector parent node aware
        powerpc/pseries: Do all node initialization in dlpar_parse_cc_node
        powerpc/pseries: Fix parsing of initial node path in update_dt_node
        powerpc/pseries: Pack update_props_workarea to map correctly to rtas buffer header
        powerpc/pseries: Fix over writing of rtas return code in update_dt_node
        powerpc/pseries: Fix creation of loop in device node property list
        powerpc: Skip emulating & leave interrupts off for kernel program checks
        powerpc: Add more exception trampolines for hypervisor exceptions
        powerpc: Fix location and rename exception trampolines
        powerpc: Add more trap names to xmon
        powerpc/pseries: Add a warning in the case of cross-cpu VPA registration
        powerpc: Update the 00-Index in Documentation/powerpc
        ...
      39eda2ab