Merge tag 'blackfin-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/realm...
[linux.git] / drivers / iommu / amd_iommu.c
index faf0da4bb3a2f84bfd69c911d8de100028b25b7e..c949520bd196ec47cf6e572e68cdd67c11b9f84f 100644 (file)
@@ -963,7 +963,7 @@ static void build_inv_iommu_pasid(struct iommu_cmd *cmd, u16 domid, int pasid,
 
        address &= ~(0xfffULL);
 
-       cmd->data[0]  = pasid & PASID_MASK;
+       cmd->data[0]  = pasid;
        cmd->data[1]  = domid;
        cmd->data[2]  = lower_32_bits(address);
        cmd->data[3]  = upper_32_bits(address);
@@ -982,10 +982,10 @@ static void build_inv_iotlb_pasid(struct iommu_cmd *cmd, u16 devid, int pasid,
        address &= ~(0xfffULL);
 
        cmd->data[0]  = devid;
-       cmd->data[0] |= (pasid & 0xff) << 16;
+       cmd->data[0] |= ((pasid >> 8) & 0xff) << 16;
        cmd->data[0] |= (qdep  & 0xff) << 24;
        cmd->data[1]  = devid;
-       cmd->data[1] |= ((pasid >> 8) & 0xfff) << 16;
+       cmd->data[1] |= (pasid & 0xff) << 16;
        cmd->data[2]  = lower_32_bits(address);
        cmd->data[2] |= CMD_INV_IOMMU_PAGES_GN_MASK;
        cmd->data[3]  = upper_32_bits(address);
@@ -1001,7 +1001,7 @@ static void build_complete_ppr(struct iommu_cmd *cmd, u16 devid, int pasid,
 
        cmd->data[0]  = devid;
        if (gn) {
-               cmd->data[1]  = pasid & PASID_MASK;
+               cmd->data[1]  = pasid;
                cmd->data[2]  = CMD_INV_IOMMU_PAGES_GN_MASK;
        }
        cmd->data[3]  = tag & 0x1ff;