From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760834AbcLWPOC (ORCPT ); Fri, 23 Dec 2016 10:14:02 -0500 Received: from mail-dm3nam03on0088.outbound.protection.outlook.com ([104.47.41.88]:51106 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1758820AbcLWPN7 (ORCPT ); Fri, 23 Dec 2016 10:13:59 -0500 X-Greylist: delayed 3710 seconds by postgrey-1.27 at vger.kernel.org; Fri, 23 Dec 2016 10:13:59 EST Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; From: Suravee Suthikulpanit To: , CC: , , , , Suravee Suthikulpanit Subject: [PATCH V6 6/7] iommu/amd: Introduce amd_iommu_get_num_iommus() Date: Fri, 23 Dec 2016 20:38:49 +0700 Message-ID: <1482500330-5606-7-git-send-email-Suravee.Suthikulpanit@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1482500330-5606-1-git-send-email-Suravee.Suthikulpanit@amd.com> References: <1482500330-5606-1-git-send-email-Suravee.Suthikulpanit@amd.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BN6PR1301CA0025.namprd13.prod.outlook.com (10.174.84.166) To DM5PR12MB1449.namprd12.prod.outlook.com (10.172.38.138) X-MS-Office365-Filtering-Correlation-Id: 7631c37e-c160-4d68-7032-08d42b393009 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DM5PR12MB1449; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1449;3:Zdi5sqoYVBXZGW/s80OcrvbS/ICwzRTPcPuQ54mBoBPzoWhtWHEDjhZYv3fsluna9DYSmQoiBC4RaHNvjrJGCuodeXndV9VFCmpTd4c8CuKWjK/MGeWL7GwwcWOAHadxxf1BFhvlLNrzi1y6R5ls9EToHNeKgxhz9ciVZOKvLLGv6Gc8ZnAVX5uIbFh00QlD6Jq4+dBtR6jf3nNTSJAEy8CfIcuLWkBrkwmSTTOPufCBfJt5eBGmCrG3X0lrfNmVxRNQ/wxMTKhm6LHA+7MiFg== X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1449;25:X9yXlk2gANlxXlF80P4FH+oQC4YQ7juD5O4hpwNaj3IHfoF00CgAR0BgsBq7JfhDWH2fSukMZUFhcfPM44mN72wQwceKHdREfkZNRM2CQ9En7DZiWf9ybIdpdpthRnlXq7X2NkTtbEynV3S9v5cQFgvg1e36hdIIZxaffDXoih/Axjuzfi7VWNVlNZ1nv+Qkai1uAAOXIOvUHRzT8McjMUzxnZhaHEpBivEVBYpsQ4alfctG3x+Gwpybe+5Q0uEyTOWM1vKS7cGDzKIjsLuugKES+CQR/Y/902+EvRftz5Mn9Y+gtVAQWe5BI58iTo2Xzj1B+kvG4S5uZv5QXHOfWkVtDOuxuciBwXXLpatgBQ1k5PnwE+22CPyBgw94n8Ez77IDEIm7NVvUzdzudnxr4D1jNibszyN0BIXTfSNLjETKL1XVZXaTyk+/KmNGb+d2K975mT6HkAh7fiW7SncbE934Oh3ni1CcEWYoupuGVEhwjZLMOAnw8FZ5AhdQliMLPuCmVteJSbRpibCzUH2oAFeEhe/wtfTljXZaMUHw4CUHSZnBDy97lxYoJnxeKxYswH3m2h0uWW9wm6l2PYKW2o7ywGXd5eWqohQtYnxqe110XxdI11ZxkqBI45m+O/WsDq/sqQoRa5sZEVQR7fuX1JNpsBDG4jnrNWSv5kpMHesJT781D5gAb41YU8febT/12hnH/B0BLrrj5HjbMBwL4p9Lu6SxH1ddYKXiumTLhiVZf9gTIe4/+yrcld8+YiPpBrRXZoXoN6/vAJvb4efKrg== X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1449;31:l1MQXCukYqYivBT088wVrMQI7R3KaRzpU6C3xpMPDji7oZQJx81NG7f7rKLhoxjuAZg3oB/7yGusD+ODNIt4i2AoeIrDL2xDm4svAzcQinm4N5C7uuGxlAKhYuDpYAOFZsxoQPljj9MPQOoxxV5ILQkURLKjR/bVxqx6xeKWMQrZxTHyTmmCEGU4U/XiADtPgn8zz66b6N2YW+2fhL5zI39wEuQ+1v8us75rLAQju2YHS+MyNHs9r4G4/mwSC3Mh;20:IW2bX/NGf3bLVgc7q/CFfSuQjQBd78aAufrGpS/f+BRnaN6EqTk8qRej8W2hciHWv3CCiAoZdqr0KGXV5jGMmyu8pq1Ebj9S9mIBsctAJXssv/xybpvetpZbZ1mxNXKc4vPqP4n1wZvBOy6Uz0fNqpSc8/ZKueeVg3biwNsmFEDOYaJUJot2lYiv6oObJNGrWhqOwI+9kS8BtswCCCRzE7cbk9Zf+imqijbd/KksxUM9Q1wpe3kcKKtzHqW/Dw2AtbStlxCY1gPsYRREaUHT5ecMwcuUJsVH1HQkNx9cR/W01JjWpgl1z0Z5XeZrV2nuDc3iruclv/fBECttTtK/Z/WUBmITeiLyLWEoyqce37T/xgPS1Cmuo3coIgyFAb3itfvo/xunSJZYX/8JLxIHNdRzbRhvFJ2daJnXtJt3fr13mN2Nf+VwLZTTaPSWQD1ACN36uVzN5KydpqdZnm3G8mN0lmbBKvjnxVhFCDr2fAZpbXiy0+VEnt5vY9OKfmcV X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(20161123562025)(20161123555025)(20161123558021)(20161123560025)(6072148);SRVR:DM5PR12MB1449;BCL:0;PCL:0;RULEID:;SRVR:DM5PR12MB1449; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1449;4:j2XequdqVA97B5EfeL4oe+WuwtW9lYePwIJ7RpURN8P+1t0D1nSOI6sHZOA9qAyoyAe91ft1yQ/xqcRz6/6YVj113Ss5gR6s8kNfpSOYobCK9gI1Hw4ufjYiea/Yd/yOgjOgrxfy7/HHeZGo125pEO+lvAcgFaJh0Os8f6ijUi87v2mpkJVxlZ66M6Rgbbl817mREqEF/pmTTpvgKIfdf6zmQxWliHxNe6OY9EbRphAH2AnqdurN5vMv/jSrSXRGpibFoQ7eDP4EX8pqX5wQmZNerI1zTSBIJadvQ9R78ik2GrST9vct2kPJOx4qBa32oL/4982q2xTvDGoHXqATvtV0hwvBDAxViAytszmaDujYo5pgjz74evUyjUbDzEiv/5ZR1pDeg2MMq4F12kU4KDsfm3prMkVZSlrE2uuWHrx5Wv0+1qFoxooNZDxhurqmTHxnThR1vLBVOW7viEtpRkAFp2U9iJr6VP3fA1sg4YAob0XxaYrsLRjuzsUy3z9/kmjqQttYjKsnN3eXeeAHMBD0T4TcIC8IF20cu/zShhjIbvy1t+T5B39t0M3Ndk/8jN2NdNLjckmaNrtr4clAfMbJf3+uvA9utjXmTOw5w+OA5+F+V7NXcsTkKJke7Mk31fBDQJsjF3YNMyFj7zbjx6oTBQhVo1uBVGGRi4LyGMQ= X-Forefront-PRVS: 016572D96D X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(39840400002)(39410400002)(39850400002)(39860400002)(189002)(199003)(305945005)(86362001)(47776003)(7736002)(50226002)(81166006)(81156014)(5003940100001)(68736007)(8676002)(48376002)(106356001)(50466002)(3846002)(6116002)(4326007)(2906002)(50986999)(53416004)(92566002)(66066001)(42186005)(97736004)(105586002)(36756003)(5001770100001)(38730400001)(6666003)(76176999)(101416001)(5660300001)(189998001)(25786008)(2950100002)(6486002);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR12MB1449;H:ssuthiku-ubuntu-lt.amd.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM5PR12MB1449;23:ugy4su87BuSsgRo2ewLrvNq9CcvskesStRMrsMamz?= =?us-ascii?Q?HhUo7CSZ52g1OehIohbsWkJKEXxahDwcUD5lMTROOu78g4zVz45xP49RTOwU?= =?us-ascii?Q?05+/AzFJHNTdAUg04bHr9dIvafOLdTYbwMHDOBmwmU4TKWvbvrZm6ZiSHXDg?= =?us-ascii?Q?wy/UZB4kMqlgBWywQX6FXHvthT9PtfdBZ0NL7ez1hKim5udNUkklNrgpXtVx?= =?us-ascii?Q?EZeOMK/v0fitQQoOSiA4EMReusiYAuPDL44kPEpm9sXr5FD1qjD0fmCrQHri?= =?us-ascii?Q?9KDUUaUzhShiEPaNxdGScGd4EUpVrjw92R9caVkXLT9A5aVesgk7WIJPv+Co?= =?us-ascii?Q?DyNnAvAC9wG9LjHKm1efiojQVU4nXGCYAZC43krBiUKrJh3+FSVOHYuN1AUH?= =?us-ascii?Q?swjCf7DLQhKlc+okK+vGuOx1BZmILm2XvQZ6w5X5xpCjL7EZDDgEoxowPMJS?= =?us-ascii?Q?M63QmBNaD4r7lYEHX0/wJqN4b3AQzBpgoeJ40j37l0UzgsEXRnPfc5Kq/drm?= =?us-ascii?Q?FCTXvgFYz3joQGjxwhBleBZ6Zol3Ao37NtcE0t9UaONh5b6N4XtaQ1Xa95sf?= =?us-ascii?Q?FPq0Yf3p6dyyfGAa6+Q3yE4Lnmmu1XS/qt9mdRd8yVFTA1Pd7u3CFKRadHXf?= =?us-ascii?Q?b0pOKYRA1lZ7n7MY+UDMOW4eRSaVzWq+NMgW9UJuU9JnoQ3Xmp8Vc5k4ehqx?= =?us-ascii?Q?wlC7nLcwiLuiB7DKq6NFY9YrCiTSbZ/fVE9WssTExaq7ariC6qVoiV7n5K0N?= =?us-ascii?Q?/Ksd2zd/J4WjBYsjHR/8c8J2OCvdTYC157/sPJkIfdB6QQRUug2efVIPeTQJ?= =?us-ascii?Q?CA/Ir29qwvmgyMuc9Zf0KClBTGruZXJDsyDuAL7+v6SjXwGxUVeSkc8Muofs?= =?us-ascii?Q?nZXtzgdp8g/Chniq4StJpvHuXJ4ubSfTbv3PBGEQnjOt77IRgfwePqSlSq7A?= =?us-ascii?Q?QE+GsAIE4gl9Aii4tOiQdb58x1EWzYoqDaBYMg4lQvpjuJ8xfB1WOKjVxgI1?= =?us-ascii?Q?XxL33uQiSt/NCGGKDT10PeZdViKP4yk9JEPVOMKPmrXBmCR01q2MfUH3yI1o?= =?us-ascii?Q?gFckPTLR5fzHgtJAsOc/6dj09x8e3D9ZdlZfjH0HFG9F3NvTREIT6Y1mR9sM?= =?us-ascii?Q?XS8UCh8XCC5DzKZsjjTyDR3R+MjZDi7?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1449;6:3UvRE7lbAvtOwhaLviWEoQWgxkvgG+tUtH6VTXdj6Z1S3BsHU6eFh2Idj1sG1nc30oNK1LAIj43cvd2zhVA9V1Awd7kGGGZjO4PokJW55s+WMtFd5QtKLnxzTph6bfxrCXb79ezkC9AyfSmiUj1L73Bgv0vbecLkH1dKL+3/7gpsHJcmj97bjV7d6rCvEMMpC5KyUIc6YNqwmZHHR5EotAwbzJcsQP9UhvvSaRd/F+npATMAIxOxP9KuOEZPtS74sjX2FrrIh/ggHuf0gfx7C82NIP9rgTN9D0iFWW9nR15yQ/F9xn5KkDmyhGioqOHTtyrL3AEinlG21gz0g5ml9G83/BZHLLSQXzvp06MRpaTlanCc/uXvcyAjQRROlz5vXzlDC1EY2yRoqcWjbs9eQvESaYjYKk0aWAyUwRMcTNk0TjRat/xhCfqU3r3JR2mg4aDrPogcBiCerj9nN6RZiQ==;5:eYmhAGYkL7weRB5kBLEyoOY6EzO5HVRRbtYRxTNOgzZBnVqhHeNN0fkfSfvNDCqHNkPyAhbkjuH3Px/0y8KkZ2zC5ymEe5Irh1szG7h1s3tIhbu0oV++SK8TTdyrwROwsA7Ewo6PLg+1s0USh1pBZA==;24:REJxcPdHvAe646ETeH2JE6iS0Wfkoh7aYWS0jRstg8xceogDNnPE06YZluT4y/pUqWQu2kg0eiXeDJPvIsdchbBlQZ9Gi15U32oV3pLjCCE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1449;7:HbifNDGx1yfKyeziYAuuC6qkArYW+BGZC1d0gnp2JmFr42smiSqmNzHH2yUCt8f/r+DGVuq1Ed7Td86b1pcPzcl0HMQELf9UFq5Jshz2zmxC+TX9gGjaAFSTl6vqfToUsuk65sstzFB/ue5QzZiz4dcYzP/O3Wi2Ej/cPptbaeIo+qCP/khAgUsXZLV1/YoyfAwLBMZxGI87EPOsh0L1p3E88I6r/nL75auU5++gHVyNqWgXc1X6Gva5VTG15VgJ2o2+Akqn1Y/gmN5Hj7fURDSlgKp6N207kisExCsJ9r5DF9AXeUyq94izhajszumVQnrDFrtUB/AxWp1QOcZ2YxkyrMK3Yq0dTfoMi6GIe+UsKaeUhfgPFN9wcPwfL+xqP4gXr2WsMVScBPDQBd+IECDaEekJTBmONkXNE/ZmNjzQkXRczTbS2EGKUk63U7T0a65T0JYu5OqCdH5P58xJrA==;20:hMbXQBQ78PNVdnGDdVPPnk4yV5TkG0dVGw63y2fCg96JLHRJtiEkeJmgzZ9NBMk96jLe6gD5DqHO9NWVkVYywbvglEESL+k0s9jbJMVH4o6afgtM3d7sfxDdF0VdDRKYDzMSCE4sB/MAWvpA45lUuItJZSZnw5sZiQbTcFW4dvdFsUsDKLDcbeiiJepiAzCyNlewZq9y59Bu7FS0Oj7RncD7C9qqOj6kt5SXLdeOrhct1j9ztNNQ2OaM0DnoW1Cr X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Dec 2016 13:39:55.1223 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1449 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch introduces amd_iommu_get_num_iommus(). This is intended for Perf AMD IOMMU driver. Cc: Joerg Roedel Signed-off-by: Suravee Suthikulpanit --- arch/x86/events/amd/iommu.h | 2 ++ drivers/iommu/amd_iommu_init.c | 7 ++++++- drivers/iommu/amd_iommu_proto.h | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/x86/events/amd/iommu.h b/arch/x86/events/amd/iommu.h index 71ec9d7..891c7c4 100644 --- a/arch/x86/events/amd/iommu.h +++ b/arch/x86/events/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(uint devid); diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c index c993c77..c3740cb 100644 --- a/drivers/iommu/amd_iommu_init.c +++ b/drivers/iommu/amd_iommu_init.c @@ -1329,7 +1329,7 @@ static int __init init_iommu_one(struct amd_iommu *iommu, struct ivhd_header *h) /* Add IOMMU to internal data structures */ list_add_tail(&iommu->list, &amd_iommu_list); - iommu->index = amd_iommus_present++; + iommu->index = amd_iommus_present++; if (unlikely(iommu->index >= MAX_IOMMUS)) { WARN(1, "AMD-Vi: System has more IOMMUs than supported by this driver\n"); @@ -2717,6 +2717,11 @@ static struct amd_iommu *get_amd_iommu(uint idx) return iommu; } +int amd_iommu_get_num_iommus(void) +{ + return amd_iommus_present; +} + /**************************************************************************** * * IOMMU EFR Performance Counter support functionality. This code allows diff --git a/drivers/iommu/amd_iommu_proto.h b/drivers/iommu/amd_iommu_proto.h index 1df3ff7..58dfdbf 100644 --- a/drivers/iommu/amd_iommu_proto.h +++ b/drivers/iommu/amd_iommu_proto.h @@ -61,6 +61,7 @@ extern int amd_iommu_domain_set_gcr3(struct iommu_domain *dom, int pasid, #define IOMMU_PC_COUNTER_REG 0x00 #endif +extern int amd_iommu_get_num_iommus(void); extern bool amd_iommu_pc_supported(void); extern u8 amd_iommu_pc_get_max_banks(uint devid); extern u8 amd_iommu_pc_get_max_counters(uint devid); -- 1.8.3.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Suravee Suthikulpanit Subject: [PATCH V6 6/7] iommu/amd: Introduce amd_iommu_get_num_iommus() Date: Fri, 23 Dec 2016 20:38:49 +0700 Message-ID: <1482500330-5606-7-git-send-email-Suravee.Suthikulpanit@amd.com> References: <1482500330-5606-1-git-send-email-Suravee.Suthikulpanit@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1482500330-5606-1-git-send-email-Suravee.Suthikulpanit-5C7GfCeVMHo@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Cc: peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org, mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org List-Id: iommu@lists.linux-foundation.org This patch introduces amd_iommu_get_num_iommus(). This is intended for Perf AMD IOMMU driver. Cc: Joerg Roedel Signed-off-by: Suravee Suthikulpanit --- arch/x86/events/amd/iommu.h | 2 ++ drivers/iommu/amd_iommu_init.c | 7 ++++++- drivers/iommu/amd_iommu_proto.h | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/x86/events/amd/iommu.h b/arch/x86/events/amd/iommu.h index 71ec9d7..891c7c4 100644 --- a/arch/x86/events/amd/iommu.h +++ b/arch/x86/events/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(uint devid); diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c index c993c77..c3740cb 100644 --- a/drivers/iommu/amd_iommu_init.c +++ b/drivers/iommu/amd_iommu_init.c @@ -1329,7 +1329,7 @@ static int __init init_iommu_one(struct amd_iommu *iommu, struct ivhd_header *h) /* Add IOMMU to internal data structures */ list_add_tail(&iommu->list, &amd_iommu_list); - iommu->index = amd_iommus_present++; + iommu->index = amd_iommus_present++; if (unlikely(iommu->index >= MAX_IOMMUS)) { WARN(1, "AMD-Vi: System has more IOMMUs than supported by this driver\n"); @@ -2717,6 +2717,11 @@ static struct amd_iommu *get_amd_iommu(uint idx) return iommu; } +int amd_iommu_get_num_iommus(void) +{ + return amd_iommus_present; +} + /**************************************************************************** * * IOMMU EFR Performance Counter support functionality. This code allows diff --git a/drivers/iommu/amd_iommu_proto.h b/drivers/iommu/amd_iommu_proto.h index 1df3ff7..58dfdbf 100644 --- a/drivers/iommu/amd_iommu_proto.h +++ b/drivers/iommu/amd_iommu_proto.h @@ -61,6 +61,7 @@ extern int amd_iommu_domain_set_gcr3(struct iommu_domain *dom, int pasid, #define IOMMU_PC_COUNTER_REG 0x00 #endif +extern int amd_iommu_get_num_iommus(void); extern bool amd_iommu_pc_supported(void); extern u8 amd_iommu_pc_get_max_banks(uint devid); extern u8 amd_iommu_pc_get_max_counters(uint devid); -- 1.8.3.1