From: Baoquan He <bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
vincent.wan-5C7GfCeVMHo@public.gmane.org,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Subject: [Patch v4 9/9] iommu/amd: Check the validation of irq table and domain id
Date: Wed, 25 May 2016 14:28:55 +0800 [thread overview]
Message-ID: <1464157735-8865-10-git-send-email-bhe@redhat.com> (raw)
In-Reply-To: <1464157735-8865-1-git-send-email-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
From: Baoquan HE <bhe-sa4SJRhfYT7yzlqKoElxGh/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
If not valid just skip reserving the old domain id.
Signed-off-by: Baoquan He <bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
drivers/iommu/amd_iommu.c | 4 ----
drivers/iommu/amd_iommu_init.c | 5 +++--
drivers/iommu/amd_iommu_types.h | 5 +++++
3 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
index f3bd7fd..40c4a05 100644
--- a/drivers/iommu/amd_iommu.c
+++ b/drivers/iommu/amd_iommu.c
@@ -3697,10 +3697,6 @@ struct amd_ir_data {
static struct irq_chip amd_ir_chip;
-#define DTE_IRQ_PHYS_ADDR_MASK (((1ULL << 45)-1) << 6)
-#define DTE_IRQ_REMAP_INTCTL (2ULL << 60)
-#define DTE_IRQ_TABLE_LEN (8ULL << 1)
-#define DTE_IRQ_REMAP_ENABLE 1ULL
static void set_dte_irq_entry(u16 devid, struct irq_remap_table *table)
{
diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
index 47e5972..263704a 100644
--- a/drivers/iommu/amd_iommu_init.c
+++ b/drivers/iommu/amd_iommu_init.c
@@ -670,7 +670,7 @@ static int copy_dev_tables(void)
u32 lo, hi, devid;
phys_addr_t old_devtb_phys;
struct dev_table_entry *old_devtb;
- u16 dom_id, dte_v;
+ u16 dom_id, dte_v, irq_v;
struct amd_iommu *iommu;
static int copied;
@@ -692,7 +692,8 @@ static int copy_dev_tables(void)
amd_iommu_dev_table[devid] = old_devtb[devid];
dom_id = amd_iommu_dev_table[devid].data[1] & DEV_DOMID_MASK;
dte_v = amd_iommu_dev_table[devid].data[0] & DTE_FLAG_V;
- if (!dte_v)
+ irq_v = amd_iommu_dev_table[devid].data[2] & DTE_IRQ_REMAP_ENABLE;
+ if (!dte_v || !irq_v || !dom_id)
continue;
__set_bit(dom_id, amd_iommu_pd_alloc_bitmap);
}
diff --git a/drivers/iommu/amd_iommu_types.h b/drivers/iommu/amd_iommu_types.h
index 34acd73..08340f5 100644
--- a/drivers/iommu/amd_iommu_types.h
+++ b/drivers/iommu/amd_iommu_types.h
@@ -224,6 +224,11 @@
#define PPR_REQ_FAULT 0x01
+#define DTE_IRQ_PHYS_ADDR_MASK (((1ULL << 45)-1) << 6)
+#define DTE_IRQ_REMAP_INTCTL (2ULL << 60)
+#define DTE_IRQ_TABLE_LEN (8ULL << 1)
+#define DTE_IRQ_REMAP_ENABLE 1ULL
+
#define PAGE_MODE_NONE 0x00
#define PAGE_MODE_1_LEVEL 0x01
#define PAGE_MODE_2_LEVEL 0x02
--
2.5.5
next prev parent reply other threads:[~2016-05-25 6:28 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-25 6:28 [Patch v4 0/9] *** Fix kdump failure in system with amd iommu*** Baoquan He
[not found] ` <1464157735-8865-1-git-send-email-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-05-25 6:28 ` [Patch v4 1/9] iommu/amd: clean up the cmpxchg64 invocation Baoquan He
2016-05-25 6:28 ` [Patch v4 2/9] iommu/amd: Use standard bitmap operation to set bitmap Baoquan He
2016-05-25 6:28 ` [Patch v4 3/9] iommu/amd: Detect pre enabled translation Baoquan He
[not found] ` <1464157735-8865-4-git-send-email-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-05-28 12:49 ` Wan Zongshun
2016-05-30 3:24 ` Baoquan He
2016-05-30 3:27 ` Baoquan He
2016-05-25 6:28 ` [Patch v4 4/9] iommu/amd: add early_enable_iommu() helper function Baoquan He
2016-05-25 6:28 ` [Patch v4 5/9] iommu/amd: Define bit fields for DTE particularly Baoquan He
2016-05-25 6:28 ` [Patch v4 6/9] iommu/amd: Add function copy_dev_tables Baoquan He
2016-05-28 13:08 ` Wan Zongshun
2016-05-30 3:32 ` Baoquan He
2016-05-25 6:28 ` [Patch v4 7/9] iommu/amd: copy old trans table from old kernel Baoquan He
[not found] ` <1464157735-8865-8-git-send-email-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-05-28 13:25 ` Wan Zongshun
2016-05-25 6:28 ` [Patch v4 8/9] iommu/amd: Do not initialize dev tables again in kdump Baoquan He
2016-05-25 6:28 ` Baoquan He [this message]
[not found] ` <1464157735-8865-10-git-send-email-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-05-28 13:30 ` [Patch v4 9/9] iommu/amd: Check the validation of irq table and domain id Wan Zongshun
2016-05-30 5:10 ` Baoquan He
2016-05-25 7:02 ` [Patch v4 0/9] *** Fix kdump failure in system with amd iommu*** Baoquan He
[not found] ` <20160525070203.GA3198-ejN7fcUYdH/by3iVrkZq2A@public.gmane.org>
2016-05-25 7:15 ` Baoquan He
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1464157735-8865-10-git-send-email-bhe@redhat.com \
--to=bhe-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=vincent.wan-5C7GfCeVMHo@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).