iommu/amd: Update logging information for new event type
authorGary R Hook <gary.hook@amd.com>
Tue, 1 May 2018 19:53:00 +0000 (14:53 -0500)
committerJoerg Roedel <jroedel@suse.de>
Thu, 3 May 2018 14:33:18 +0000 (16:33 +0200)
A new events have been defined in the AMD IOMMU spec:

0x09 - "invalid PPR request"

Add support for logging this type of event.

Signed-off-by: Gary R Hook <gary.hook@amd.com>
~
~
~
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/amd_iommu.c
drivers/iommu/amd_iommu_types.h

index aecc49a..5fef246 100644 (file)
@@ -545,7 +545,7 @@ static void amd_iommu_report_page_fault(u16 devid, u16 domain_id,
 static void iommu_print_event(struct amd_iommu *iommu, void *__evt)
 {
        struct device *dev = iommu->iommu.dev;
-       int type, devid, pasid, flags;
+       int type, devid, pasid, flags, tag;
        volatile u32 *event = __evt;
        int count = 0;
        u64 address;
@@ -610,6 +610,14 @@ retry:
                        PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid),
                        pasid, address, flags);
                break;
+       case EVENT_TYPE_INV_PPR_REQ:
+               pasid = ((event[0] >> 16) & 0xFFFF)
+                       | ((event[1] << 6) & 0xF0000);
+               tag = event[1] & 0x03FF;
+               dev_err(dev, "INVALID_PPR_REQUEST device=%02x:%02x.%x pasid=0x%05x address=0x%016llx flags=0x%04x]\n",
+                       PCI_BUS_NUM(devid), PCI_SLOT(devid), PCI_FUNC(devid),
+                       pasid, address, flags);
+               break;
        default:
                dev_err(dev, "UNKNOWN event[0]=0x%08x event[1]=0x%08x event[2]=0x%08x event[3]=0x%08x\n",
                        event[0], event[1], event[2], event[3]);
index 1c9b080..986cbe0 100644 (file)
 #define EVENT_TYPE_CMD_HARD_ERR        0x6
 #define EVENT_TYPE_IOTLB_INV_TO        0x7
 #define EVENT_TYPE_INV_DEV_REQ 0x8
+#define EVENT_TYPE_INV_PPR_REQ 0x9
 #define EVENT_DEVID_MASK       0xffff
 #define EVENT_DEVID_SHIFT      0
 #define EVENT_DOMID_MASK       0xffff