• Chuck Lever's avatar
    xprtrdma: Yet another double DMA-unmap · c7e10e59
    Chuck Lever authored
    commit e2f34e26 upstream.
    
    While chasing yet another set of DMAR fault reports, I noticed that
    the frwr recycler conflates whether or not an MR has been DMA
    unmapped with frwr->fr_state. Actually the two have only an indirect
    relationship. It's in fact impossible to guess reliably whether the
    MR has been DMA unmapped based on its fr_state field, especially as
    the surrounding code and its assumptions have changed over time.
    
    A better approach is to track the DMA mapping status explicitly so
    that the recycler is less brittle to unexpected situations, and
    attempts to DMA-unmap a second time are prevented.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Cc: stable@vger.kernel.org # v4.20
    Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    c7e10e59
Name
Last commit
Last update
Documentation Loading commit data...
LICENSES Loading commit data...
arch Loading commit data...
block Loading commit data...
certs Loading commit data...
crypto Loading commit data...
drivers Loading commit data...
firmware Loading commit data...
fs Loading commit data...
include Loading commit data...
init Loading commit data...
ipc Loading commit data...
kernel Loading commit data...
lib Loading commit data...
mm Loading commit data...
net Loading commit data...
samples Loading commit data...
scripts Loading commit data...
security Loading commit data...
sound Loading commit data...
tools Loading commit data...
usr Loading commit data...
virt Loading commit data...
.clang-format Loading commit data...
.cocciconfig Loading commit data...
.get_maintainer.ignore Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
Kbuild Loading commit data...
Kconfig Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README Loading commit data...