1. 19 10月, 2016 2 次提交
    • W
      arm64: percpu: rewrite ll/sc loops in assembly · 1e6e57d9
      Will Deacon 提交于
      Writing the outer loop of an LL/SC sequence using do {...} while
      constructs potentially allows the compiler to hoist memory accesses
      between the STXR and the branch back to the LDXR. On CPUs that do not
      guarantee forward progress of LL/SC loops when faced with memory
      accesses to the same ERG (up to 2k) between the failed STXR and the
      branch back, we may end up livelocking.
      
      This patch avoids this issue in our percpu atomics by rewriting the
      outer loop as part of the LL/SC inline assembly block.
      
      Cc: <stable@vger.kernel.org>
      Fixes: f97fc810 ("arm64: percpu: Implement this_cpu operations")
      Reviewed-by: NMark Rutland <mark.rutland@arm.com>
      Tested-by: NMark Rutland <mark.rutland@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      1e6e57d9
    • W
      arm64: swp emulation: bound LL/SC retries before rescheduling · 1c5b51df
      Will Deacon 提交于
      If a CPU does not implement a global monitor for certain memory types,
      then userspace can attempt a kernel DoS by issuing SWP instructions
      targetting the problematic memory (for example, a framebuffer mapped
      with non-cacheable attributes).
      
      The SWP emulation code protects against these sorts of attacks by
      checking for pending signals and potentially rescheduling when the STXR
      instruction fails during the emulation. Whilst this is good for avoiding
      livelock, it harms emulation of legitimate SWP instructions on CPUs
      where forward progress is not guaranteed if there are memory accesses to
      the same reservation granule (up to 2k) between the failing STXR and
      the retry of the LDXR.
      
      This patch solves the problem by retrying the STXR a bounded number of
      times (4) before breaking out of the LL/SC loop and looking for
      something else to do.
      
      Cc: <stable@vger.kernel.org>
      Fixes: bd35a4ad ("arm64: Port SWP/SWPB emulation support from arm")
      Reviewed-by: NMark Rutland <mark.rutland@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      1c5b51df
  2. 18 10月, 2016 1 次提交
    • W
      arm64: sysreg: Fix use of XZR in write_sysreg_s · 91cb163e
      Will Deacon 提交于
      Commit 8a71f0c6 ("arm64: sysreg: replace open-coded mrs_s/msr_s with
      {read,write}_sysreg_s") introduced a write_sysreg_s macro for writing
      to system registers that are not supported by binutils.
      
      Unfortunately, this was implemented with the wrong template (%0 vs %x0),
      so in the case that we are writing a constant 0, we will generate
      invalid instruction syntax and bail with a cryptic assembler error:
      
        | Error: constant expression required
      
      This patch fixes the template.
      Acked-by: NMark Rutland <mark.rutland@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      91cb163e
  3. 17 10月, 2016 5 次提交
    • A
      arm64: kaslr: keep modules close to the kernel when DYNAMIC_FTRACE=y · 8fe88a41
      Ard Biesheuvel 提交于
      The RANDOMIZE_MODULE_REGION_FULL Kconfig option allows KASLR to be
      configured in such a way that kernel modules and the core kernel are
      allocated completely independently, which implies that modules are likely
      to require branches via PLT entries to reach the core kernel. The dynamic
      ftrace code does not expect that, and assumes that it can patch module
      code to perform a relative branch to anywhere in the core kernel. This
      may result in errors such as
      
        branch_imm_common: offset out of range
        ------------[ cut here ]------------
        WARNING: CPU: 3 PID: 196 at kernel/trace/ftrace.c:1995 ftrace_bug+0x220/0x2e8
        Modules linked in:
      
        CPU: 3 PID: 196 Comm: systemd-udevd Not tainted 4.8.0-22-generic #24
        Hardware name: AMD Seattle/Seattle, BIOS 10:34:40 Oct  6 2016
        task: ffff8d1bef7dde80 task.stack: ffff8d1bef6b0000
        PC is at ftrace_bug+0x220/0x2e8
        LR is at ftrace_process_locs+0x330/0x430
      
      So make RANDOMIZE_MODULE_REGION_FULL mutually exclusive with DYNAMIC_FTRACE
      at the Kconfig level.
      Signed-off-by: NArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      8fe88a41
    • M
      arm64: kernel: Init MDCR_EL2 even in the absence of a PMU · 85054035
      Marc Zyngier 提交于
      Commit f436b2ac ("arm64: kernel: fix architected PMU registers
      unconditional access") made sure we wouldn't access unimplemented
      PMU registers, but also left MDCR_EL2 uninitialized in that case,
      leading to trap bits being potentially left set.
      
      Make sure we always write something in that register.
      
      Fixes: f436b2ac ("arm64: kernel: fix architected PMU registers unconditional access")
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      85054035
    • T
      perf: xgene: Remove bogus IS_ERR() check · 9a1a1f40
      Tai Nguyen 提交于
      In acpi_get_pmu_hw_inf we pass the address of a local variable to IS_ERR(),
      which doesn't make sense, as the pointer must be a real, valid pointer.
      This doesn't cause a functional problem, as IS_ERR() will evaluate as
      false, but the check is bogus and causes static checkers to complain.
      
      Remove the bogus check.
      
      The bug is reported by Dan Carpenter <dan.carpenter@oracle.com> in [1]
      
      [1] https://www.spinics.net/lists/arm-kernel/msg535957.htmlSigned-off-by: NTai Nguyen <ttnguyen@apm.com>
      Acked-by: NMark Rutland <mark.rutland@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      9a1a1f40
    • L
      arm64: kernel: numa: fix ACPI boot cpu numa node mapping · baa5567c
      Lorenzo Pieralisi 提交于
      Commit 7ba5f605 ("arm64/numa: remove the limitation that cpu0 must
      bind to node0") removed the numa cpu<->node mapping restriction whereby
      logical cpu 0 always corresponds to numa node 0; removing the
      restriction was correct, in that it does not really exist in practice
      but the commit only updated the early mapping of logical cpu 0 to its
      real numa node for the DT boot path, missing the ACPI one, leading to
      boot failures on ACPI systems owing to missing node<->cpu map for
      logical cpu 0.
      
      Fix the issue by updating the ACPI boot path with code that carries out
      the early cpu<->node mapping also for the boot cpu (ie cpu 0), mirroring
      what is currently done in the DT boot path.
      
      Fixes: 7ba5f605 ("arm64/numa: remove the limitation that cpu0 must bind to node0")
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Tested-by: NLaszlo Ersek <lersek@redhat.com>
      Reported-by: NLaszlo Ersek <lersek@redhat.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Laszlo Ersek <lersek@redhat.com>
      Cc: Hanjun Guo <hanjun.guo@linaro.org>
      Cc: Andrew Jones <drjones@redhat.com>
      Cc: Zhen Lei <thunder.leizhen@huawei.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      baa5567c
    • A
      arm64: kaslr: fix breakage with CONFIG_MODVERSIONS=y · 9c0e83c3
      Ard Biesheuvel 提交于
      As it turns out, the KASLR code breaks CONFIG_MODVERSIONS, since the
      kcrctab has an absolute address field that is relocated at runtime
      when the kernel offset is randomized.
      
      This has been fixed already for PowerPC in the past, so simply wire up
      the existing code dealing with this issue.
      
      Cc: <stable@vger.kernel.org>
      Fixes: f80fb3a3 ("arm64: add support for kernel ASLR")
      Tested-by: NTimur Tabi <timur@codeaurora.org>
      Signed-off-by: NArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      9c0e83c3
  4. 16 10月, 2016 5 次提交
    • L
      Linux 4.9-rc1 · 1001354c
      Linus Torvalds 提交于
      1001354c
    • L
      Merge tag 'befs-v4.9-rc1' of git://github.com/luisbg/linux-befs · df34d04a
      Linus Torvalds 提交于
      Pull befs fixes from Luis de Bethencourt:
       "I recently took maintainership of the befs file system [0]. This is
        the first time I send you a git pull request, so please let me know if
        all the below is OK.
      
        Salah Triki and myself have been cleaning the code and fixing a few
        small bugs.
      
        Sorry I couldn't send this sooner in the merge window, I was waiting
        to have my GPG key signed by kernel members at ELCE in Berlin a few
        days ago."
      
      [0] https://lkml.org/lkml/2016/7/27/502
      
      * tag 'befs-v4.9-rc1' of git://github.com/luisbg/linux-befs: (39 commits)
        befs: befs: fix style issues in datastream.c
        befs: improve documentation in datastream.c
        befs: fix typos in datastream.c
        befs: fix typos in btree.c
        befs: fix style issues in super.c
        befs: fix comment style
        befs: add check for ag_shift in superblock
        befs: dump inode_size superblock information
        befs: remove unnecessary initialization
        befs: fix typo in befs_sb_info
        befs: add flags field to validate superblock state
        befs: fix typo in befs_find_key
        befs: remove unused BEFS_BT_PARMATCH
        fs: befs: remove ret variable
        fs: befs: remove in vain variable assignment
        fs: befs: remove unnecessary *befs_sb variable
        fs: befs: remove useless initialization to zero
        fs: befs: remove in vain variable assignment
        fs: befs: Insert NULL inode to dentry
        fs: befs: Remove useless calls to brelse in befs_find_brun_dblindirect
        ...
      df34d04a
    • L
      Merge tag 'gcc-plugins-v4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 9ffc6694
      Linus Torvalds 提交于
      Pull gcc plugins update from Kees Cook:
       "This adds a new gcc plugin named "latent_entropy". It is designed to
        extract as much possible uncertainty from a running system at boot
        time as possible, hoping to capitalize on any possible variation in
        CPU operation (due to runtime data differences, hardware differences,
        SMP ordering, thermal timing variation, cache behavior, etc).
      
        At the very least, this plugin is a much more comprehensive example
        for how to manipulate kernel code using the gcc plugin internals"
      
      * tag 'gcc-plugins-v4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        latent_entropy: Mark functions with __latent_entropy
        gcc-plugins: Add latent_entropy plugin
      9ffc6694
    • L
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 133d970e
      Linus Torvalds 提交于
      Pull MIPS updates from Ralf Baechle:
       "This is the main MIPS pull request for 4.9:
      
        MIPS core arch code:
         - traps: 64bit kernels should read CP0_EBase 64bit
         - traps: Convert ebase to KSEG0
         - c-r4k: Drop bc_wback_inv() from icache flush
         - c-r4k: Split user/kernel flush_icache_range()
         - cacheflush: Use __flush_icache_user_range()
         - uprobes: Flush icache via kernel address
         - KVM: Use __local_flush_icache_user_range()
         - c-r4k: Fix flush_icache_range() for EVA
         - Fix -mabi=64 build of vdso.lds
         - VDSO: Drop duplicated -I*/-E* aflags
         - tracing: move insn_has_delay_slot to a shared header
         - tracing: disable uprobe/kprobe on compact branch instructions
         - ptrace: Fix regs_return_value for kernel context
         - Squash lines for simple wrapper functions
         - Move identification of VP(E) into proc.c from smp-mt.c
         - Add definitions of SYNC barrierstype values
         - traps: Ensure full EBase is written
         - tlb-r4k: If there are wired entries, don't use TLBINVF
         - Sanitise coherentio semantics
         - dma-default: Don't check hw_coherentio if device is non-coherent
         - Support per-device DMA coherence
         - Adjust MIPS64 CAC_BASE to reflect Config.K0
         - Support generating Flattened Image Trees (.itb)
         - generic: Introduce generic DT-based board support
         - generic: Convert SEAD-3 to a generic board
         - Enable hardened usercopy
         - Don't specify STACKPROTECTOR in defconfigs
      
        Octeon:
         - Delete dead code and files across the platform.
         - Change to use all memory into use by default.
         - Rename upper case variables in setup code to lowercase.
         - Delete legacy hack for broken bootloaders.
         - Leave maintaining the link state to the actual ethernet/PHY drivers.
         - Add DTS for D-Link DSR-500N.
         - Fix PCI interrupt routing on D-Link DSR-500N.
      
        Pistachio:
         - Remove ANDROID_TIMED_OUTPUT from defconfig
      
        TX39xx:
         - Move GPIO setup from .mem_setup() to .arch_init()
         - Convert to Common Clock Framework
      
        TX49xx:
         - Move GPIO setup from .mem_setup() to .arch_init()
         - Convert to Common Clock Framework
      
        txx9wdt:
         - Add missing clock (un)prepare calls for CCF
      
        BMIPS:
         - Add PW, GPIO SDHCI and NAND device node names
         - Support APPENDED_DTB
         - Add missing bcm97435svmb to DT_NONE
         - Rename bcm96358nb4ser to bcm6358-neufbox4-sercom
         - Add DT examples for BCM63268, BCM3368 and BCM6362
         - Add support for BCM3368 and BCM6362
      
        PCI
         - Reduce stack frame usage
         - Use struct list_head lists
         - Support for CONFIG_PCI_DOMAINS_GENERIC
         - Make pcibios_set_cache_line_size an initcall
         - Inline pcibios_assign_all_busses
         - Split pci.c into pci.c & pci-legacy.c
         - Introduce CONFIG_PCI_DRIVERS_LEGACY
         - Support generic drivers
      
        CPC
         - Convert bare 'unsigned' to 'unsigned int'
         - Avoid lock when MIPS CM >= 3 is present
      
        GIC:
         - Delete unused file smp-gic.c
      
        mt7620:
         - Delete unnecessary assignment for the field "owner" from PCI
      
        BCM63xx:
         - Let clk_disable() return immediately if clk is NULL
      
        pm-cps:
         - Change FSB workaround to CPU blacklist
         - Update comments on barrier instructions
         - Use MIPS standard lightweight ordering barrier
         - Use MIPS standard completion barrier
         - Remove selection of sync types
         - Add MIPSr6 CPU support
         - Support CM3 changes to Coherence Enable Register
      
        SMP:
         - Wrap call to mips_cpc_lock_other in mips_cm_lock_other
         - Introduce mechanism for freeing and allocating IPIs
      
        cpuidle:
         - cpuidle-cps: Enable use with MIPSr6 CPUs.
      
        SEAD3:
         - Rewrite to use DT and generic kernel feature.
      
        USB:
         - host: ehci-sead3: Remove SEAD-3 EHCI code
      
        FBDEV:
         - cobalt_lcdfb: Drop SEAD3 support
      
        dt-bindings:
         -  Document a binding for simple ASCII LCDs
      
        auxdisplay:
         - img-ascii-lcd: driver for simple ASCII LCD displays
      
        irqchip i8259:
         - i8259: Add domain before mapping parent irq
         - i8259: Allow platforms to override poll function
         - i8259: Remove unused i8259A_irq_pending
      
        Malta:
         - Rewrite to use DT
      
        of/platform:
         - Probe "isa" busses by default
      
        CM:
         - Print CM error reports upon bus errors
      
        Module:
         - Migrate exception table users off module.h and onto extable.h
         - Make various drivers explicitly non-modular:
         - Audit and remove any unnecessary uses of module.h
      
        mailmap:
         - Canonicalize to Qais' current email address.
      
        Documentation:
         - MIPS supports HAVE_REGS_AND_STACK_ACCESS_API
      
        Loongson1C:
         - Add CPU support for Loongson1C
         - Add board support
         - Add defconfig
         - Add RTC support for Loongson1C board
      
        All this except one Documentation fix has sat in linux-next and has
        survived Imagination's automated build test system"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (127 commits)
        Documentation: MIPS supports HAVE_REGS_AND_STACK_ACCESS_API
        MIPS: ptrace: Fix regs_return_value for kernel context
        MIPS: VDSO: Drop duplicated -I*/-E* aflags
        MIPS: Fix -mabi=64 build of vdso.lds
        MIPS: Enable hardened usercopy
        MIPS: generic: Convert SEAD-3 to a generic board
        MIPS: generic: Introduce generic DT-based board support
        MIPS: Support generating Flattened Image Trees (.itb)
        MIPS: Adjust MIPS64 CAC_BASE to reflect Config.K0
        MIPS: Print CM error reports upon bus errors
        MIPS: Support per-device DMA coherence
        MIPS: dma-default: Don't check hw_coherentio if device is non-coherent
        MIPS: Sanitise coherentio semantics
        MIPS: PCI: Support generic drivers
        MIPS: PCI: Introduce CONFIG_PCI_DRIVERS_LEGACY
        MIPS: PCI: Split pci.c into pci.c & pci-legacy.c
        MIPS: PCI: Inline pcibios_assign_all_busses
        MIPS: PCI: Make pcibios_set_cache_line_size an initcall
        MIPS: PCI: Support for CONFIG_PCI_DOMAINS_GENERIC
        MIPS: PCI: Use struct list_head lists
        ...
      133d970e
    • L
      Merge tag 'sound-fix-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 050aaeab
      Linus Torvalds 提交于
      Pull sound fixes from Takashi Iwai:
       "Just a few trivial small fixes"
      
      * tag 'sound-fix-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: line6: fix a crash in line6_hwdep_write()
        ALSA: seq: fix passing wrong pointer in function call of compatibility layer
        ALSA: hda - Fix a failure of micmute led when having multi adcs
        ALSA: line6: Fix POD X3 Live audio input
      050aaeab
  5. 15 10月, 2016 27 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · b26b5ef5
      Linus Torvalds 提交于
      Pull more misc uaccess and vfs updates from Al Viro:
       "The rest of the stuff from -next (more uaccess work) + assorted fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        score: traps: Add missing include file to fix build error
        fs/super.c: don't fool lockdep in freeze_super() and thaw_super() paths
        fs/super.c: fix race between freeze_super() and thaw_super()
        overlayfs: Fix setting IOP_XATTR flag
        iov_iter: kernel-doc import_iovec() and rw_copy_check_uvector()
        blackfin: no access_ok() for __copy_{to,from}_user()
        arm64: don't zero in __copy_from_user{,_inatomic}
        arm: don't zero in __copy_from_user_inatomic()/__copy_from_user()
        arc: don't leak bits of kernel stack into coredump
        alpha: get rid of tail-zeroing in __copy_user()
      b26b5ef5
    • L
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · 87dbe42a
      Linus Torvalds 提交于
      Pull cifs fixes from Steve French:
       "Including:
      
         - nine bug fixes for stable. Some of these we found at the recent two
           weeks of SMB3 test events/plugfests.
      
         - significant improvements in reconnection (e.g. if server or network
           crashes) especially when mounted with "persistenthandles" or to
           server which advertises Continuous Availability on the share.
      
         - a new mount option "idsfromsid" which improves POSIX compatibility
           in some cases (when winbind not configured e.g.) by better (and
           faster) fetching uid/gid from acl (when "cifsacl" mount option is
           enabled). NB: we are almost complete work on "cifsacl" (querying
           mode/uid/gid from ACL) for SMB3, but SMB3 support for cifsacl is
           not included in this set.
      
         - improved handling for SMB3 "credits" (even if server is buggy)
      
        Still working on two sets of changes:
      
         - cifsacl enablement for SMB3
      
         - cleanup of RFC1001 length calculation (so we can handle encryption
           and multichannel and RDMA)
      
        And a couple of new bugs were reported recently (unrelated to above)
        so will probably have another merge request next week"
      
      * 'for-next' of git://git.samba.org/sfrench/cifs-2.6: (21 commits)
        CIFS: Retrieve uid and gid from special sid if enabled
        CIFS: Add new mount option to set owner uid and gid from special sids in acl
        CIFS: Reset read oplock to NONE if we have mandatory locks after reopen
        CIFS: Fix persistent handles re-opening on reconnect
        SMB2: Separate RawNTLMSSP authentication from SMB2_sess_setup
        SMB2: Separate Kerberos authentication from SMB2_sess_setup
        Expose cifs module parameters in sysfs
        Cleanup missing frees on some ioctls
        Enable previous version support
        Do not send SMB3 SET_INFO request if nothing is changing
        SMB3: Add mount parameter to allow user to override max credits
        fs/cifs: reopen persistent handles on reconnect
        Clarify locking of cifs file and tcon structures and make more granular
        Fix regression which breaks DFS mounting
        fs/cifs: keep guid when assigning fid to fileinfo
        SMB3: GUIDs should be constructed as random but valid uuids
        Set previous session id correctly on SMB3 reconnect
        cifs: Limit the overall credit acquired
        Display number of credits available
        Add way to query creation time of file via cifs xattr
        ...
      87dbe42a
    • L
      Merge branch 'for-linus-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · d3304cad
      Linus Torvalds 提交于
      Pull btrfs fixes from Chris Mason:
       "Some fixes from Omar and Dave Sterba for our new free space tree.
      
        This isn't heavily used yet, but as we move toward making it the new
        default we wanted to nail down an endian bug"
      
      * 'for-linus-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        btrfs: tests: uninline member definitions in free_space_extent
        btrfs: tests: constify free space extent specs
        Btrfs: expand free space tree sanity tests to catch endianness bug
        Btrfs: fix extent buffer bitmap tests on big-endian systems
        Btrfs: catch invalid free space trees
        Btrfs: fix mount -o clear_cache,space_cache=v2
        Btrfs: fix free space tree bitmaps on big-endian systems
      d3304cad
    • A
      Merge branch 'work.uaccess' into for-linus · 2692a71b
      Al Viro 提交于
      2692a71b
    • G
      score: traps: Add missing include file to fix build error · 7041c577
      Guenter Roeck 提交于
      score images fail to build as follows.
      
      arch/score/kernel/traps.c: In function 'show_stack':
      arch/score/kernel/traps.c:55:3: error:
      	implicit declaration of function '__get_user'
      
      __get_user() is declared in asm/uaccess.h, which was previously included
      through asm/module.h.
      
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Fixes: 88dd4a74 ("score: separate extable.h, switch module.h to it")
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      7041c577
    • O
      fs/super.c: don't fool lockdep in freeze_super() and thaw_super() paths · f1a96220
      Oleg Nesterov 提交于
      sb_wait_write()->percpu_rwsem_release() fools lockdep to avoid the
      false-positives. Now that xfs was fixed by Dave's commit dbad7c99
      ("xfs: stop holding ILOCK over filldir callbacks") we can remove it and
      change freeze_super() and thaw_super() to run with s_writers.rw_sem locks
      held; we add two trivial helpers for that, lockdep_sb_freeze_release()
      and lockdep_sb_freeze_acquire().
      
      xfstests-dev/check `grep -il freeze tests/*/???` does not trigger any
      warning from lockdep.
      Signed-off-by: NOleg Nesterov <oleg@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      f1a96220
    • L
      Merge branch 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs · 1a892b48
      Linus Torvalds 提交于
      Pull overlayfs updates from Miklos Szeredi:
       "This update contains fixes to the "use mounter's permission to access
        underlying layers" area, and miscellaneous other fixes and cleanups.
      
        No new features this time"
      
      * 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
        ovl: use vfs_get_link()
        vfs: add vfs_get_link() helper
        ovl: use generic_readlink
        ovl: explain error values when removing acl from workdir
        ovl: Fix info leak in ovl_lookup_temp()
        ovl: during copy up, switch to mounter's creds early
        ovl: lookup: do getxattr with mounter's permission
        ovl: copy_up_xattr(): use strnlen
      1a892b48
    • O
      fs/super.c: fix race between freeze_super() and thaw_super() · 89f39af1
      Oleg Nesterov 提交于
      Change thaw_super() to check frozen != SB_FREEZE_COMPLETE rather than
      frozen == SB_UNFROZEN, otherwise it can race with freeze_super() which
      drops sb->s_umount after SB_FREEZE_WRITE to preserve the lock ordering.
      
      In this case thaw_super() will wrongly call s_op->unfreeze_fs() before
      it was actually frozen, and call sb_freeze_unlock() which leads to the
      unbalanced percpu_up_write(). Unfortunately lockdep can't detect this,
      so this triggers misc BUG_ON()'s in kernel/rcu/sync.c.
      Reported-and-tested-by: NNikolay Borisov <kernel@kyup.com>
      Signed-off-by: NOleg Nesterov <oleg@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      89f39af1
    • V
      overlayfs: Fix setting IOP_XATTR flag · 655042cc
      Vivek Goyal 提交于
      ovl_fill_super calls ovl_new_inode to create a root inode for the new
      superblock before initializing sb->s_xattr.  This wrongly causes
      IOP_XATTR to be cleared in i_opflags of the new inode, causing SELinux
      to log the following message:
      
        SELinux: (dev overlay, type overlay) has no xattr support
      
      Fix this by initializing sb->s_xattr and similar fields before calling
      ovl_new_inode.
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      655042cc
    • V
      iov_iter: kernel-doc import_iovec() and rw_copy_check_uvector() · ffecee4f
      Vegard Nossum 提交于
      Both import_iovec() and rw_copy_check_uvector() take an array
      (typically small and on-stack) which is used to hold an iovec array copy
      from userspace. This is to avoid an expensive memory allocation in the
      fast path (i.e. few iovec elements).
      
      The caller may have to check whether these functions actually used
      the provided buffer or allocated a new one -- but this differs between
      the too. Let's just add a kernel doc to clarify what the semantics are
      for each function.
      Signed-off-by: NVegard Nossum <vegard.nossum@oracle.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      ffecee4f
    • L
      Merge tag 'linux-kselftest-4.9-rc1-update' of... · 5d89d9f5
      Linus Torvalds 提交于
      Merge tag 'linux-kselftest-4.9-rc1-update' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest updates from Shuah Khan:
       "This update consists of:
      
         - Fixes and improvements to existing tests
      
         - Moving code from Documentation to selftests, samples, and tools:
      
           * Moves dnotify_test, prctl, ptp, vDSO, ia64, watchdog, and
             networking tests from Documentation to selftests.
      
           * Moves mic/mpssd, misc-devices/mei, timers, watchdog, auxdisplay,
             and blackfin examples from Documentation to samples.
      
           * Moves accounting, laptops/dslm, and pcmcia/crc32hash tools from
             Documentation to tools.
      
           * Deletes BUILD_DOCSRC and its dependencies"
      
      * tag 'linux-kselftest-4.9-rc1-update' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (21 commits)
        selftests/futex: Check ANSI terminal color support
        Doc: update 00-INDEX files to reflect the runnable code move
        samples: move blackfin gptimers-example from Documentation
        tools: move pcmcia crc32hash tool from Documentation
        tools: move laptops dslm tool from Documentation
        tools: move accounting tool from Documentation
        samples: move auxdisplay example code from Documentation
        samples: move watchdog example code from Documentation
        samples: move timers example code from Documentation
        samples: move misc-devices/mei example code from Documentation
        samples: move mic/mpssd example code from Documentation
        selftests: Move networking/timestamping from Documentation
        selftests: move watchdog tests from Documentation/watchdog
        selftests: move ia64 tests from Documentation/ia64
        selftests: move vDSO tests from Documentation/vDSO
        selftests: move ptp tests from Documentation/ptp
        selftests: move prctl tests from Documentation/prctl
        selftests: move dnotify_test from Documentation/filesystems
        selftests/timers: Add missing error code assignment before test
        selftests/zram: replace ZRAM_LZ4_COMPRESS
        ...
      5d89d9f5
    • L
      Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 50cff898
      Linus Torvalds 提交于
      Pull misc kbuild changes from Michal Marek:
       "Just a few patches on the kbuild.git#misc branch this time:
      
         - New Coccinelle patch by Nicholas Mc Guire
         - Existing patch fixes by Julia Lawall
         - Minor comment fix by Markus Elfring"
      
      * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        Coccinelle: flag conditions with no effect
        scripts/coccicheck: Update reference for the corresponding documentation
        Coccinelle: pm_runtime: ensure relevance of pm_runtime reports
        Coccinelle: limit memdup_user transformation to GFP_KERNEL case
      50cff898
    • L
      Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 84d69848
      Linus Torvalds 提交于
      Pull kbuild updates from Michal Marek:
      
       - EXPORT_SYMBOL for asm source by Al Viro.
      
         This does bring a regression, because genksyms no longer generates
         checksums for these symbols (CONFIG_MODVERSIONS). Nick Piggin is
         working on a patch to fix this.
      
         Plus, we are talking about functions like strcpy(), which rarely
         change prototypes.
      
       - Fixes for PPC fallout of the above by Stephen Rothwell and Nick
         Piggin
      
       - fixdep speedup by Alexey Dobriyan.
      
       - preparatory work by Nick Piggin to allow architectures to build with
         -ffunction-sections, -fdata-sections and --gc-sections
      
       - CONFIG_THIN_ARCHIVES support by Stephen Rothwell
      
       - fix for filenames with colons in the initramfs source by me.
      
      * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (22 commits)
        initramfs: Escape colons in depfile
        ppc: there is no clear_pages to export
        powerpc/64: whitelist unresolved modversions CRCs
        kbuild: -ffunction-sections fix for archs with conflicting sections
        kbuild: add arch specific post-link Makefile
        kbuild: allow archs to select link dead code/data elimination
        kbuild: allow architectures to use thin archives instead of ld -r
        kbuild: Regenerate genksyms lexer
        kbuild: genksyms fix for typeof handling
        fixdep: faster CONFIG_ search
        ia64: move exports to definitions
        sparc32: debride memcpy.S a bit
        [sparc] unify 32bit and 64bit string.h
        sparc: move exports to definitions
        ppc: move exports to definitions
        arm: move exports to definitions
        s390: move exports to definitions
        m68k: move exports to definitions
        alpha: move exports to actual definitions
        x86: move exports to actual definitions
        ...
      84d69848
    • L
      Merge tag 'docs-4.9-2' of git://git.lwn.net/linux · d4d24d2d
      Linus Torvalds 提交于
      Pull one more documentation update from Jonathan Corbet:
       "A single commit converting the mac80211 DocBook template over to
        Sphinx.  Only 32 more to go..."
      
      * tag 'docs-4.9-2' of git://git.lwn.net/linux:
        docs-rst: sphinxify 802.11 documentation
      d4d24d2d
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma · ac9ef8cd
      Linus Torvalds 提交于
      Pull rdma qedr RoCE driver from Doug Ledford:
       "Early on in the merge window I mentioned I had a backlog of new
        drivers waiting to be reviewed and that, in addition to the hns-roce
        driver, I wanted to get possible a couple more reviewed. I ended up
        only having the time to complete one of the additional drivers.
      
        During Dave Miller's pull request this go around, there were a series
        of 9 patches to the QLogic qed net driver that add basic support for a
        paired RoCE driver. That support is currently not functional because
        it is missing the matching RoCE driver in the RDMA subsystem. I
        managed to finish that review. However, because it goes against part
        of Dave's net pull, and a part that was accepted a day or two after
        the merge window opened, to apply cleanly it has to be applied to
        either the tip of Dave's net branch, or as I did in this case, I just
        applied it to your master after you had taken Dave's pull request."
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
        qedr: Add events support and register IB device
        qedr: Add GSI support
        qedr: Add LL2 RoCE interface
        qedr: Add support for data path
        qedr: Add support for memory registeration verbs
        qedr: Add support for QP verbs
        qedr: Add support for PD,PKEY and CQ verbs
        qedr: Add support for user context verbs
        qedr: Add support for RoCE HW init
        qedr: Add RoCE driver framework
      ac9ef8cd
    • L
      Merge tag 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma · b292fb80
      Linus Torvalds 提交于
      Pull more rdma updates from Doug Ledford:
       "This merge window was the first where Huawei had to try and coordinate
        their patches between their net driver and their new roce driver
        (similar to mlx4 and mlx5).
      
        They didn't do horribly, but there were some issues (and we knew that
        because they simply didn't know what to do in the beginning). As a
        result, I had a set of patches that depended on some patches that
        normally would have come to you via Dave's tree. Those patches have
        been on netdev@ for a while, so I got Dave to give me his approval to
        send them to you. As such, the other 29 patches I had behind them are
        also now ready to go.
      
        This catches the hns and hns-roce drivers up to current, and for
        future patches we are working with them to get them up to speed on how
        to do joint driver development so that they don't have these sorts of
        cross tree dependency issues again. BTW, Dave gave me permission to
        add his Acked-by: to the patches against the net tree, but I've had
        this branch through 0day (but not linux-next since it was off by
        itself) and I didn't want to rebase the series just to add Dave's ack
        for the 8 patches in the net area.
      
        Updates to the hns drivers:
      
         - Small patch set for hns net driver that the roce patches depend on
      
         - Various fixes to the hns-roce driver
      
         - Add connection manager support to the hns-roce driver"
      
      * tag 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (36 commits)
        IB/hns: Fix for removal of redundant code
        IB/hns: Delete the redundant lines in hns_roce_v1_m_qp()
        IB/hns: Fix the bug when platform_get_resource() exec fail
        IB/hns: Update the rq head when modify qp state
        IB/hns: Cq has not been freed
        IB/hns: Validate mtu when modified qp
        IB/hns: Some items of qpc need to take user param
        IB/hns: The Ack timeout need a lower limit value
        IB/hns: Return bad wr while post send failed
        IB/hns: Fix bug of memory leakage for registering user mr
        IB/hns: Modify the init of iboe lock
        IB/hns: Optimize code of aeq and ceq interrupt handle and fix the bug of qpn
        IB/hns: Delete the sqp_start from the structure hns_roce_caps
        IB/hns: Fix bug of clear hem
        IB/hns: Remove unused parameter named qp_type
        IB/hns: Simplify function of pd alloc and qp alloc
        IB/hns: Fix bug of using uninit refcount and free
        IB/hns: Remove parameters of resize cq
        IB/hns: Remove unused parameters in some functions
        IB/hns: Add node_guid definition to the bindings document
        ...
      b292fb80
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 689f891c
      Linus Torvalds 提交于
      Pull some more input subsystem updates from Dmitry Torokhov:
       "An update to the ALPS driver to support the V8 protocol with
        touchstick, a change for i8042 to skip selftest on many Asus laptops
        which helps to keep their touchpads working after resume, and a couple
        other driver fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: i8042 - skip selftest on ASUS laptops
        Input: melfas_mip4 - add ic_name sysfs attribute
        Input: melfas_mip4 - add maintainer information
        Input: melfas_mip4 - add devicetree binding documentations
        Input: elantech - add Fujitsu Lifebook E556 to force crc_enabled
        Input: synaptics-rmi4 - fix error handling in I2C transport driver
        Input: synaptics-rmi4 - fix error handling in SPI transport driver
        Input: ALPS - add V8 protocol documentation
        Input: ALPS - set DualPoint flag for 74 03 28 devices
        Input: ALPS - allow touchsticks to report pressure
        Input: ALPS - handle 0-pressure 1F events
        Input: ALPS - add touchstick support for SS5 hardware
        Input: elantech - force needed quirks on Fujitsu H760
        Input: elantech - fix Lenovo version typo
      689f891c
    • L
      Merge tag 'rtc-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · 8b70f716
      Linus Torvalds 提交于
      Pull RTC updates from Alexandre Belloni:
       "RTC for 4.9
      
        Subsystem:
         - delete owner assignment in multiple drivers
         - constify rtc_class_ops structures
      
        Drivers:
         - ac100: support clock-output-names
         - cmos: properly handle ACPI alarms and quirky BIOSes and other fixes
         - ds1307: fix century bit support while staying comaptible with
           previous behaviour by default
         - ds1347: switch to regmap
         - isl12057 is now handled by ds1307
         - omap: support external wakeup
         - rv8803: allow to disable voltage drop detection"
      
      * tag 'rtc-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (25 commits)
        rtc: rv8803: set VDETOFF and SWOFF via device tree
        dt/bindings: Add bindings for Micro Crystal rv8803
        devicetree: Add Micro Crystal AG vendor id
        rtc: cmos: avoid unused function warning
        rtc: ac100: Add NULL checking for devm_kzalloc call
        rtc: ds1347: changed raw spi calls to register map calls
        rtc: cmos: Restore alarm after resume
        rtc: cmos: Clear ACPI-driven alarms upon resume
        rtc: omap: Support ext_wakeup configuration
        rtc: cmos: Initialize hpet timer before irq is registered
        rtc: asm9260: rework locking
        rtc: asm9260: allow COMPILE_TEST
        rtc: constify rtc_class_ops structures
        rtc: ac100: support clock-output-names in device tree binding
        rtc: rx6110: remove owner assignment
        rtc: pic32: Delete owner assignment
        rtc: bq32k: Fix handling of oscillator failure flag
        rtc: bq32k: Use correct mask name for 'minutes' register.
        rtc: sysfs: fix a cast removing the const attribute
        Documentation: dt: Intersil isl12057 is not a trivial device
        ...
      8b70f716
    • L
      Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · e5050143
      Linus Torvalds 提交于
      Pull more i2c updates from Wolfram Sang:
       "A small update pull request from I2C.
      
        This adds one comment to a change we did in this merge window to
        handle lockdep better, and pulls in a branch which should have been in
        4.8 already improving DT support for I2C"
      
      * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        gpio: pca953x: add a comment explaining the need for a lockdep subclass
        i2c: core: Add support for 'i2c-bus' subnode
        dt-bindings: i2c: Add support for 'i2c-bus' subnode
      e5050143
    • L
      Merge tag 'acpi-extra-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · b41d037a
      Linus Torvalds 提交于
      Pull more ACPI updates from Rafael Wysocki:
       "This includes a couple of fixes needed after recent changes, two ACPI
        driver fixes (fan and "Processor Aggregator"), an update of the ACPI
        device properties handling code and a new MAINTAINERS entry for ACPI
        on ARM64.
      
        Specifics:
      
         - Fix an unused function warning that started to appear after recent
           changes in the ACPI EC driver (Eric Biggers).
      
         - Fix the KERN_CONT usage in acpi_os_vprintf() that has become
           (particularly) annoying recently (Joe Perches).
      
         - Fix the fan status checking in the ACPI fan driver to avoid
           returning incorrect error codes sometimes (Srinivas Pandruvada).
      
         - Fix the ACPI Processor Aggregator driver (PAD) to always let the
           special processor_aggregator driver from Xen take over when running
           as Xen dom0 (Juergen Gross).
      
         - Update the handling of reference device properties in ACPI by
           allowing empty rows ("holes") to appear in reference property lists
           (Mika Westerberg).
      
         - Add a new MAINTAINERS entry for ACPI on ARM64 (Lorenzo Pieralisi)"
      
      * tag 'acpi-extra-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        acpi_os_vprintf: Use printk_get_level() to avoid unnecessary KERN_CONT
        ACPI / PAD: don't register acpi_pad driver if running as Xen dom0
        ACPI / property: Allow holes in reference properties
        MAINTAINERS: Add ARM64-specific ACPI maintainers entry
        ACPI / EC: Fix unused function warning when CONFIG_PM_SLEEP=n
        ACPI / fan: Fix error reading cur_state
      b41d037a
    • L
      Merge tag 'pm-extra-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · ef98988b
      Linus Torvalds 提交于
      Pull more power management updates from Rafael Wysocki:
       "This includes a couple of fixes for cpufreq regressions introduced in
        4.8, a rework of the intel_pstate algorithm used on Atom processors
        (that took some time to test) plus a fix and a couple of cleanups in
        that driver, a CPPC cpufreq driver fix, and a some devfreq fixes and
        cleanups (core and exynos-nocp).
      
        Specifics:
      
         - Fix two cpufreq regressions causing undesirable changes in behavior
           to appear (one in the core and one in the conservative governor)
           introduced during the 4.8 cycle (Aaro Koskinen, Rafael Wysocki).
      
         - Fix the way the intel_pstate driver accesses MSRs related to the
           hardware-managed P-states (HWP) feature during the initialization
           which currently is unsafe and may cause the processor to generate a
           general protection fault (Srinivas Pandruvada).
      
         - Rework the intel_pstate's P-state selection algorithm used on Atom
           processors to avoid known problems with the current one and to make
           the computation more straightforward, which also happens to improve
           performance in multiple benchmarks a bit (Rafael Wysocki).
      
         - Improve two comments in the intel_pstate driver (Rafael Wysocki).
      
         - Fix the desired performance computation in the CPPC cpufreq driver
           (Hoan Tran).
      
         - Fix the devfreq core to avoid printing misleading error messages in
           some cases (Tobias Jakobi).
      
         - Fix the error code path in devfreq_add_device() to use proper
           locking around list modifications (Axel Lin).
      
         - Fix a build failure and remove a couple of redundant updates of
           variables in the exynos-nocp devfreq driver (Axel Lin)"
      
      * tag 'pm-extra-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq: CPPC: Correct desired_perf calculation
        cpufreq: conservative: Fix next frequency selection
        cpufreq: skip invalid entries when searching the frequency
        cpufreq: intel_pstate: Fix struct pstate_adjust_policy kerneldoc
        cpufreq: intel_pstate: Proportional algorithm for Atom
        PM / devfreq: Skip status update on uninitialized previous_freq
        PM / devfreq: Add proper locking around list_del()
        PM / devfreq: exynos-nocp: Remove redundant code
        PM / devfreq: exynos-nocp: Select REGMAP_MMIO
        cpufreq: intel_pstate: Clarify comment in get_target_pstate_use_performance()
        cpufreq: intel_pstate: Fix unsafe HWP MSR access
      ef98988b
    • S
      CIFS: Retrieve uid and gid from special sid if enabled · 3514de3f
      Steve French 提交于
      New mount option "idsfromsid" indicates to cifs.ko that
      it should try to retrieve the uid and gid owner fields
      from special sids.  This patch adds the code to parse the owner
      sids in the ACL to see if they match, and if so populate the
      uid and/or gid from them.  This is faster than upcalling for
      them and asking winbind, and is a fairly common case, and is
      also helpful when cifs.upcall and idmapping is not configured.
      Signed-off-by: NSteve French <steve.french@primarydata.com>
      Reviewed-by: NShirish Pargaonkar <shirishpargaonkar@gmail.com>
      Reviewed-by: NJeff Layton <jlayton@redhat.com>
      Reviewed-by: NPavel Shilovsky <pshilov@microsoft.com>
      3514de3f
    • S
      CIFS: Add new mount option to set owner uid and gid from special sids in acl · 95932655
      Steve French 提交于
      Add "idsfromsid" mount option to indicate to cifs.ko that it should
      try to retrieve the uid and gid owner fields from special sids in the
      ACL if present.  This first patch just adds the parsing for the mount
      option.
      Signed-off-by: NSteve French <steve.french@primarydata.com>
      Reviewed-by: NShirish Pargaonkar <shirishpargaonkar@gmail.com>
      Reviewed-by: NPavel Shilovsky <pshilov@microsoft.com>
      95932655
    • L
      Merge branch 'for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · f34d3606
      Linus Torvalds 提交于
      Pull cgroup updates from Tejun Heo:
      
       - tracepoints for basic cgroup management operations added
      
       - kernfs and cgroup path formatting functions updated to behave in the
         style of strlcpy()
      
       - non-critical bug fixes
      
      * 'for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        blkcg: Unlock blkcg_pol_mutex only once when cpd == NULL
        cgroup: fix error handling regressions in proc_cgroup_show() and cgroup_release_agent()
        cpuset: fix error handling regression in proc_cpuset_show()
        cgroup: add tracepoints for basic operations
        cgroup: make cgroup_path() and friends behave in the style of strlcpy()
        kernfs: remove kernfs_path_len()
        kernfs: make kernfs_path*() behave in the style of strlcpy()
        kernfs: add dummy implementation of kernfs_path_from_node()
      f34d3606
    • R
      qedr: Add events support and register IB device · 993d1b52
      Ram Amrani 提交于
      Add error handling support.
      Register ib device with ib stack.
      Signed-off-by: NRajesh Borundia <rajesh.borundia@cavium.com>
      Signed-off-by: NRam Amrani <Ram.Amrani@cavium.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      993d1b52
    • R
      qedr: Add GSI support · 04886779
      Ram Amrani 提交于
      Add support for GSI over light L2.
      Signed-off-by: NRajesh Borundia <rajesh.borundia@cavium.com>
      Signed-off-by: NRam Amrani <Ram.Amrani@cavium.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      04886779
    • R
      qedr: Add LL2 RoCE interface · 1d1424c8
      Ram Amrani 提交于
      Add light L2 interface for RoCE.
      Signed-off-by: NRajesh Borundia <rajesh.borundia@cavium.com>
      Signed-off-by: NRam Amrani <Ram.Amrani@cavium.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      1d1424c8