1. 21 6月, 2016 4 次提交
  2. 18 5月, 2016 32 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial · 16bf8348
      Linus Torvalds 提交于
      Pull trivial tree updates from Jiri Kosina.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (21 commits)
        gitignore: fix wording
        mfd: ab8500-debugfs: fix "between" in printk
        memstick: trivial fix of spelling mistake on management
        cpupowerutils: bench: fix "average"
        treewide: Fix typos in printk
        IB/mlx4: printk fix
        pinctrl: sirf/atlas7: fix printk spelling
        serial: mctrl_gpio: Grammar s/lines GPIOs/line GPIOs/, /sets/set/
        w1: comment spelling s/minmum/minimum/
        Blackfin: comment spelling s/divsor/divisor/
        metag: Fix misspellings in comments.
        ia64: Fix misspellings in comments.
        hexagon: Fix misspellings in comments.
        tools/perf: Fix misspellings in comments.
        cris: Fix misspellings in comments.
        c6x: Fix misspellings in comments.
        blackfin: Fix misspelling of 'register' in comment.
        avr32: Fix misspelling of 'definitions' in comment.
        treewide: Fix typos in printk
        Doc: treewide : Fix typos in DocBook/filesystem.xml
        ...
      16bf8348
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · a7fd20d1
      Linus Torvalds 提交于
      Pull networking updates from David Miller:
       "Highlights:
      
         1) Support SPI based w5100 devices, from Akinobu Mita.
      
         2) Partial Segmentation Offload, from Alexander Duyck.
      
         3) Add GMAC4 support to stmmac driver, from Alexandre TORGUE.
      
         4) Allow cls_flower stats offload, from Amir Vadai.
      
         5) Implement bpf blinding, from Daniel Borkmann.
      
         6) Optimize _ASYNC_ bit twiddling on sockets, unless the socket is
            actually using FASYNC these atomics are superfluous.  From Eric
            Dumazet.
      
         7) Run TCP more preemptibly, also from Eric Dumazet.
      
         8) Support LED blinking, EEPROM dumps, and rxvlan offloading in mlx5e
            driver, from Gal Pressman.
      
         9) Allow creating ppp devices via rtnetlink, from Guillaume Nault.
      
        10) Improve BPF usage documentation, from Jesper Dangaard Brouer.
      
        11) Support tunneling offloads in qed, from Manish Chopra.
      
        12) aRFS offloading in mlx5e, from Maor Gottlieb.
      
        13) Add RFS and RPS support to SCTP protocol, from Marcelo Ricardo
            Leitner.
      
        14) Add MSG_EOR support to TCP, this allows controlling packet
            coalescing on application record boundaries for more accurate
            socket timestamp sampling.  From Martin KaFai Lau.
      
        15) Fix alignment of 64-bit netlink attributes across the board, from
            Nicolas Dichtel.
      
        16) Per-vlan stats in bridging, from Nikolay Aleksandrov.
      
        17) Several conversions of drivers to ethtool ksettings, from Philippe
            Reynes.
      
        18) Checksum neutral ILA in ipv6, from Tom Herbert.
      
        19) Factorize all of the various marvell dsa drivers into one, from
            Vivien Didelot
      
        20) Add VF support to qed driver, from Yuval Mintz"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1649 commits)
        Revert "phy dp83867: Fix compilation with CONFIG_OF_MDIO=m"
        Revert "phy dp83867: Make rgmii parameters optional"
        r8169: default to 64-bit DMA on recent PCIe chips
        phy dp83867: Make rgmii parameters optional
        phy dp83867: Fix compilation with CONFIG_OF_MDIO=m
        bpf: arm64: remove callee-save registers use for tmp registers
        asix: Fix offset calculation in asix_rx_fixup() causing slow transmissions
        switchdev: pass pointer to fib_info instead of copy
        net_sched: close another race condition in tcf_mirred_release()
        tipc: fix nametable publication field in nl compat
        drivers: net: Don't print unpopulated net_device name
        qed: add support for dcbx.
        ravb: Add missing free_irq() calls to ravb_close()
        qed: Remove a stray tab
        net: ethernet: fec-mpc52xx: use phy_ethtool_{get|set}_link_ksettings
        net: ethernet: fec-mpc52xx: use phydev from struct net_device
        bpf, doc: fix typo on bpf_asm descriptions
        stmmac: hardware TX COE doesn't work when force_thresh_dma_mode is set
        net: ethernet: fs-enet: use phy_ethtool_{get|set}_link_ksettings
        net: ethernet: fs-enet: use phydev from struct net_device
        ...
      a7fd20d1
    • L
      Merge tag 'dm-4.7-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · b80fed95
      Linus Torvalds 提交于
      Pull device mapper updates from Mike Snitzer:
      
       - based on Jens' 'for-4.7/core' to have DM thinp's discard support use
         bio_inc_remaining() and the block core's new async __blkdev_issue_discard()
         interface
      
       - make DM multipath's fast code-paths lockless, using lockless_deference,
         to significantly improve large NUMA performance when using blk-mq.
         The m->lock spinlock contention was a serious bottleneck.
      
       - a few other small code cleanups and Documentation fixes
      
      * tag 'dm-4.7-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm thin: unroll issue_discard() to create longer discard bio chains
        dm thin: use __blkdev_issue_discard for async discard support
        dm thin: remove __bio_inc_remaining() and switch to using bio_inc_remaining()
        dm raid: make sure no feature flags are set in metadata
        dm ioctl: drop use of __GFP_REPEAT in copy_params()'s __vmalloc() call
        dm stats: fix spelling mistake in Documentation
        dm cache: update cache-policies.txt now that mq is an alias for smq
        dm mpath: eliminate use of spinlock in IO fast-paths
        dm mpath: move trigger_event member to the end of 'struct multipath'
        dm mpath: use atomic_t for counting members of 'struct multipath'
        dm mpath: switch to using bitops for state flags
        dm thin: Remove return statement from void function
        dm: remove unused mapped_device argument from free_tio()
      b80fed95
    • L
      Merge branch 'for-4.7/drivers' of git://git.kernel.dk/linux-block · 24b9f0cf
      Linus Torvalds 提交于
      Pull block driver updates from Jens Axboe:
       "On top of the core pull request, this is the drivers pull request for
        this merge window.  This contains:
      
         - Switch drivers to the new write back cache API, and kill off the
           flush flags.  From me.
      
         - Kill the discard support for the STEC pci-e flash driver.  It's
           trivially broken, and apparently unmaintained, so it's safer to
           just remove it.  From Jeff Moyer.
      
         - A set of lightnvm updates from the usual suspects (Matias/Javier,
           and Simon), and fixes from Arnd, Jeff Mahoney, Sagi, and Wenwei
           Tao.
      
         - A set of updates for NVMe:
      
              - Turn the controller state management into a proper state
                machine.  From Christoph.
      
              - Shuffling of code in preparation for NVMe-over-fabrics, also
                from Christoph.
      
              - Cleanup of the command prep part from Ming Lin.
      
              - Rewrite of the discard support from Ming Lin.
      
              - Deadlock fix for namespace removal from Ming Lin.
      
              - Use the now exported blk-mq tag helper for IO termination.
                From Sagi.
      
              - Various little fixes from Christoph, Guilherme, Keith, Ming
                Lin, Wang Sheng-Hui.
      
         - Convert mtip32xx to use the now exported blk-mq tag iter function,
           from Keith"
      
      * 'for-4.7/drivers' of git://git.kernel.dk/linux-block: (74 commits)
        lightnvm: reserved space calculation incorrect
        lightnvm: rename nr_pages to nr_ppas on nvm_rq
        lightnvm: add is_cached entry to struct ppa_addr
        lightnvm: expose gennvm_mark_blk to targets
        lightnvm: remove mgt targets on mgt removal
        lightnvm: pass dma address to hardware rather than pointer
        lightnvm: do not assume sequential lun alloc.
        nvme/lightnvm: Log using the ctrl named device
        lightnvm: rename dma helper functions
        lightnvm: enable metadata to be sent to device
        lightnvm: do not free unused metadata on rrpc
        lightnvm: fix out of bound ppa lun id on bb tbl
        lightnvm: refactor set_bb_tbl for accepting ppa list
        lightnvm: move responsibility for bad blk mgmt to target
        lightnvm: make nvm_set_rqd_ppalist() aware of vblks
        lightnvm: remove struct factory_blks
        lightnvm: refactor device ops->get_bb_tbl()
        lightnvm: introduce nvm_for_each_lun_ppa() macro
        lightnvm: refactor dev->online_target to global nvm_targets
        lightnvm: rename nvm_targets to nvm_tgt_type
        ...
      24b9f0cf
    • L
      Merge branch 'for-4.7/core' of git://git.kernel.dk/linux-block · a4d1dbed
      Linus Torvalds 提交于
      Pull core block layer updates from Jens Axboe:
       "This is the core block IO changes for this merge window.  Nothing
        earth shattering in here, it's mostly just fixes.  In detail:
      
         - Fix for a long standing issue where wrong ordering in blk-mq caused
           order_to_size() to spew a warning.  From Bart.
      
         - Async discard support from Christoph.  Basically just splitting our
           sync interface into a submit + wait part.
      
         - Add a cleaner interface for flagging whether a device has a write
           back cache or not.  We've previously overloaded blk_queue_flush()
           with this, but let's make it more explicit.  Drivers cleaned up and
           updated in the drivers pull request.  From me.
      
         - Fix for a double check for whether IO accounting is enabled or not.
           From Michael Callahan.
      
         - Fix for the async discard from Mike Snitzer, reinstating the early
           EOPNOTSUPP return if the device doesn't support discards.
      
         - Also from Mike, export bio_inc_remaining() so dm can drop it's
           private copy of it.
      
         - From Ming Lin, add support for passing in an offset for request
           payloads.
      
         - Tag function export from Sagi, which will be used in NVMe in the
           drivers pull.
      
         - Two blktrace related fixes from Shaohua.
      
         - Propagate NOMERGE flag when making a request from a bio, also from
           Shaohua.
      
         - An optimization to not parse cgroup paths in blk-throttle, if we
           don't need to.  From Shaohua"
      
      * 'for-4.7/core' of git://git.kernel.dk/linux-block:
        blk-mq: fix undefined behaviour in order_to_size()
        blk-throttle: don't parse cgroup path if trace isn't enabled
        blktrace: add missed mask name
        blktrace: delete garbage for message trace
        block: make bio_inc_remaining() interface accessible again
        block: reinstate early return of -EOPNOTSUPP from blkdev_issue_discard
        block: Minor blk_account_io_start usage cleanup
        block: add __blkdev_issue_discard
        block: remove struct bio_batch
        block: copy NOMERGE flag from bio to request
        block: add ability to flag write back caching on a device
        blk-mq: Export tagset iter function
        block: add offset in blk_add_request_payload()
        writeback: Fix performance regression in wb_over_bg_thresh()
      a4d1dbed
    • L
      Merge branch 'work.preadv2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · c2e7b207
      Linus Torvalds 提交于
      Pull vfs cleanups from Al Viro:
       "More cleanups from Christoph"
      
      * 'work.preadv2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        nfsd: use RWF_SYNC
        fs: add RWF_DSYNC aand RWF_SYNC
        ceph: use generic_write_sync
        fs: simplify the generic_write_sync prototype
        fs: add IOCB_SYNC and IOCB_DSYNC
        direct-io: remove the offset argument to dio_complete
        direct-io: eliminate the offset argument to ->direct_IO
        xfs: eliminate the pos variable in xfs_file_dio_aio_write
        filemap: remove the pos argument to generic_file_direct_write
        filemap: remove pos variables in generic_file_read_iter
      c2e7b207
    • L
      Merge branch 'work.const-path' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · c52b7618
      Linus Torvalds 提交于
      Pull 'struct path' constification update from Al Viro:
       "'struct path' is passed by reference to a bunch of Linux security
        methods; in theory, there's nothing to stop them from modifying the
        damn thing and LSM community being what it is, sooner or later some
        enterprising soul is going to decide that it's a good idea.
      
        Let's remove the temptation and constify all of those..."
      
      * 'work.const-path' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        constify ima_d_path()
        constify security_sb_pivotroot()
        constify security_path_chroot()
        constify security_path_{link,rename}
        apparmor: remove useless checks for NULL ->mnt
        constify security_path_{mkdir,mknod,symlink}
        constify security_path_{unlink,rmdir}
        apparmor: constify common_perm_...()
        apparmor: constify aa_path_link()
        apparmor: new helper - common_path_perm()
        constify chmod_common/security_path_chmod
        constify security_sb_mount()
        constify chown_common/security_path_chown
        tomoyo: constify assorted struct path *
        apparmor_path_truncate(): path->mnt is never NULL
        constify vfs_truncate()
        constify security_path_truncate()
        [apparmor] constify struct path * in a bunch of helpers
      c52b7618
    • L
      Merge branch 'for-cifs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 681750c0
      Linus Torvalds 提交于
      Pull cifs xattr updates from Al Viro:
       "This is the remaining parts of the xattr work - the cifs bits"
      
      * 'for-cifs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        cifs: Switch to generic xattr handlers
        cifs: Fix removexattr for os2.* xattrs
        cifs: Check for equality with ACL_TYPE_ACCESS and ACL_TYPE_DEFAULT
        cifs: Fix xattr name checks
      681750c0
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 820c687b
      Linus Torvalds 提交于
      Pull UDF fixes from Jan Kara:
       "A fix for UDF crash on corrupted media and one UDF header fixup"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: Export superblock magic to userspace
        udf: Prevent stack overflow on corrupted filesystem mount
      820c687b
    • L
      Merge tag 'jfs-4.7' of git://github.com/kleikamp/linux-shaggy · dba1e987
      Linus Torvalds 提交于
      Pull jfs updates from Dave Kleikamp:
       "Some jfs logging cleanups from Joe Perches"
      
      * tag 'jfs-4.7' of git://github.com/kleikamp/linux-shaggy:
        jfs: Coalesce some formats
        jfs: Remove unnecessary line continuations and terminating newlines
        jfs: Remove terminating newlines from jfs_info, jfs_warn, jfs_err uses
      dba1e987
    • K
      exec: clarify reasoning for euid/egid reset · cb6fd68f
      Kees Cook 提交于
      This section of code initially looks redundant, but is required. This
      improves the comment to explain more clearly why the reset is needed.
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Acked-by: NSerge E. Hallyn <serge.hallyn@ubuntu.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cb6fd68f
    • D
      Revert "phy dp83867: Fix compilation with CONFIG_OF_MDIO=m" · 917fa535
      David S. Miller 提交于
      This reverts commit 7f32541c.
      
      This needs reverting too, as per requests.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      917fa535
    • D
      Revert "phy dp83867: Make rgmii parameters optional" · c606b499
      David S. Miller 提交于
      This reverts commit 81003bc9.
      
      Developers have asked me to revert this for now.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c606b499
    • A
      r8169: default to 64-bit DMA on recent PCIe chips · 27896c83
      Ard Biesheuvel 提交于
      The current logic around the 'use_dac' module parameter prevents the
      r81969 driver from being loadable on 64-bit systems without any RAM
      below 4 GB when the parameter is left at its default value.
      
      So introduce a new default value -1 which indicates that 64-bit DMA
      should be enabled on sufficiently recent PCIe chips, i.e., versions
      RTL_GIGA_MAC_VER_18 or later. Explicit param values of 0 or 1 retain
      the existing behavior of unconditionally enabling/disabling 64-bit DMA
      on 64-bit architectures (i.e., regardless of the type and version of the
      chip)
      
      Since PCIe chips do not need to CPlusCmd Dual Address Cycle to be set,
      make that conditional on the device type as well.
      
      Cc: Realtek linux nic maintainers <nic_swsd@realtek.com>
      Signed-off-by: NArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      27896c83
    • A
      phy dp83867: Make rgmii parameters optional · 81003bc9
      Alexander Graf 提交于
      If you compile without OF_MDIO support in an RGMII configuration, we fail
      to configure the dp83867 phy today by writing garbage into its configuration
      registers.
      
      On the other hand if you do compile with OF_MDIO and the phy gets loaded via
      device tree, you have to have the properties set in the device tree, otherwise
      we fail to load the driver and don't even attach the generic phy driver to
      the interface anymore.
      
      To make things slightly more consistent, make the rgmii configuration properties
      optional and allow a user to omit them in their device tree.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      81003bc9
    • A
      phy dp83867: Fix compilation with CONFIG_OF_MDIO=m · 7f32541c
      Alexander Graf 提交于
      When CONFIG_OF_MDIO is configured as module, the #define for it really
      is CONFIG_OF_MDIO_MODULE, not CONFIG_OF_MDIO. So if we are compiling it
      as module, the dp83867 doesn't see that OF_MDIO was selected and doesn't
      read the dt rgmii parameters.
      
      The fix is simple: Use IS_ENABLED(). It checks for both - module as well
      as compiled in code.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7f32541c
    • D
      Merge tag 'net-next-qcom-soc-4.7-2-merge' of git://github.com/andersson/kernel · 08a6ee58
      David S. Miller 提交于
      Merge tag 'qcom-soc-for-4.7-2' into net-next
      
      This merges the Qualcomm SOC tree with the net-next, solving the
      merge conflict in the SMD API between the two.
      08a6ee58
    • Y
      bpf: arm64: remove callee-save registers use for tmp registers · 4c1cd4fd
      Yang Shi 提交于
      In the current implementation of ARM64 eBPF JIT, R23 and R24 are used for
      tmp registers, which are callee-saved registers. This leads to variable size
      of JIT prologue and epilogue. The latest blinding constant change prefers to
      constant size of prologue and epilogue. AAPCS reserves R9 ~ R15 for temp
      registers which not need to be saved/restored during function call. So, replace
      R23 and R24 to R10 and R11, and remove tmp_used flag to save 2 instructions for
      some jited BPF program.
      
      CC: Daniel Borkmann <daniel@iogearbox.net>
      Acked-by: NZi Shen Lim <zlim.lnx@gmail.com>
      Signed-off-by: NYang Shi <yang.shi@linaro.org>
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Acked-by: NDaniel Borkmann <daniel@iogearbox.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4c1cd4fd
    • J
      asix: Fix offset calculation in asix_rx_fixup() causing slow transmissions · cd9e2e5d
      John Stultz 提交于
      In testing with HiKey, we found that since
      commit 3f30b158 ("asix: On RX avoid creating bad Ethernet
      frames"),
      we're seeing lots of noise during network transfers:
      
      [  239.027993] asix 1-1.1:1.0 eth0: asix_rx_fixup() Data Header synchronisation was lost, remaining 988
      [  239.037310] asix 1-1.1:1.0 eth0: asix_rx_fixup() Bad Header Length 0x54ebb5ec, offset 4
      [  239.045519] asix 1-1.1:1.0 eth0: asix_rx_fixup() Bad Header Length 0xcdffe7a2, offset 4
      [  239.275044] asix 1-1.1:1.0 eth0: asix_rx_fixup() Data Header synchronisation was lost, remaining 988
      [  239.284355] asix 1-1.1:1.0 eth0: asix_rx_fixup() Bad Header Length 0x1d36f59d, offset 4
      [  239.292541] asix 1-1.1:1.0 eth0: asix_rx_fixup() Bad Header Length 0xaef3c1e9, offset 4
      [  239.518996] asix 1-1.1:1.0 eth0: asix_rx_fixup() Data Header synchronisation was lost, remaining 988
      [  239.528300] asix 1-1.1:1.0 eth0: asix_rx_fixup() Bad Header Length 0x2881912, offset 4
      [  239.536413] asix 1-1.1:1.0 eth0: asix_rx_fixup() Bad Header Length 0x5638f7e2, offset 4
      
      And network throughput ends up being pretty bursty and slow with
      a overall throughput of at best ~30kB/s (where as previously we
      got 1.1MB/s with the slower USB1.1 "full speed" host).
      
      We found the issue also was reproducible on a x86_64 system,
      using a "high-speed" USB2.0 port but the throughput did not
      measurably drop (possibly due to the scp transfer being cpu
      bound on my slow test hardware).
      
      After lots of debugging, I found the check added in the
      problematic commit seems to be calculating the offset
      incorrectly.
      
      In the normal case, in the main loop of the function, we do:
      (where offset is zero, or set to "offset += (copy_length + 1) &
      0xfffe" in the previous loop)
          rx->header = get_unaligned_le32(skb->data +
                                          offset);
          offset += sizeof(u32);
      
      But the problematic patch calculates:
          offset = ((rx->remaining + 1) & 0xfffe) + sizeof(u32);
          rx->header = get_unaligned_le32(skb->data + offset);
      
      Adding some debug logic to check those offset calculation used
      to find rx->header, the one in problematic code is always too
      large by sizeof(u32).
      
      Thus, this patch removes the incorrect " + sizeof(u32)" addition
      in the problematic calculation, and resolves the issue.
      
      Cc: Dean Jenkins <Dean_Jenkins@mentor.com>
      Cc: "David B. Robins" <linux@davidrobins.net>
      Cc: Mark Craske <Mark_Craske@mentor.com>
      Cc: Emil Goode <emilgoode@gmail.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: YongQin Liu <yongqin.liu@linaro.org>
      Cc: Guodong Xu <guodong.xu@linaro.org>
      Cc: Ivan Vecera <ivecera@redhat.com>
      Cc: linux-usb@vger.kernel.org
      Cc: netdev@vger.kernel.org
      Cc: stable <stable@vger.kernel.org> #4.4+
      Reported-by: NYongqin Liu <yongqin.liu@linaro.org>
      Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cd9e2e5d
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 7f427d3a
      Linus Torvalds 提交于
      Pull parallel filesystem directory handling update from Al Viro.
      
      This is the main parallel directory work by Al that makes the vfs layer
      able to do lookup and readdir in parallel within a single directory.
      That's a big change, since this used to be all protected by the
      directory inode mutex.
      
      The inode mutex is replaced by an rwsem, and serialization of lookups of
      a single name is done by a "in-progress" dentry marker.
      
      The series begins with xattr cleanups, and then ends with switching
      filesystems over to actually doing the readdir in parallel (switching to
      the "iterate_shared()" that only takes the read lock).
      
      A more detailed explanation of the process from Al Viro:
       "The xattr work starts with some acl fixes, then switches ->getxattr to
        passing inode and dentry separately.  This is the point where the
        things start to get tricky - that got merged into the very beginning
        of the -rc3-based #work.lookups, to allow untangling the
        security_d_instantiate() mess.  The xattr work itself proceeds to
        switch a lot of filesystems to generic_...xattr(); no complications
        there.
      
        After that initial xattr work, the series then does the following:
      
         - untangle security_d_instantiate()
      
         - convert a bunch of open-coded lookup_one_len_unlocked() to calls of
           that thing; one such place (in overlayfs) actually yields a trivial
           conflict with overlayfs fixes later in the cycle - overlayfs ended
           up switching to a variant of lookup_one_len_unlocked() sans the
           permission checks.  I would've dropped that commit (it gets
           overridden on merge from #ovl-fixes in #for-next; proper resolution
           is to use the variant in mainline fs/overlayfs/super.c), but I
           didn't want to rebase the damn thing - it was fairly late in the
           cycle...
      
         - some filesystems had managed to depend on lookup/lookup exclusion
           for *fs-internal* data structures in a way that would break if we
           relaxed the VFS exclusion.  Fixing hadn't been hard, fortunately.
      
         - core of that series - parallel lookup machinery, replacing
           ->i_mutex with rwsem, making lookup_slow() take it only shared.  At
           that point lookups happen in parallel; lookups on the same name
           wait for the in-progress one to be done with that dentry.
      
           Surprisingly little code, at that - almost all of it is in
           fs/dcache.c, with fs/namei.c changes limited to lookup_slow() -
           making it use the new primitive and actually switching to locking
           shared.
      
         - parallel readdir stuff - first of all, we provide the exclusion on
           per-struct file basis, same as we do for read() vs lseek() for
           regular files.  That takes care of most of the needed exclusion in
           readdir/readdir; however, these guys are trickier than lookups, so
           I went for switching them one-by-one.  To do that, a new method
           '->iterate_shared()' is added and filesystems are switched to it
           as they are either confirmed to be OK with shared lock on directory
           or fixed to be OK with that.  I hope to kill the original method
           come next cycle (almost all in-tree filesystems are switched
           already), but it's still not quite finished.
      
         - several filesystems get switched to parallel readdir.  The
           interesting part here is dealing with dcache preseeding by readdir;
           that needs minor adjustment to be safe with directory locked only
           shared.
      
           Most of the filesystems doing that got switched to in those
           commits.  Important exception: NFS.  Turns out that NFS folks, with
           their, er, insistence on VFS getting the fuck out of the way of the
           Smart Filesystem Code That Knows How And What To Lock(tm) have
           grown the locking of their own.  They had their own homegrown
           rwsem, with lookup/readdir/atomic_open being *writers* (sillyunlink
           is the reader there).  Of course, with VFS getting the fuck out of
           the way, as requested, the actual smarts of the smart filesystem
           code etc. had become exposed...
      
         - do_last/lookup_open/atomic_open cleanups.  As the result, open()
           without O_CREAT locks the directory only shared.  Including the
           ->atomic_open() case.  Backmerge from #for-linus in the middle of
           that - atomic_open() fix got brought in.
      
         - then comes NFS switch to saner (VFS-based ;-) locking, killing the
           homegrown "lookup and readdir are writers" kinda-sorta rwsem.  All
           exclusion for sillyunlink/lookup is done by the parallel lookups
           mechanism.  Exclusion between sillyunlink and rmdir is a real rwsem
           now - rmdir being the writer.
      
           Result: NFS lookups/readdirs/O_CREAT-less opens happen in parallel
           now.
      
         - the rest of the series consists of switching a lot of filesystems
           to parallel readdir; in a lot of cases ->llseek() gets simplified
           as well.  One backmerge in there (again, #for-linus - rockridge
           fix)"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (74 commits)
        ext4: switch to ->iterate_shared()
        hfs: switch to ->iterate_shared()
        hfsplus: switch to ->iterate_shared()
        hostfs: switch to ->iterate_shared()
        hpfs: switch to ->iterate_shared()
        hpfs: handle allocation failures in hpfs_add_pos()
        gfs2: switch to ->iterate_shared()
        f2fs: switch to ->iterate_shared()
        afs: switch to ->iterate_shared()
        befs: switch to ->iterate_shared()
        befs: constify stuff a bit
        isofs: switch to ->iterate_shared()
        get_acorn_filename(): deobfuscate a bit
        btrfs: switch to ->iterate_shared()
        logfs: no need to lock directory in lseek
        switch ecryptfs to ->iterate_shared
        9p: switch to ->iterate_shared()
        fat: switch to ->iterate_shared()
        romfs, squashfs: switch to ->iterate_shared()
        more trivial ->iterate_shared conversions
        ...
      7f427d3a
    • J
      switchdev: pass pointer to fib_info instead of copy · da4ed551
      Jiri Pirko 提交于
      The problem is that fib_info->nh is [0] so the struct fib_info
      allocation size depends on number of nexthops. If we just copy fib_info,
      we do not copy the nexthops info and driver accesses memory which is not
      ours.
      
      Given the fact that fib4 does not defer operations and therefore it does
      not need copy, just pass the pointer down to drivers as it was done
      before.
      
      Fixes: 850d0cbc ("switchdev: remove pointers from switchdev objects")
      Signed-off-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      da4ed551
    • L
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ede40902
      Linus Torvalds 提交于
      Pull irq updates from Thomas Gleixner:
       "This update delivers:
      
         - Yet another interrupt chip diver (LPC32xx)
         - Core functions to handle partitioned per-cpu interrupts
         - Enhancements to the IPI core
         - Proper handling of irq type configuration
         - A large set of ARM GIC enhancements
         - The usual pile of small fixes, cleanups and enhancements"
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
        irqchip/bcm2836: Use a more generic memory barrier call
        irqchip/bcm2836: Fix compiler warning on 64-bit build
        irqchip/bcm2836: Drop smp_set_ops on arm64 builds
        irqchip/gic: Add helper functions for GIC setup and teardown
        irqchip/gic: Store GIC configuration parameters
        irqchip/gic: Pass GIC pointer to save/restore functions
        irqchip/gic: Return an error if GIC initialisation fails
        irqchip/gic: Remove static irq_chip definition for eoimode1
        irqchip/gic: Don't initialise chip if mapping IO space fails
        irqchip/gic: WARN if setting the interrupt type for a PPI fails
        irqchip/gic: Don't unnecessarily write the IRQ configuration
        irqchip: Mask the non-type/sense bits when translating an IRQ
        genirq: Ensure IRQ descriptor is valid when setting-up the IRQ
        irqchip/gic-v3: Configure all interrupts as non-secure Group-1
        irqchip/gic-v2m: Add workaround for Broadcom NS2 GICv2m erratum
        irqchip/irq-alpine-msi: Don't use <asm-generic/msi.h>
        irqchip/mbigen: Checking for IS_ERR() instead of NULL
        irqchip/gic-v3: Remove inexistant register definition
        irqchip/gicv3-its: Don't allow devices whose ID is outside range
        irqchip: Add LPC32xx interrupt controller driver
        ...
      ede40902
    • L
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 91e8d0cb
      Linus Torvalds 提交于
      Pull timer updates from Thomas Gleixner:
       "A rather small set of patches from the timer departement:
      
         - Some more y2038 work
         - Yet another new clocksource driver
         - The usual set of small fixes, cleanups and enhancements"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource/drivers/tegra: Remove unused suspend/resume code
        clockevents/driversi/mps2: add MPS2 Timer driver
        dt-bindings: document the MPS2 timer bindings
        clocksource/drivers/mtk_timer: Add __init attribute
        clockevents/drivers/dw_apb_timer: Implement ->set_state_oneshot_stopped()
        time: Introduce do_sys_settimeofday64()
        security: Introduce security_settime64()
        clocksource: Add missing include of of.h.
      91e8d0cb
    • L
      Merge tag 'trace-fixes-v4.6-rc7' of... · 2fe2edf8
      Linus Torvalds 提交于
      Merge tag 'trace-fixes-v4.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull tracing ring-buffer fixes from Steven Rostedt:
       "Hao Qin reported an integer overflow possibility with signed and
        unsigned numbers in the ring-buffer code.
      
          https://bugzilla.kernel.org/show_bug.cgi?id=118001
      
        At first I did not think this was too much of an issue, because the
        overflow would be caught later when either too much data was allocated
        or it would trigger RB_WARN_ON() which shuts down the ring buffer.
      
        But looking closer into it, I found that the right settings could
        bypass the checks and crash the kernel.  Luckily, this is only
        accessible by root.
      
        The first fix is to convert all the variables into long, such that we
        don't get into issues between 32 bit variables being assigned 64 bit
        ones.  This fixes the RB_WARN_ON() triggering.
      
        The next fix is to get rid of a duplicate DIV_ROUND_UP() that when
        called twice with the right value, can cause a kernel crash.
      
        The first DIV_ROUND_UP() is to normalize the input and it is checked
        against the minimum allowable value.  But then DIV_ROUND_UP() is
        called again, which can overflow due to the (a + b - 1)/b, logic.  The
        first called upped the value, the second can overflow (with the +b
        part).
      
        The second call to DIV_ROUND_UP() came in via a second change a while
        ago and the code is cleaned up to remove it"
      
      * tag 'trace-fixes-v4.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        ring-buffer: Prevent overflow of size in ring_buffer_resize()
        ring-buffer: Use long for nr_pages to avoid overflow failures
      2fe2edf8
    • W
      net_sched: close another race condition in tcf_mirred_release() · dc327f89
      WANG Cong 提交于
      We saw the following extra refcount release on veth device:
      
        kernel: [7957821.463992] unregister_netdevice: waiting for mesos50284 to become free. Usage count = -1
      
      Since we heavily use mirred action to redirect packets to veth, I think
      this is caused by the following race condition:
      
      CPU0:
      tcf_mirred_release(): (in RCU callback)
      	struct net_device *dev = rcu_dereference_protected(m->tcfm_dev, 1);
      
      CPU1:
      mirred_device_event():
              spin_lock_bh(&mirred_list_lock);
              list_for_each_entry(m, &mirred_list, tcfm_list) {
                      if (rcu_access_pointer(m->tcfm_dev) == dev) {
                              dev_put(dev);
                              /* Note : no rcu grace period necessary, as
                               * net_device are already rcu protected.
                               */
                              RCU_INIT_POINTER(m->tcfm_dev, NULL);
                      }
              }
              spin_unlock_bh(&mirred_list_lock);
      
      CPU0:
      tcf_mirred_release():
              spin_lock_bh(&mirred_list_lock);
              list_del(&m->tcfm_list);
              spin_unlock_bh(&mirred_list_lock);
              if (dev)               // <======== Stil refers to the old m->tcfm_dev
                      dev_put(dev);  // <======== dev_put() is called on it again
      
      The action init code path is good because it is impossible to modify
      an action that is being removed.
      
      So, fix this by moving everything under the spinlock.
      
      Fixes: 2ee22a90 ("net_sched: act_mirred: remove spinlock in fast path")
      Fixes: 6bd00b85 ("act_mirred: fix a race condition on mirred_list")
      Cc: Jamal Hadi Salim <jhs@mojatatu.com>
      Signed-off-by: NCong Wang <xiyou.wangcong@gmail.com>
      Acked-by: NJamal Hadi Salim <jhs@mojatatu.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dc327f89
    • R
      tipc: fix nametable publication field in nl compat · 03aaaa9b
      Richard Alpe 提交于
      The publication field of the old netlink API should contain the
      publication key and not the publication reference.
      
      Fixes: 44a8ae94 (tipc: convert legacy nl name table dump to nl compat)
      Signed-off-by: NRichard Alpe <richard.alpe@ericsson.com>
      Acked-by: NJon Maloy <jon.maloy@ericsson.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      03aaaa9b
    • L
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 9a07a796
      Linus Torvalds 提交于
      Pull crypto update from Herbert Xu:
       "API:
      
         - Crypto self tests can now be disabled at boot/run time.
         - Add async support to algif_aead.
      
        Algorithms:
      
         - A large number of fixes to MPI from Nicolai Stange.
         - Performance improvement for HMAC DRBG.
      
        Drivers:
      
         - Use generic crypto engine in omap-des.
         - Merge ppc4xx-rng and crypto4xx drivers.
         - Fix lockups in sun4i-ss driver by disabling IRQs.
         - Add DMA engine support to ccp.
         - Reenable talitos hash algorithms.
         - Add support for Hisilicon SoC RNG.
         - Add basic crypto driver for the MXC SCC.
      
        Others:
      
         - Do not allocate crypto hash tfm in NORECLAIM context in ecryptfs"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (77 commits)
        crypto: qat - change the adf_ctl_stop_devices to void
        crypto: caam - fix caam_jr_alloc() ret code
        crypto: vmx - comply with ABIs that specify vrsave as reserved.
        crypto: testmgr - Add a flag allowing the self-tests to be disabled at runtime.
        crypto: ccp - constify ccp_actions structure
        crypto: marvell/cesa - Use dma_pool_zalloc
        crypto: qat - make adf_vf_isr.c dependant on IOV config
        crypto: qat - Fix typo in comments
        lib: asn1_decoder - add MODULE_LICENSE("GPL")
        crypto: omap-sham - Use dma_request_chan() for requesting DMA channel
        crypto: omap-des - Use dma_request_chan() for requesting DMA channel
        crypto: omap-aes - Use dma_request_chan() for requesting DMA channel
        crypto: omap-des - Integrate with the crypto engine framework
        crypto: s5p-sss - fix incorrect usage of scatterlists api
        crypto: s5p-sss - Fix missed interrupts when working with 8 kB blocks
        crypto: s5p-sss - Use common BIT macro
        crypto: mxc-scc - fix unwinding in mxc_scc_crypto_register()
        crypto: mxc-scc - signedness bugs in mxc_scc_ablkcipher_req_init()
        crypto: talitos - fix ahash algorithms registration
        crypto: ccp - Ensure all dependencies are specified
        ...
      9a07a796
    • H
      drivers: net: Don't print unpopulated net_device name · 3274940b
      Harvey Hunt 提交于
      For ethernet devices, net_device.name will be eth%d before
      register_netdev() is called. Don't print the net_device name until
      the format string is replaced.
      Signed-off-by: NHarvey Hunt <harvey.hunt@imgtec.com>
      Cc: Marcel Ziswiler <marcel@ziswiler.com>
      Cc: Robert Jarzmik <robert.jarzmik@free.fr>
      Cc: Barry Song <Baohua.Song@csr.com>
      Cc: netdev@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3274940b
    • S
      qed: add support for dcbx. · 39651abd
      Sudarsana Reddy Kalluru 提交于
      This patch adds the necessary driver support for Management Firmware to
      configure the device/firmware with the dcbx results. Management Firmware
      is responsible for communicating the DCBX and driving the negotiation,
      but the driver has responsibility of receiving async notification and
      configuring the results in hw/fw. This patch also adds the dcbx support for
      future protocols (e.g., FCoE) as preparation to their imminent submission.
      Signed-off-by: NSudarsana Reddy Kalluru <sudarsana.kalluru@qlogic.com>
      Signed-off-by: NYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      39651abd
    • G
      ravb: Add missing free_irq() calls to ravb_close() · ccf92824
      Geert Uytterhoeven 提交于
      When reopening the network device on ra7795/salvator-x, e.g. after a
      DHCP timeout:
      
          IP-Config: Reopening network devices...
          genirq: Flags mismatch irq 139. 00000000 (eth0:ch0:rx_be) vs. 00000000 (ravb e6800000.ethernet eth0: cannot request IRQ eth0:ch0:rx_be
          IP-Config: Failed to open eth0
          IP-Config: No network devices available
      
      The "mismatch" is due to requesting an IRQ that is already in use,
      while IRQF_PROBE_SHARED wasn't set.
      
      However, the real cause is that ravb_close() doesn't release any of the
      R-Car Gen3-specific secondary IRQs.
      
      Add the missing free_irq() calls to fix this.
      
      Fixes: f51bdc23 ("ravb: Add dma queue interrupt support")
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Acked-by: NSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ccf92824
    • D
      qed: Remove a stray tab · f82731b4
      Dan Carpenter 提交于
      This line was indented more than it should be.
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Acked-by: NYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f82731b4
    • D
      Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue · 2cc632db
      David S. Miller 提交于
      Jeff Kirsher says:
      
      ====================
      10GbE Intel Wired LAN Driver Updates 2016-05-16
      
      This series contains 2 fixes to ixgbe only.
      
      Emil fixes transmit hangs when enabling SRIOV by swapping the parameters
      in GENMASK in order to generate the correct mask.
      
      Alex fixes his previous patch b83e3010 ("ixgbe/ixgbevf: Add support
      for GSO partial") where he somehow transposed the location of setting
      the VLAN features in netdev->features and the configuration of the
      vlan_features.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2cc632db
  3. 17 5月, 2016 4 次提交
    • A
      Merge branch 'ovl-fixes' into for-linus · 0e0162bb
      Al Viro 提交于
      Backmerge to resolve a conflict in ovl_lookup_real();
      "ovl_lookup_real(): use lookup_one_len_unlocked()" instead,
      but it was too late in the cycle to rebase.
      0e0162bb
    • L
      Merge tag 'device-properties-4.7-rc1' of... · 16490980
      Linus Torvalds 提交于
      Merge tag 'device-properties-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
      
      Pull device properties update from Rafael Wysocki:
       "Generic device properties framework update.
      
        Just one commit reworking the handling of built-in properties
        initialization and updating a few drivers in accordance with the core
        framework changes"
      
      * tag 'device-properties-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        device property: don't bother the drivers with struct property_set
      16490980
    • L
      Merge tag 'acpi-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 46c13450
      Linus Torvalds 提交于
      Pull ACPI updates from Rafael Wysocki:
       "The new features here are ACPI 6.1 support (and some previously
        missing bits of ACPI 6.0 support) in ACPICA and two new drivers, a
        driver for the ACPI Generic Event Device (GED) feature introduced by
        ACPI 6.1 and the INT3406 thermal driver for display thermal
        management.  Also the value returned by the _HRV (hardware revision)
        ACPI object will be exported to user space via sysfs now.
      
        In addition to that, ACPI on ARM64 will not depend on EXPERT any more.
      
        The rest is mostly fixes and cleanups and some code reorganization.
      
        Specifics:
      
         - In-kernel ACPICA code update to the upstream release 20160422
           adding support for ACPI 6.1 along with some previously missing bits
           of ACPI 6.0 support, making a fair amount of fixes and cleanups and
           reducing divergences between the upstream ACPICA and the in-kernel
           code (Bob Moore, Lv Zheng, Al Stone, Aleksey Makarov, Will Miles)
      
         - ACPI Generic Event Device (GED) support and a fix for it (Sinan
           Kaya, Paul Gortmaker)
      
         - INT3406 thermal driver for display thermal management and ACPI
           backlight support code reorganization related to it (Aaron Lu, Arnd
           Bergmann)
      
         - Support for exporting the value returned by the _HRV (hardware
           revision) ACPI object via sysfs (Betty Dall)
      
         - Removal of the EXPERT dependency for ACPI on ARM64 (Mark Brown)
      
         - Rework of the handling of ACPI _OSI mechanism allowing the
           _OSI("Darwin") support to be overridden from the kernel command
           line among other things (Lv Zheng, Chen Yu)
      
         - Rework of the ACPI tables override mechanism to prepare it for the
           introduction of overlays support going forward (Lv Zheng, Rafael
           Wysocki)
      
         - Fixes related to the ECDT support and module-level execution of AML
           (Lv Zheng)
      
         - ACPI PCI interrupts management update to make it work better on
           ARM64 mostly (Sinan Kaya)
      
         - ACPI SRAT handling update to make the code process all entires in
           the table order regardless of the entry type (Lukasz Anaczkowski)
      
         - EFI power off support for full-hardware ACPI platforms that don't
           support ACPI S5 (Chen Yu)
      
         - Fixes and cleanups related to the ACPI core's sysfs interface (Dan
           Carpenter, Betty Dall)
      
         - acpi_dev_present() API rework to reduce possible confusion related
           to it (Lukas Wunner)
      
         - Removal of CLK_IS_ROOT from two ACPI drivers (Stephen Boyd)"
      
      * tag 'acpi-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (82 commits)
        ACPI / video: mark acpi_video_get_levels() inline
        Thermal / ACPI / video: add INT3406 thermal driver
        ACPI / GED: make evged.c explicitly non-modular
        ACPI / tables: Fix DSDT override mechanism
        ACPI / sysfs: fix error code in get_status()
        ACPICA: Update version to 20160422
        ACPICA: Move all ASCII utilities to a common file
        ACPICA: ACPI 2.0, Hardware: Add access_width/bit_offset support for acpi_hw_write()
        ACPICA: ACPI 2.0, Hardware: Add access_width/bit_offset support in acpi_hw_read()
        ACPICA: Executer: Introduce a set of macros to handle bit width mask generation
        ACPICA: Hardware: Add optimized access bit width support
        ACPICA: Utilities: Add ACPI_IS_ALIGNED() macro
        ACPICA: Renamed some #defined flag constants for clarity
        ACPICA: ACPI 6.0, tools/iasl: Add support for new resource descriptors
        ACPICA: ACPI 6.0: Update _BIX support for new package element
        ACPICA: ACPI 6.1: Support for new PCCT subtable
        ACPICA: Refactor evaluate_object to reduce nesting
        ACPICA: Divergence: remove unwanted spaces for typedef
        ACPI,PCI,IRQ: remove SCI penalize function
        ACPI,PCI,IRQ: remove redundant code in acpi_irq_penalty_init()
        ..
      46c13450
    • P
      net: ethernet: fec-mpc52xx: use phy_ethtool_{get|set}_link_ksettings · b1725423
      Philippe Reynes 提交于
      There are two generics functions phy_ethtool_{get|set}_link_ksettings,
      so we can use them instead of defining the same code in the driver.
      Signed-off-by: NPhilippe Reynes <tremyfr@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b1725423