1. 03 1月, 2019 40 次提交
    • L
      Merge tag 'mailbox-v4.21' of git://git.linaro.org/landing-teams/working/fujitsu/integration · 35ddb06a
      Linus Torvalds 提交于
      Pull mailbox updates from Jassi Brar:
      
       - Introduce device-managed registration
         devm_mbox_controller_un/register and convert drivers to use it
      
       - Introduce flush api to support clients that must busy-wait in atomic
         context
      
       - Support multiple controllers per device
      
       - Hi3660: a bugfix and constify ops structure
      
       - TI-MsgMgr: off by one bugfix.
      
       - BCM: switch to spdx license
      
       - Tegra-HSP: support for shared mailboxes and suspend/resume.
      
      * tag 'mailbox-v4.21' of git://git.linaro.org/landing-teams/working/fujitsu/integration: (30 commits)
        mailbox: tegra-hsp: Use device-managed registration API
        mailbox: tegra-hsp: use devm_kstrdup_const()
        mailbox: tegra-hsp: Add suspend/resume support
        mailbox: tegra-hsp: Add support for shared mailboxes
        dt-bindings: tegra186-hsp: Add shared mailboxes
        mailbox: Allow multiple controllers per device
        mailbox: Support blocking transfers in atomic context
        mailbox: ti-msgmgr: Use device-managed registration API
        mailbox: stm32-ipcc: Use device-managed registration API
        mailbox: rockchip: Use device-managed registration API
        mailbox: qcom-apcs: Use device-managed registration API
        mailbox: platform-mhu: Use device-managed registration API
        mailbox: omap: Use device-managed registration API
        mailbox: mtk-cmdq: Remove needless devm_kfree() calls
        mailbox: mtk-cmdq: Use device-managed registration API
        mailbox: xgene-slimpro: Use device-managed registration API
        mailbox: sti: Use device-managed registration API
        mailbox: altera: Use device-managed registration API
        mailbox: imx: Use device-managed registration API
        mailbox: hi6220: Use device-managed registration API
        ...
      35ddb06a
    • L
      Merge branch 'for-linus-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · 6aa293d8
      Linus Torvalds 提交于
      Pull UML updates from Richard Weinberger:
      
       - DISCARD support for our block device driver
      
       - Many TLB flush optimizations
      
       - Various smaller fixes
      
       - And most important, Anton agreed to help me maintaining UML
      
      * 'for-linus-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
        um: Remove obsolete reenable_XX calls
        um: writev needs <sys/uio.h>
        Add Anton Ivanov to UML maintainers
        um: remove redundant generic-y
        um: Optimize Flush TLB for force/fork case
        um: Avoid marking pages with "changed protection"
        um: Skip TLB flushing where not needed
        um: Optimize TLB operations v2
        um: Remove unnecessary faulted check in uaccess.c
        um: Add support for DISCARD in the UBD Driver
        um: Remove unsafe printks from the io thread
        um: Clean-up command processing in UML UBD driver
        um: Switch to block-mq constants in the UML UBD driver
        um: Make GCOV depend on !KCOV
        um: Include sys/uio.h to have writev()
        um: Add HAVE_DEBUG_BUGVERBOSE
        um: Update maintainers file entry
      6aa293d8
    • L
      Merge tag 's390-4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 04a17ede
      Linus Torvalds 提交于
      Pull s390 updates from Martin Schwidefsky:
      
       - A larger update for the zcrypt / AP bus code:
          + Update two inline assemblies in the zcrypt driver to make gcc happy
          + Add a missing reply code for invalid special commands for zcrypt
          + Allow AP device reset to be triggered from user space
          + Split the AP scan function into smaller, more readable functions
      
       - Updates for vfio-ccw and vfio-ap
          + Add maintainers and reviewer for vfio-ccw
          + Include facility.h in vfio_ap_drv.c to avoid fragile include chain
          + Simplicy vfio-ccw state machine
      
       - Use the common code version of bust_spinlocks
      
       - Make use of the DEFINE_SHOW_ATTRIBUTE
      
       - Fix three incorrect file permissions in the DASD driver
      
       - Remove bit spin-lock from the PCI interrupt handler
      
       - Fix GFP_ATOMIC vs GFP_KERNEL in the PCI code
      
      * tag 's390-4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/zcrypt: rework ap scan bus code
        s390/zcrypt: make sysfs reset attribute trigger queue reset
        s390/pci: fix sleeping in atomic during hotplug
        s390/pci: remove bit_lock usage in interrupt handler
        s390/drivers: fix proc/debugfs file permissions
        s390: convert to DEFINE_SHOW_ATTRIBUTE
        MAINTAINERS/vfio-ccw: add Farhan and Eric, make Halil Reviewer
        vfio: ccw: Merge BUSY and BOXED states
        s390: use common bust_spinlocks()
        s390/zcrypt: improve special ap message cmd handling
        s390/ap: rework assembler functions to use unions for in/out register variables
        s390: vfio-ap: include <asm/facility> for test_facility()
      04a17ede
    • L
      Merge tag 'nfs-for-4.21-1' of git://git.linux-nfs.org/projects/anna/linux-nfs · e6b92572
      Linus Torvalds 提交于
      Pull NFS client updates from Anna Schumaker:
       "Stable bugfixes:
         - xprtrdma: Yet another double DMA-unmap # v4.20
      
        Features:
         - Allow some /proc/sys/sunrpc entries without CONFIG_SUNRPC_DEBUG
         - Per-xprt rdma receive workqueues
         - Drop support for FMR memory registration
         - Make port= mount option optional for RDMA mounts
      
        Other bugfixes and cleanups:
         - Remove unused nfs4_xdev_fs_type declaration
         - Fix comments for behavior that has changed
         - Remove generic RPC credentials by switching to 'struct cred'
         - Fix crossing mountpoints with different auth flavors
         - Various xprtrdma fixes from testing and auditing the close code
         - Fixes for disconnect issues when using xprtrdma with krb5
         - Clean up and improve xprtrdma trace points
         - Fix NFS v4.2 async copy reboot recovery"
      
      * tag 'nfs-for-4.21-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (63 commits)
        sunrpc: convert to DEFINE_SHOW_ATTRIBUTE
        sunrpc: Add xprt after nfs4_test_session_trunk()
        sunrpc: convert unnecessary GFP_ATOMIC to GFP_NOFS
        sunrpc: handle ENOMEM in rpcb_getport_async
        NFS: remove unnecessary test for IS_ERR(cred)
        xprtrdma: Prevent leak of rpcrdma_rep objects
        NFSv4.2 fix async copy reboot recovery
        xprtrdma: Don't leak freed MRs
        xprtrdma: Add documenting comment for rpcrdma_buffer_destroy
        xprtrdma: Replace outdated comment for rpcrdma_ep_post
        xprtrdma: Update comments in frwr_op_send
        SUNRPC: Fix some kernel doc complaints
        SUNRPC: Simplify defining common RPC trace events
        NFS: Fix NFSv4 symbolic trace point output
        xprtrdma: Trace mapping, alloc, and dereg failures
        xprtrdma: Add trace points for calls to transport switch methods
        xprtrdma: Relocate the xprtrdma_mr_map trace points
        xprtrdma: Clean up of xprtrdma chunk trace points
        xprtrdma: Remove unused fields from rpcrdma_ia
        xprtrdma: Cull dprintk() call sites
        ...
      e6b92572
    • L
      Merge tag 'nfsd-4.21' of git://linux-nfs.org/~bfields/linux · e45428a4
      Linus Torvalds 提交于
      Pull nfsd updates from Bruce Fields:
       "Thanks to Vasily Averin for fixing a use-after-free in the
        containerized NFSv4.2 client, and cleaning up some convoluted
        backchannel server code in the process.
      
        Otherwise, miscellaneous smaller bugfixes and cleanup"
      
      * tag 'nfsd-4.21' of git://linux-nfs.org/~bfields/linux: (25 commits)
        nfs: fixed broken compilation in nfs_callback_up_net()
        nfs: minor typo in nfs4_callback_up_net()
        sunrpc: fix debug message in svc_create_xprt()
        sunrpc: make visible processing error in bc_svc_process()
        sunrpc: remove unused xpo_prep_reply_hdr callback
        sunrpc: remove svc_rdma_bc_class
        sunrpc: remove svc_tcp_bc_class
        sunrpc: remove unused bc_up operation from rpc_xprt_ops
        sunrpc: replace svc_serv->sv_bc_xprt by boolean flag
        sunrpc: use-after-free in svc_process_common()
        sunrpc: use SVC_NET() in svcauth_gss_* functions
        nfsd: drop useless LIST_HEAD
        lockd: Show pid of lockd for remote locks
        NFSD remove OP_CACHEME from 4.2 op_flags
        nfsd: Return EPERM, not EACCES, in some SETATTR cases
        sunrpc: fix cache_head leak due to queued request
        nfsd: clean up indentation, increase indentation in switch statement
        svcrdma: Optimize the logic that selects the R_key to invalidate
        nfsd: fix a warning in __cld_pipe_upcall()
        nfsd4: fix crash on writing v4_end_grace before nfsd startup
        ...
      e45428a4
    • L
      Merge tag '9p-for-4.21' of git://github.com/martinetd/linux · 85f78456
      Linus Torvalds 提交于
      Pull 9p updates from Dominique Martinet:
       "Missing prototype warning fix and a syzkaller fix when a 9p server
        advertises a too small msize"
      
      * tag '9p-for-4.21' of git://github.com/martinetd/linux:
        9p/net: put a lower bound on msize
        net/9p: include trans_common.h to fix missing prototype warning.
      85f78456
    • L
      Merge tag '4.21-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 · cacf02df
      Linus Torvalds 提交于
      Pull cifs updates from Steve French:
      
       - four fixes for stable
      
       - improvements to DFS including allowing failover to alternate targets
      
       - some small performance improvements
      
      * tag '4.21-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6: (39 commits)
        cifs: update internal module version number
        cifs: we can not use small padding iovs together with encryption
        cifs: Minor Kconfig clarification
        cifs: Always resolve hostname before reconnecting
        cifs: Add support for failover in cifs_reconnect_tcon()
        cifs: Add support for failover in smb2_reconnect()
        cifs: Only free DFS target list if we actually got one
        cifs: start DFS cache refresher in cifs_mount()
        cifs: Use GFP_ATOMIC when a lock is held in cifs_mount()
        cifs: Add support for failover in cifs_reconnect()
        cifs: Add support for failover in cifs_mount()
        cifs: remove set but not used variable 'sep'
        cifs: Make use of DFS cache to get new DFS referrals
        cifs: minor updates to documentation
        cifs: check kzalloc return
        cifs: remove set but not used variable 'server'
        cifs: Use kzfree() to free password
        cifs: Fix to use kmem_cache_free() instead of kfree()
        cifs: update for current_kernel_time64() removal
        cifs: Add DFS cache routines
        ...
      cacf02df
    • L
      Merge branch 'next-tpm' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 74673fc5
      Linus Torvalds 提交于
      Pull TPM updates from James Morris:
      
       - Support for partial reads of /dev/tpm0.
      
       - Clean up for TPM 1.x code: move the commands to tpm1-cmd.c and make
         everything to use the same data structure for building TPM commands
         i.e. struct tpm_buf.
      
      * 'next-tpm' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (25 commits)
        tpm: add support for partial reads
        tpm: tpm_ibmvtpm: fix kdoc warnings
        tpm: fix kdoc for tpm2_flush_context_cmd()
        tpm: tpm_try_transmit() refactor error flow.
        tpm: use u32 instead of int for PCR index
        tpm1: reimplement tpm1_continue_selftest() using tpm_buf
        tpm1: reimplement SAVESTATE using tpm_buf
        tpm1: rename tpm1_pcr_read_dev to tpm1_pcr_read()
        tpm1: implement tpm1_pcr_read_dev() using tpm_buf structure
        tpm: tpm1: rewrite tpm1_get_random() using tpm_buf structure
        tpm: tpm-space.c remove unneeded semicolon
        tpm: tpm-interface.c drop unused macros
        tpm: add tpm_auto_startup() into tpm-interface.c
        tpm: factor out tpm_startup function
        tpm: factor out tpm 1.x pm suspend flow into tpm1-cmd.c
        tpm: move tpm 1.x selftest code from tpm-interface.c tpm1-cmd.c
        tpm: factor out tpm1_get_random into tpm1-cmd.c
        tpm: move tpm_getcap to tpm1-cmd.c
        tpm: move tpm1_pcr_extend to tpm1-cmd.c
        tpm: factor out tpm_get_timeouts()
        ...
      74673fc5
    • L
      Merge branch 'next-smack' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 19f2e267
      Linus Torvalds 提交于
      Pull smack updates from James Morris:
       "Two Smack patches for 4.21.
      
        Jose's patch adds missing documentation and Zoran's fleshes out the
        access checks on keyrings"
      
      * 'next-smack' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        Smack: Improve Documentation
        smack: fix access permissions for keyring
      19f2e267
    • L
      block: don't use un-ordered __set_current_state(TASK_UNINTERRUPTIBLE) · 1ac5cd49
      Linus Torvalds 提交于
      This mostly reverts commit 849a3700 ("block: avoid ordered task
      state change for polled IO").  It was wrongly claiming that the ordering
      wasn't necessary.  The memory barrier _is_ necessary.
      
      If something is truly polling and not going to sleep, it's the whole
      state setting that is unnecessary, not the memory barrier.  Whenever you
      set your state to a sleeping state, you absolutely need the memory
      barrier.
      
      Note that sometimes the memory barrier can be elsewhere.  For example,
      the ordering might be provided by an external lock, or by setting the
      process state to sleeping before adding yourself to the wait queue list
      that is used for waking up (where the wait queue lock itself will
      guarantee that any wakeup will correctly see the sleeping state).
      
      But none of those cases were true here.
      
      NOTE! Some of the polling paths may indeed be able to drop the state
      setting entirely, at which point the memory barrier also goes away.
      
      (Also note that this doesn't revert the TASK_RUNNING cases: there is no
      race between a wakeup and setting the process state to TASK_RUNNING,
      since the end result doesn't depend on ordering).
      
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1ac5cd49
    • L
      Merge branch 'next-seccomp' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · d9a7fa67
      Linus Torvalds 提交于
      Pull seccomp updates from James Morris:
      
       - Add SECCOMP_RET_USER_NOTIF
      
       - seccomp fixes for sparse warnings and s390 build (Tycho)
      
      * 'next-seccomp' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        seccomp, s390: fix build for syscall type change
        seccomp: fix poor type promotion
        samples: add an example of seccomp user trap
        seccomp: add a return code to trap to userspace
        seccomp: switch system call argument type to void *
        seccomp: hoist struct seccomp_data recalculation higher
      d9a7fa67
    • L
      Merge branch 'next-integrity' of... · f218a29c
      Linus Torvalds 提交于
      Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
      
      Pull integrity updates from James Morris:
       "In Linux 4.19, a new LSM hook named security_kernel_load_data was
        upstreamed, allowing LSMs and IMA to prevent the kexec_load syscall.
        Different signature verification methods exist for verifying the
        kexec'ed kernel image. This adds additional support in IMA to prevent
        loading unsigned kernel images via the kexec_load syscall,
        independently of the IMA policy rules, based on the runtime "secure
        boot" flag. An initial IMA kselftest is included.
      
        In addition, this pull request defines a new, separate keyring named
        ".platform" for storing the preboot/firmware keys needed for verifying
        the kexec'ed kernel image's signature and includes the associated IMA
        kexec usage of the ".platform" keyring.
      
        (David Howell's and Josh Boyer's patches for reading the
        preboot/firmware keys, which were previously posted for a different
        use case scenario, are included here)"
      
      * 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        integrity: Remove references to module keyring
        ima: Use inode_is_open_for_write
        ima: Support platform keyring for kernel appraisal
        efi: Allow the "db" UEFI variable to be suppressed
        efi: Import certificates from UEFI Secure Boot
        efi: Add an EFI signature blob parser
        efi: Add EFI signature data types
        integrity: Load certs to the platform keyring
        integrity: Define a trusted platform keyring
        selftests/ima: kexec_load syscall test
        ima: don't measure/appraise files on efivarfs
        x86/ima: retry detecting secure boot mode
        docs: Extend trusted keys documentation for TPM 2.0
        x86/ima: define arch_get_ima_policy() for x86
        ima: add support for arch specific policies
        ima: refactor ima_init_policy()
        ima: prevent kexec_load syscall based on runtime secureboot flag
        x86/ima: define arch_ima_get_secureboot
        integrity: support new struct public_key_signature encoding field
      f218a29c
    • Y
      sunrpc: convert to DEFINE_SHOW_ATTRIBUTE · 260f71ef
      Yangtao Li 提交于
      Use DEFINE_SHOW_ATTRIBUTE macro to simplify the code.
      Signed-off-by: NYangtao Li <tiny.windzz@gmail.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      260f71ef
    • S
      sunrpc: Add xprt after nfs4_test_session_trunk() · 10e037d1
      Santosh kumar pradhan 提交于
      Multipathing: In case of NFSv3, rpc_clnt_test_and_add_xprt() adds
      the xprt to xprt switch (i.e. xps) if rpc_call_null_helper() returns
      success. But in case of NFSv4.1, it needs to do EXCHANGEID to verify
      the path along with check for session trunking.
      
      Add the xprt in nfs4_test_session_trunk() only when
      nfs4_detect_session_trunking() returns success. Also release refcount
      hold by rpc_clnt_setup_test_and_add_xprt().
      Signed-off-by: NSantosh kumar pradhan <santoshkumar.pradhan@wdc.com>
      Tested-by: NSuresh Jayaraman <suresh.jayaraman@wdc.com>
      Reported-by: NAditya Agnihotri <aditya.agnihotri@wdc.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      10e037d1
    • J
      sunrpc: convert unnecessary GFP_ATOMIC to GFP_NOFS · cb24e35b
      J. Bruce Fields 提交于
      It's OK to sleep here, we just don't want to recurse into the filesystem
      as a writeout could be waiting on this.
      
      Future work: the documentation for GFP_NOFS says "Please try to avoid
      using this flag directly and instead use memalloc_nofs_{save,restore} to
      mark the whole scope which cannot/shouldn't recurse into the FS layer
      with a short explanation why. All allocation requests will inherit
      GFP_NOFS implicitly."
      
      But I'm not sure where to do this.  Should the workqueue be arranging
      that for us in the case of workqueues created with WQ_MEM_RECLAIM?
      Reported-by: NTrond Myklebust <trondmy@hammer.space>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      cb24e35b
    • J
      sunrpc: handle ENOMEM in rpcb_getport_async · 81c88b18
      J. Bruce Fields 提交于
      If we ignore the error we'll hit a null dereference a little later.
      
      Reported-by: syzbot+4b98281f2401ab849f4b@syzkaller.appspotmail.com
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      81c88b18
    • N
      NFS: remove unnecessary test for IS_ERR(cred) · c2c7d84f
      NeilBrown 提交于
      As gte_current_cred() cannot return an error,
      this test is not necessary.
      It hasn't been necessary for years, but it wasn't so obvious
      before.
      Reported-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NNeilBrown <neilb@suse.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      c2c7d84f
    • C
      xprtrdma: Prevent leak of rpcrdma_rep objects · 07e10308
      Chuck Lever 提交于
      If a reply has been processed but the RPC is later retransmitted
      anyway, the req->rl_reply field still contains the only pointer to
      the old rpcrdma rep. When the next reply comes in, the reply handler
      will stomp on the rl_reply field, leaking the old rep.
      
      A trace event is added to capture such leaks.
      
      This problem seems to be worsened by the restructuring of the RPC
      Call path in v4.20. Fully addressing this issue will require at
      least a re-architecture of the disconnect logic, which is not
      appropriate during -rc.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      07e10308
    • O
      NFSv4.2 fix async copy reboot recovery · 9aeaf8cf
      Olga Kornievskaia 提交于
      Original commit (e4648aa4 "NFS recover from destination server
      reboot for copies") used memcmp() and then it was changed to use
      nfs4_stateid_match_other() but that function returns opposite of
      memcmp. As the result, recovery can't find the copy leading
      to copy hanging.
      
      Fixes: 80f42368 ("NFSv4: Split out NFS v4.2 copy completion functions")
      Fixes: cb7a8384 ("NFS: Split out the body of nfs4_reclaim_open_state")
      Signed-of-by: NOlga Kornievskaia <kolga@netapp.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      9aeaf8cf
    • C
      xprtrdma: Don't leak freed MRs · f85adb1b
      Chuck Lever 提交于
      Defensive clean up. Don't set frwr->fr_mr until we know that the
      scatterlist allocation has succeeded.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      f85adb1b
    • C
      xprtrdma: Add documenting comment for rpcrdma_buffer_destroy · af65ed40
      Chuck Lever 提交于
      Make a note of the function's dependency on an earlier ib_drain_qp.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      af65ed40
    • C
      xprtrdma: Replace outdated comment for rpcrdma_ep_post · 995d312a
      Chuck Lever 提交于
      Since commit 7c8d9e7c ("xprtrdma: Move Receive posting to
      Receive handler"), rpcrdma_ep_post is no longer responsible for
      posting Receive buffers. Update the documenting comment to reflect
      this change.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      995d312a
    • C
      xprtrdma: Update comments in frwr_op_send · e0f86bc4
      Chuck Lever 提交于
      Commit f2877623 ("xprtrdma: Chain Send to FastReg WRs") was
      written before commit ce5b3717 ("xprtrdma: Replace all usage of
      "frmr" with "frwr""), but was merged afterwards. Thus it still
      refers to FRMR and MWs.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      e0f86bc4
    • C
      SUNRPC: Fix some kernel doc complaints · acf0a39f
      Chuck Lever 提交于
      Clean up some warnings observed when building with "make W=1".
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      acf0a39f
    • C
      SUNRPC: Simplify defining common RPC trace events · dc5820bd
      Chuck Lever 提交于
      Clean up, no functional change is expected.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      dc5820bd
    • C
      NFS: Fix NFSv4 symbolic trace point output · 5b2095d0
      Chuck Lever 提交于
      These symbolic values were not being displayed in string form.
      TRACE_DEFINE_ENUM was missing in many cases. It also turns out that
      __print_symbolic wants an unsigned long in the first field...
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      5b2095d0
    • C
      xprtrdma: Trace mapping, alloc, and dereg failures · 53b2c1cb
      Chuck Lever 提交于
      These are rare, but can be helpful at tracking down DMAR and other
      problems.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      53b2c1cb
    • C
      xprtrdma: Add trace points for calls to transport switch methods · 395069fc
      Chuck Lever 提交于
      Name them "trace_xprtrdma_op_*" so they can be easily enabled as a
      group. No trace point is added where the generic layer already has
      observability.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      395069fc
    • C
      xprtrdma: Relocate the xprtrdma_mr_map trace points · ba217ec6
      Chuck Lever 提交于
      The mr_map trace points were capturing information about the previous
      use of the MR rather than about the segment that was just mapped.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      ba217ec6
    • C
      xprtrdma: Clean up of xprtrdma chunk trace points · aba11831
      Chuck Lever 提交于
      The chunk-related trace points capture nearly the same information
      as the MR-related trace points.
      
      Also, rename them so globbing can be used to enable or disable
      these trace points more easily.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      aba11831
    • C
      xprtrdma: Remove unused fields from rpcrdma_ia · 9bef848f
      Chuck Lever 提交于
      Clean up. The last use of these fields was in commit 173b8f49
      ("xprtrdma: Demote "connect" log messages") .
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      9bef848f
    • C
      xprtrdma: Cull dprintk() call sites · ddbb347f
      Chuck Lever 提交于
      Clean up: Remove dprintk() call sites that report rare or impossible
      errors. Leave a few that display high-value low noise status
      information.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      ddbb347f
    • C
      xprtrdma: Simplify locking that protects the rl_allreqs list · 92f4433e
      Chuck Lever 提交于
      Clean up: There's little chance of contention between the use of
      rb_lock and rb_reqslock, so merge the two. This avoids having to
      take both in some (possibly future) cases.
      
      Transport tear-down is already serialized, thus there is no need for
      locking at all when destroying rpcrdma_reqs.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      92f4433e
    • C
      xprtrdma: Expose transport header errors · 236b0943
      Chuck Lever 提交于
      For better observability of parsing errors, return the error code
      generated in the decoders to the upper layer consumer.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      236b0943
    • C
      xprtrdma: Remove request_module from backchannel · 889ee07f
      Chuck Lever 提交于
      Since commit ffe1f0df ("rpcrdma: Merge svcrdma and xprtrdma
      modules into one"), the forward and backchannel components are part
      of the same kernel module. A separate request_module() call in the
      backchannel code is no longer necessary.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      889ee07f
    • C
      xprtrdma: Recognize XDRBUF_SPARSE_PAGES · 15303d9e
      Chuck Lever 提交于
      Commit 431f6eb3 ("SUNRPC: Add a label for RPC calls that require
      allocation on receive") didn't update similar logic in rpc_rdma.c.
      I don't think this is a bug, per-se; the commit just adds more
      careful checking for broken upper layer behavior.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      15303d9e
    • C
      NFS: Make "port=" mount option optional for RDMA mounts · 0dfbb5f0
      Chuck Lever 提交于
      Having to specify "proto=rdma,port=20049" is cumbersome.
      
      RFC 8267 Section 6.3 requires NFSv4 clients to use "the alternative
      well-known port number", which is 20049. Make the use of the well-
      known port number automatic, just as it is for NFS/TCP and port
      2049.
      
      For NFSv2/3, Section 4.2 allows clients to simply choose 20049 as
      the default or use rpcbind. I don't know of an NFS/RDMA server
      implementation that registers it's NFS/RDMA service with rpcbind,
      so automatically choosing 20049 seems like the better choice. The
      other widely-deployed NFS/RDMA client, Solaris, also uses 20049
      as the default port.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      0dfbb5f0
    • C
      xprtrdma: Plant XID in on-the-wire RDMA offset (FRWR) · 0a93fbcb
      Chuck Lever 提交于
      Place the associated RPC transaction's XID in the upper 32 bits of
      each RDMA segment's rdma_offset field. There are two reasons to do
      this:
      
      - The R_key only has 8 bits that are different from registration to
        registration. The XID adds more uniqueness to each RDMA segment to
        reduce the likelihood of a software bug on the server reading from
        or writing into memory it's not supposed to.
      
      - On-the-wire RDMA Read and Write requests do not otherwise carry
        any identifier that matches them up to an RPC. The XID in the
        upper 32 bits will act as an eye-catcher in network captures.
      Suggested-by: NTom Talpey <ttalpey@microsoft.com>
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      0a93fbcb
    • C
      xprtrdma: Remove rpcrdma_memreg_ops · 5f62412b
      Chuck Lever 提交于
      Clean up: Now that there is only FRWR, there is no need for a memory
      registration switch. The indirect calls to the memreg operations can
      be replaced with faster direct calls.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      5f62412b
    • C
      xprtrdma: Remove support for FMR memory registration · ba69cd12
      Chuck Lever 提交于
      FMR is not supported on most recent RDMA devices. It is also less
      secure than FRWR because an FMR memory registration can expose
      adjacent bytes to remote reading or writing. As discussed during the
      RDMA BoF at LPC 2018, it is time to remove support for FMR in the
      NFS/RDMA client stack.
      
      Note that NFS/RDMA server-side uses either local memory registration
      or FRWR. FMR is not used.
      
      There are a few Infiniband/RoCE devices in the kernel tree that do
      not appear to support MEM_MGT_EXTENSIONS (FRWR), and therefore will
      not support client-side NFS/RDMA after this patch. These are:
      
       - mthca
       - qib
       - hns (RoCE)
      
      Users of these devices can use NFS/TCP on IPoIB instead.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NAnna Schumaker <Anna.Schumaker@Netapp.com>
      ba69cd12