diff mbox

[3/6] iommu/amd: Introduce amd_iommu_get_num_iommus()

Message ID 1450811957-1511-4-git-send-email-Suravee.Suthikulpanit@amd.com
State New
Headers show

Commit Message

Suthikulpanit, Suravee Dec. 22, 2015, 7:19 p.m. UTC
This patch introduces amd_iommu_get_num_iommus(). Initially, this is
intended to be used by Perf AMD IOMMU driver.

Signed-off-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>

---
 drivers/iommu/amd_iommu_init.c            | 16 ++++++++++++++++
 include/linux/perf/perf_event_amd_iommu.h |  2 ++
 2 files changed, 18 insertions(+)

-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Comments

Suthikulpanit, Suravee Dec. 29, 2015, 9:20 p.m. UTC | #1
Hi Jorge,

On 12/28/15 09:43, Joerg Roedel wrote:
> On Tue, Dec 22, 2015 at 01:19:14PM -0600, Suthikulpanit, Suravee wrote:

>> This patch introduces amd_iommu_get_num_iommus(). Initially, this is

>> intended to be used by Perf AMD IOMMU driver.

>>

>> Signed-off-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>

>> ---

>>   drivers/iommu/amd_iommu_init.c            | 16 ++++++++++++++++

>>   include/linux/perf/perf_event_amd_iommu.h |  2 ++

>>   2 files changed, 18 insertions(+)

>>

>> diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c

>> index 275c0f5..9c62613 100644

>> --- a/drivers/iommu/amd_iommu_init.c

>> +++ b/drivers/iommu/amd_iommu_init.c

>> @@ -2244,6 +2244,22 @@ bool amd_iommu_v2_supported(void)

>>   }

>>   EXPORT_SYMBOL(amd_iommu_v2_supported);

>>

>> +static int amd_iommu_cnt;

>> +

>> +int amd_iommu_get_num_iommus(void)

>> +{

>> +	struct amd_iommu *iommu;

>> +

>> +	if (amd_iommu_cnt)

>> +		return amd_iommu_cnt;

>> +

>> +	for_each_iommu(iommu)

>> +		amd_iommu_cnt++;

>

> It is better to set amd_iommu_cnt during IOMMU initialization. You can

> just increment this value after an IOMMU has been set up.

>

>

>

> 	Joerg

>


Sure. I'll take care of this in V2.

Thanks,
Suravee
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
diff mbox

Patch

diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
index 275c0f5..9c62613 100644
--- a/drivers/iommu/amd_iommu_init.c
+++ b/drivers/iommu/amd_iommu_init.c
@@ -2244,6 +2244,22 @@  bool amd_iommu_v2_supported(void)
 }
 EXPORT_SYMBOL(amd_iommu_v2_supported);
 
+static int amd_iommu_cnt;
+
+int amd_iommu_get_num_iommus(void)
+{
+	struct amd_iommu *iommu;
+
+	if (amd_iommu_cnt)
+		return amd_iommu_cnt;
+
+	for_each_iommu(iommu)
+		amd_iommu_cnt++;
+
+	return amd_iommu_cnt;
+}
+EXPORT_SYMBOL(amd_iommu_get_num_iommus);
+
 /****************************************************************************
  *
  * IOMMU EFR Performance Counter support functionality. This code allows
diff --git a/include/linux/perf/perf_event_amd_iommu.h b/include/linux/perf/perf_event_amd_iommu.h
index 815eabb..cb820c2 100644
--- a/include/linux/perf/perf_event_amd_iommu.h
+++ b/include/linux/perf/perf_event_amd_iommu.h
@@ -25,6 +25,8 @@ 
 #define PC_MAX_SPEC_CNTRS			16
 
 /* amd_iommu_init.c external support functions */
+extern int amd_iommu_get_num_iommus(void);
+
 extern bool amd_iommu_pc_supported(void);
 
 extern u8 amd_iommu_pc_get_max_banks(void);