lkml.org 
[lkml]   [2022]   [May]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.17 061/140] iommu/vt-d: Drop stop marker messages
    Date
    From: Lu Baolu <baolu.lu@linux.intel.com>

    commit da8669ff41fa31573375c9a4180f5c080677204b upstream.

    The page fault handling framework in the IOMMU core explicitly states
    that it doesn't handle PCI PASID Stop Marker and the IOMMU drivers must
    discard them before reporting faults. This handles Stop Marker messages
    in prq_event_thread() before reporting events to the core.

    The VT-d driver explicitly drains the pending page requests when a CPU
    page table (represented by a mm struct) is unbound from a PASID according
    to the procedures defined in the VT-d spec. The Stop Marker messages do
    not need a response. Hence, it is safe to drop the Stop Marker messages
    silently if any of them is found in the page request queue.

    Fixes: d5b9e4bfe0d88 ("iommu/vt-d: Report prq to io-pgfault framework")
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Reviewed-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
    Reviewed-by: Kevin Tian <kevin.tian@intel.com>
    Link: https://lore.kernel.org/r/20220421113558.3504874-1-baolu.lu@linux.intel.com
    Link: https://lore.kernel.org/r/20220423082330.3897867-2-baolu.lu@linux.intel.com
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/iommu/intel/svm.c | 4 ++++
    1 file changed, 4 insertions(+)

    --- a/drivers/iommu/intel/svm.c
    +++ b/drivers/iommu/intel/svm.c
    @@ -956,6 +956,10 @@ bad_req:
    goto bad_req;
    }

    + /* Drop Stop Marker message. No need for a response. */
    + if (unlikely(req->lpig && !req->rd_req && !req->wr_req))
    + goto prq_advance;
    +
    if (!svm || svm->pasid != req->pasid) {
    /*
    * It can't go away, because the driver is not permitted

    \
     
     \ /
      Last update: 2022-05-10 16:20    [W:4.115 / U:0.400 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site