lkml.org 
[lkml]   [2019]   [Nov]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 028/422] iommu/vt-d: Fix QI_DEV_IOTLB_PFSID and QI_DEV_EIOTLB_PFSID macros
    Date
    From: Eric Auger <eric.auger@redhat.com>

    commit 4e7120d79edb31e4ee68e6f8421448e4603be1e9 upstream.

    For both PASID-based-Device-TLB Invalidate Descriptor and
    Device-TLB Invalidate Descriptor, the Physical Function Source-ID
    value is split according to this layout:

    PFSID[3:0] is set at offset 12 and PFSID[15:4] is put at offset 52.
    Fix the part laid out at offset 52.

    Fixes: 0f725561e1684 ("iommu/vt-d: Add definitions for PFSID")
    Signed-off-by: Eric Auger <eric.auger@redhat.com>
    Acked-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
    Cc: stable@vger.kernel.org # v4.19+
    Acked-by: Lu Baolu <baolu.lu@linux.intel.com>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    include/linux/intel-iommu.h | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    --- a/include/linux/intel-iommu.h
    +++ b/include/linux/intel-iommu.h
    @@ -286,7 +286,8 @@ enum {
    #define QI_DEV_IOTLB_SID(sid) ((u64)((sid) & 0xffff) << 32)
    #define QI_DEV_IOTLB_QDEP(qdep) (((qdep) & 0x1f) << 16)
    #define QI_DEV_IOTLB_ADDR(addr) ((u64)(addr) & VTD_PAGE_MASK)
    -#define QI_DEV_IOTLB_PFSID(pfsid) (((u64)(pfsid & 0xf) << 12) | ((u64)(pfsid & 0xfff) << 52))
    +#define QI_DEV_IOTLB_PFSID(pfsid) (((u64)(pfsid & 0xf) << 12) | \
    + ((u64)((pfsid >> 4) & 0xfff) << 52))
    #define QI_DEV_IOTLB_SIZE 1
    #define QI_DEV_IOTLB_MAX_INVS 32

    @@ -311,7 +312,8 @@ enum {
    #define QI_DEV_EIOTLB_PASID(p) (((u64)p) << 32)
    #define QI_DEV_EIOTLB_SID(sid) ((u64)((sid) & 0xffff) << 16)
    #define QI_DEV_EIOTLB_QDEP(qd) ((u64)((qd) & 0x1f) << 4)
    -#define QI_DEV_EIOTLB_PFSID(pfsid) (((u64)(pfsid & 0xf) << 12) | ((u64)(pfsid & 0xfff) << 52))
    +#define QI_DEV_EIOTLB_PFSID(pfsid) (((u64)(pfsid & 0xf) << 12) | \
    + ((u64)((pfsid >> 4) & 0xfff) << 52))
    #define QI_DEV_EIOTLB_MAX_INVS 32

    #define QI_PGRP_IDX(idx) (((u64)(idx)) << 55)

    \
     
     \ /
      Last update: 2019-11-19 06:24    [W:4.682 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site