From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2047.outbound.protection.outlook.com [40.107.243.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EBBB3129E77; Mon, 25 Mar 2024 14:11:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.47 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711375899; cv=fail; b=hr1o2XWg55SXPTW5JGg4pYSKWXsMRwe7OnER4oUxD3Dit7MDKT7CBUbwsSoydNXrMZm4YY6CFNYIa86ET2lnEsYIyoxY/WL1vHlhdLJHiukv0pyf/1m+vVWCFsNrjCGMbAFBB//MzVhdNAQAfpCRdSuvwcnCCd0YgZS5UOrfhDY= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711375899; c=relaxed/simple; bh=biVgfJl4B04691XEWULCh5QtdyeGke1YZ5E6o3kfDSM=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=rpkj53a5sn2DaNULqJPOFTVjY+sNOgD+2h8Y2ZSxUZja9EWzHBRIf4IoPGjnujEOE3w7GryKiQMGWFGNYdbm8ekVsMaf1R8hFaUhgMCvy7w/MyE69bvhWB4660XdT86cEIL4ZNX+RVsfq56VTlz7UwjDhs4vXQ9pU1Cu6smI3c4= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=ANiC6y+a; arc=fail smtp.client-ip=40.107.243.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="ANiC6y+a" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F2vQF0uJBhr8rAEav2o7Q1jf+y9KVa/nQVBnrLAkRB+9Knn0xHHYo4rdJqK7GB0VKugzBe5vFi7ABlvwwX8TaQAa4/kATeiAC+NDNHb7R768GDeEMj9zO4pmuzv0W73YGfsAT98NZHJzq19AbuJUgxfss1wZ9yg0PeKTd3egGgy6E/q0LNmW5jAry0r9WEGN5egNQcJt8wi+56c4zmVlV24bx4caOdXK0DnntQVxUXMgT8jJ5Ka9bz+iWHh4h0mj1ubZPGV6wUOKaP8x82EoOXwquY9y6Ed5P/YhLOGIEEBpNpr7WwtEogJdMs3rS/XDhKzIEI5MIpZ1fZaoimgDKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=XLH1MYFzCpFtY1aE34Omq+0KpcMjErLwH9sx0rPJaBk=; b=YI367D/KS1MKRPfcWeFWo6t5n7S3nPcxzG36Rx70tvyNHpzqzvR+q+MWD/cE82CmA80Tcbq0iNVzP3IKR/lmExoFLc0WmXA1PAT5FCRn7grnhpd2jzZQn5XjElVvjvLaA+gC1edHIZ7+UDC7AHUAbvkEDZu4UgdXnohdAQrALFl+zF9uaof6itRht2iRo1ENTczOii//eB8nfslgZ8eAUODlvnko9/iil2ezDFtJzCQba1P/KgsU/CSc4atf2bPhu+DmLGQaR5Sr+J66Y4aNCEzlVJpqg/cqrrck1MI6iA7yb9aj5dKkh9IRddd9jrl6uB13G0Pi2hhHfvvdlfe4zA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XLH1MYFzCpFtY1aE34Omq+0KpcMjErLwH9sx0rPJaBk=; b=ANiC6y+a/mPKgpXA9xYIYirpcV6SWQT1hOX5UtJM1Dgh19Y2LYAcQnRzWFb6JNICcJFIzarR8G1WUPd5+Df7E6Mur7okmvaPjzCnvBsepdoHmH6GbfBnBtCMC39EXZFum3xe2i0XQQCOTCWc5PayUUCGonX7fI3gq16JCnwgx6vfRl1X8+o1gUrKSXpBqbuIasSRSnGbJ39PJ7I+/KyU+OxmDRuljPV8O3N5GnCy3/IOz8fVxi7TmgNPVnxQcYLqZ33MrGSJdzBxxuSC2JZjYBE1HDCNxg4TACFJwphhFSIoe+DTOte1QszKq+9tn0ZXddRKRuMB05LUJTIHV/8dpQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM6PR12MB3849.namprd12.prod.outlook.com (2603:10b6:5:1c7::26) by SJ1PR12MB6340.namprd12.prod.outlook.com (2603:10b6:a03:453::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 14:11:33 +0000 Received: from DM6PR12MB3849.namprd12.prod.outlook.com ([fe80::6aec:dbca:a593:a222]) by DM6PR12MB3849.namprd12.prod.outlook.com ([fe80::6aec:dbca:a593:a222%5]) with mapi id 15.20.7409.028; Mon, 25 Mar 2024 14:11:33 +0000 Date: Mon, 25 Mar 2024 11:11:32 -0300 From: Jason Gunthorpe To: Mostafa Saleh Cc: iommu@lists.linux.dev, Joerg Roedel , linux-arm-kernel@lists.infradead.org, Robin Murphy , Will Deacon , Eric Auger , Jean-Philippe Brucker , Moritz Fischer , Michael Shavit , Nicolin Chen , patches@lists.linux.dev, Shameerali Kolothum Thodi Subject: Re: [PATCH v5 04/27] iommu/arm-smmu-v3: Add an ops indirection to the STE code Message-ID: <20240325141132.GA110546@nvidia.com> References: <0-v5-9a37e0c884ce+31e3-smmuv3_newapi_p2_jgg@nvidia.com> <4-v5-9a37e0c884ce+31e3-smmuv3_newapi_p2_jgg@nvidia.com> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-ClientProxiedBy: BL1PR13CA0168.namprd13.prod.outlook.com (2603:10b6:208:2bd::23) To DM6PR12MB3849.namprd12.prod.outlook.com (2603:10b6:5:1c7::26) Precedence: bulk X-Mailing-List: iommu@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR12MB3849:EE_|SJ1PR12MB6340:EE_ X-MS-Office365-Filtering-Correlation-Id: fdfff8c0-0667-4af6-d266-08dc4cd5798d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XEtVfoaTQNEVXF1EYGiO0Q8rdj6frkqLJFDPqj/2PMxBTCa40eAjYSKOuKUpUJIKav7BIoawCg0B+y/BPC01Cy8ssuCkzA3ilCh0mzaK739/HcVNkjW8GA+prWLs6ZfHZNM9Z0RxFCLrh71OKQAY1Magq4bKemQgipt076Buwh0071eWCVw2QlH2rBcibdw8tAtKbPhfoBiigfP1ntCnCtS6G0XDRfCC9JkIPlzsdUaYZalw0ZlbHpZGza5LOHQJjtdfYzfGrqonTitQprCJnYQp35mLOeLSaybLdwFPVehJg5q+G24gVOB0L4wJewAUlm943X5GvclVbmbnELUU7sPOsEJjzNUph6zxM2WWFK4TlWSJTErgLA3juJZkJ4lYSmJnUWGvmyR8/I09+2P94JpVbwLrB/VYdkp4lafq0POeZggDpgjdbGD9bMZ/vZ1DArFf19k5nlj884pYy9emALvFTDreMOCUr1y0D+NTVA8mgi7NNEWXGgYldHeHhWokphF/I6ofR1NqYztv6RYT+gU8lCbkTvGnN1TVF5nZX1qcR1TckIcdRe8LzxBNr3seF37G7KLUjaCDk9O4uUXEZq6VsHFI23l3SLwP6ouqvdDe6JGSzhgJ+oHel2IXOMlvSvNIktCMBkkMJgLM58eP9lFJyTfeLmWa36HwLay5H00= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB3849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(7416005)(1800799015)(376005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZjdEZUNkWFFBd3Z3WGlRWmZaQ01rU1ErMlUwdUZuVUhjZTYzb0QvR0tWMWZn?= =?utf-8?B?OCt5eTR4MzBYZGZLNi9xU1dXeDNNU2w2MTNlV0p1ekk5V2tIK1hXbm9kU3ZZ?= =?utf-8?B?bVEzOERJdjcrbk5hTHliemZ0NUdOQ2RFdHhIY3BPTUR3a09FL3laV3J1VnI5?= =?utf-8?B?QzRubi9Fd0prS0dRUUd0TERFYThxNXVrNmlkekpKaGpkdHJ3b1FjMU4rOXA2?= =?utf-8?B?TGRVVklZdW5NQnk1VTAvcThMMzNsbTBBb2V5NVJJRk9FQUJWelNoTW1iWEU2?= =?utf-8?B?QlFSOHZmeVRKa2pwUW1jcTNJMzhxUXI1d0N4SHBEb0lWWW5JWTVmeFhvZ1BS?= =?utf-8?B?MUk1TWh3OFZxejI2bDVzZFp5YXNtS2luTEt1QXAvQi9PR1piZEJYY3pFbVF4?= =?utf-8?B?cVAyZVFRSWo0Z2RaZmljNzFKaERHVXR1SmR1T0grRUVsUU1saGljTjFnbmR3?= =?utf-8?B?QjFlRGhFQkZ4Q2VJUmdabVQ3bVlxRnFnY2RhRGlEQ1B4cUlqUmlEaCtJeTVp?= =?utf-8?B?WFkxTkJpZ0hBZ2JxTnRmU0lENS8zYlZjdm1NaUJUUGlGbVY5MGE1R2R6Mjlv?= =?utf-8?B?amJLVytBd3RybEVRZU12Qll2dE1pUERxTDkxRHFrRFZSZGhvZ2EzYkJZRnZr?= =?utf-8?B?UkxZVjlNRUFXNHhteXhPS0Y5YTBkMmFON0JCOU16NFFIbzJRbHFEQUtqanI2?= =?utf-8?B?dzlIa1NFYVU2MVJiOUdSNHM3SStnYURjcVdjbEZXS0kxYVJzdmt4a3h2ZStI?= =?utf-8?B?ZVM0RG96cy90Vkl6Um9yWlZLTDdjMWhXSXRSVThJTG0wU1pGN3FkVkxEU0N2?= =?utf-8?B?aTZlb2Z4cTZGSXI5YW5mVHdGOEhiV09yZVF4K3JONWNGaURMQ2daMEJHS3Jl?= =?utf-8?B?S0IydERQVVhBMWo0L3oxSUxFWjhSRGJMb1l3WjlqcDF4ZnZkRzlLY1ZIZjQ2?= =?utf-8?B?WTliWnpuZEpZUmpkNytBTUtYekc4cnVaUGtFZHowTWJhbDdzSTVYMFVDcXRH?= =?utf-8?B?c0E0TWVYZFhZOUp4LzU0NGdOcWYrMjAwbXJ4c1l2STNDdUQxM0J3NUd4Snpa?= =?utf-8?B?M0oxdmwwS05xdHY1Q2laUGpGbCtzLzJQeDJIdmZ3SUhhOU5ZeTBPZGIxTlZX?= =?utf-8?B?ZDFLcmRXWXhHd1FIamplUDY1YkJ5SjBpYlRLOUNRZlhtb3ZZU0o5MFlHY0dH?= =?utf-8?B?SDlaT1BCL3IxekJwZ21JQ2Vuc2Ztd0ZWNEljeGczSjVWVnM2SUM3cUZXOHBJ?= =?utf-8?B?bnpHcXZRbkRtLzJjVmRZNGMxQVFKTk1CRzdZZUJMNEExTDlIVzVFR3FmQ0Uv?= =?utf-8?B?K2xpMEhteXIwTnAvTXFsMG5PTWFyd0s0alVZbmJzdHpHU2EzN1UvNEY0WEJB?= =?utf-8?B?WTZhWGxHRVpaWkZ2R3paMDFGY2EvSGFEVGxUL2ZnYllRejZqc0krZVdVNzBi?= =?utf-8?B?Y3dzblVnaFVxRjE4VEtldkZlUmZVTkllT1U2MExkRCtLckJyWm9kU0k4Y2Jk?= =?utf-8?B?Nk1DaCtCeitLd0k5YTBOdmRoKzZvYmQvTStNOVg0OTY1eHBLMzZ2RlUxcUtM?= =?utf-8?B?VUpJd2xiaEVBUEFnanFjb1M2R3NOV05IZ3h1aFJrTFprUWc1dDNKZWkrT2Qw?= =?utf-8?B?UUU1dzNoSU5GRFlOTzRqa2tDNWRlUm1FNGF1RUlPTDNmbEgxT0E3MG50VVJH?= =?utf-8?B?cFJiMFU5eldPc0UzTENOMEhMcmluQm90azBtN3ZSNGtEQ0pHYkJ6OUNONVdu?= =?utf-8?B?bndDNy9pQ2w4czZkaGQ4TXQ4QURTK3JWUFp2UzNYZzNzdGJUSXZESEt5S2J0?= =?utf-8?B?eEF2aXU0SnV6alVGcFBoVk9wUFZ5TFdrS092SnpVOEJqRndNSldpZHlhZVNO?= =?utf-8?B?bDZxaW1Oc1ZrNys4bFBPeTlqTUs4VUNhcmVkZ1hyUVdoak9tZWk0OStPZ2gw?= =?utf-8?B?WEpSMXYwWUdBWVcvN3lsNndEN0piNFBuRnVxZVZBZDFYNFFGemx3WVF2UHIv?= =?utf-8?B?RXJQckcyb0dudjJEcU9JdDlWbTZXNEF5UW9OSXJwMDBuc05Xb0JsSm1UeXlD?= =?utf-8?B?ektWZ1JwY29UZ3ZNQ3cxSUhGUW15NVd6bG5xVUZ3dVZZSUswT3d3am1aM3ll?= =?utf-8?Q?+VUjirkwWIf0uyWDHl0AxGvPm?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: fdfff8c0-0667-4af6-d266-08dc4cd5798d X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3849.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 14:11:33.2083 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: G6pzijwqlqAVZOv6B+kW1+0ISbwR9Ya87V9ECc+OooP61iK0AUZfxXWoZtx1nsna X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6340 On Fri, Mar 22, 2024 at 06:14:24PM +0000, Mostafa Saleh wrote: > > @@ -1027,57 +1038,55 @@ static void arm_smmu_get_ste_used(const struct arm_smmu_ste *ent, > > * unused_update is an intermediate value of entry that has unused bits set to > > * their new values. > > */ > > -static u8 arm_smmu_entry_qword_diff(const struct arm_smmu_ste *entry, > > - const struct arm_smmu_ste *target, > > - struct arm_smmu_ste *unused_update) > > +static u8 arm_smmu_entry_qword_diff(struct arm_smmu_entry_writer *writer, > > + const __le64 *entry, const __le64 *target, > > + __le64 *unused_update) > > { > > - struct arm_smmu_ste target_used = {}; > > - struct arm_smmu_ste cur_used = {}; > > + __le64 target_used[NUM_ENTRY_QWORDS] = {}; > > + __le64 cur_used[NUM_ENTRY_QWORDS] = {}; > This is confusing to me, the function was modified to be generic, so its has > args are __le64 * instead of struct arm_smmu_ste *. Right > But NUM_ENTRY_QWORDS is defined as “(sizeof(struct arm_smmu_ste) / sizeof(u64))” > and in the same function writer->ops->num_entry_qwords is used > nterchangeably, Right > I understand that this not a constant and the compiler would complain. > But since for any other num_entry_qwords larger than NUM_ENTRY_QWORDS it fails, > and we know STEs and CDs both have the same size, we simplify the code and make > it a constant everywhere. So you say to get rid of num_entry_qwords and just use the constant? > I see in the next patch, that this is redefined to be the max between STE and > CD, but again, this hardware and it never changes, so my opinion is to simplify > the code, as there is no need to generalize this part. Yes, we need a constant. It would look like this, it is a little bit simpler: diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c index a54062faccde38..d015f41900d802 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -63,9 +63,9 @@ enum arm_smmu_msi_index { ARM_SMMU_MAX_MSIS, }; -#define NUM_ENTRY_QWORDS \ - (max(sizeof(struct arm_smmu_ste), sizeof(struct arm_smmu_cd)) / \ - sizeof(u64)) +#define NUM_ENTRY_QWORDS 8 +static_assert(sizeof(struct arm_smmu_ste) == NUM_ENTRY_QWORDS * sizeof(u64)); +static_assert(sizeof(struct arm_smmu_cd) == NUM_ENTRY_QWORDS * sizeof(u64)); static phys_addr_t arm_smmu_msi_cfg[ARM_SMMU_MAX_MSIS][3] = { [EVTQ_MSI_INDEX] = { @@ -1045,7 +1045,7 @@ static u8 arm_smmu_entry_qword_diff(struct arm_smmu_entry_writer *writer, writer->ops->get_used(entry, cur_used); writer->ops->get_used(target, target_used); - for (i = 0; i != writer->ops->num_entry_qwords; i++) { + for (i = 0; i != NUM_ENTRY_QWORDS; i++) { /* * Check that masks are up to date, the make functions are not * allowed to set a bit to 1 if the used function doesn't say it @@ -1114,7 +1114,6 @@ static bool entry_set(struct arm_smmu_entry_writer *writer, __le64 *entry, void arm_smmu_write_entry(struct arm_smmu_entry_writer *writer, __le64 *entry, const __le64 *target) { - unsigned int num_entry_qwords = writer->ops->num_entry_qwords; __le64 unused_update[NUM_ENTRY_QWORDS]; u8 used_qword_diff; @@ -1137,9 +1136,9 @@ void arm_smmu_write_entry(struct arm_smmu_entry_writer *writer, __le64 *entry, */ unused_update[critical_qword_index] = entry[critical_qword_index]; - entry_set(writer, entry, unused_update, 0, num_entry_qwords); + entry_set(writer, entry, unused_update, 0, NUM_ENTRY_QWORDS); entry_set(writer, entry, target, critical_qword_index, 1); - entry_set(writer, entry, target, 0, num_entry_qwords); + entry_set(writer, entry, target, 0, NUM_ENTRY_QWORDS); } else if (used_qword_diff) { /* * At least two qwords need their inuse bits to be changed. This @@ -1148,7 +1147,7 @@ void arm_smmu_write_entry(struct arm_smmu_entry_writer *writer, __le64 *entry, */ unused_update[0] = entry[0] & (~writer->ops->v_bit); entry_set(writer, entry, unused_update, 0, 1); - entry_set(writer, entry, target, 1, num_entry_qwords - 1); + entry_set(writer, entry, target, 1, NUM_ENTRY_QWORDS - 1); entry_set(writer, entry, target, 0, 1); } else { /* @@ -1157,7 +1156,7 @@ void arm_smmu_write_entry(struct arm_smmu_entry_writer *writer, __le64 *entry, * compute_qword_diff(). */ WARN_ON_ONCE( - entry_set(writer, entry, target, 0, num_entry_qwords)); + entry_set(writer, entry, target, 0, NUM_ENTRY_QWORDS)); } } @@ -1272,7 +1271,6 @@ static const struct arm_smmu_entry_writer_ops arm_smmu_cd_writer_ops = { .sync = arm_smmu_cd_writer_sync_entry, .get_used = arm_smmu_get_cd_used, .v_bit = cpu_to_le64(CTXDESC_CD_0_V), - .num_entry_qwords = sizeof(struct arm_smmu_cd) / sizeof(u64), }; void arm_smmu_write_cd_entry(struct arm_smmu_master *master, int ssid, @@ -1460,7 +1458,6 @@ static const struct arm_smmu_entry_writer_ops arm_smmu_ste_writer_ops = { .sync = arm_smmu_ste_writer_sync_entry, .get_used = arm_smmu_get_ste_used, .v_bit = cpu_to_le64(STRTAB_STE_0_V), - .num_entry_qwords = sizeof(struct arm_smmu_ste) / sizeof(u64), }; static void arm_smmu_write_ste(struct arm_smmu_master *master, u32 sid, diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h index 8ba07b00bf6056..5936dc5f76786a 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h @@ -779,7 +779,6 @@ struct arm_smmu_entry_writer { }; struct arm_smmu_entry_writer_ops { - unsigned int num_entry_qwords; __le64 v_bit; void (*get_used)(const __le64 *entry, __le64 *used); void (*sync)(struct arm_smmu_entry_writer *writer); From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 81D55C54E58 for ; Mon, 25 Mar 2024 14:12:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ykqLi4Cw7kbbq1zywfTp0usRqZI3uSSML7RSHRdKOpo=; b=3bHMbyN5xr0q2v 2Uodw/oQTfR0P9vXrxquunAwuKCOejS/9Aq6IhWNdMAYvNhMZc6ndBBRlFLMHaNdMpoKG0hBwaj3h cHfGMyq7j+jneUVL10tQ+jlrfMIANqwPjNIdC3pYEe8EIFRTgTT58w0h7Ycws7+qcPYU5sNPPyE+h NjuaIayJQTAteOoQfDMy9DyOOgbE2fdybyXF4zqVIVUsVz44fv/jvbFVs7e0jdPq1ND/okXEnNNOK S3fptmKbtIzrNx6J0dbqxgve6YXQVEXrvjQF4EO0VuUbMz0qMIfcZcwVKPlPnxYY/OdJA2xTeVtz+ BFXresTfOIR+KI1kWPcQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rol3D-0000000094L-1zM1; Mon, 25 Mar 2024 14:11:47 +0000 Received: from mail-dm6nam12on20601.outbound.protection.outlook.com ([2a01:111:f403:2417::601] helo=NAM12-DM6-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rol36-0000000091h-3vcD for linux-arm-kernel@lists.infradead.org; Mon, 25 Mar 2024 14:11:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F2vQF0uJBhr8rAEav2o7Q1jf+y9KVa/nQVBnrLAkRB+9Knn0xHHYo4rdJqK7GB0VKugzBe5vFi7ABlvwwX8TaQAa4/kATeiAC+NDNHb7R768GDeEMj9zO4pmuzv0W73YGfsAT98NZHJzq19AbuJUgxfss1wZ9yg0PeKTd3egGgy6E/q0LNmW5jAry0r9WEGN5egNQcJt8wi+56c4zmVlV24bx4caOdXK0DnntQVxUXMgT8jJ5Ka9bz+iWHh4h0mj1ubZPGV6wUOKaP8x82EoOXwquY9y6Ed5P/YhLOGIEEBpNpr7WwtEogJdMs3rS/XDhKzIEI5MIpZ1fZaoimgDKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=XLH1MYFzCpFtY1aE34Omq+0KpcMjErLwH9sx0rPJaBk=; b=YI367D/KS1MKRPfcWeFWo6t5n7S3nPcxzG36Rx70tvyNHpzqzvR+q+MWD/cE82CmA80Tcbq0iNVzP3IKR/lmExoFLc0WmXA1PAT5FCRn7grnhpd2jzZQn5XjElVvjvLaA+gC1edHIZ7+UDC7AHUAbvkEDZu4UgdXnohdAQrALFl+zF9uaof6itRht2iRo1ENTczOii//eB8nfslgZ8eAUODlvnko9/iil2ezDFtJzCQba1P/KgsU/CSc4atf2bPhu+DmLGQaR5Sr+J66Y4aNCEzlVJpqg/cqrrck1MI6iA7yb9aj5dKkh9IRddd9jrl6uB13G0Pi2hhHfvvdlfe4zA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XLH1MYFzCpFtY1aE34Omq+0KpcMjErLwH9sx0rPJaBk=; b=ANiC6y+a/mPKgpXA9xYIYirpcV6SWQT1hOX5UtJM1Dgh19Y2LYAcQnRzWFb6JNICcJFIzarR8G1WUPd5+Df7E6Mur7okmvaPjzCnvBsepdoHmH6GbfBnBtCMC39EXZFum3xe2i0XQQCOTCWc5PayUUCGonX7fI3gq16JCnwgx6vfRl1X8+o1gUrKSXpBqbuIasSRSnGbJ39PJ7I+/KyU+OxmDRuljPV8O3N5GnCy3/IOz8fVxi7TmgNPVnxQcYLqZ33MrGSJdzBxxuSC2JZjYBE1HDCNxg4TACFJwphhFSIoe+DTOte1QszKq+9tn0ZXddRKRuMB05LUJTIHV/8dpQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM6PR12MB3849.namprd12.prod.outlook.com (2603:10b6:5:1c7::26) by SJ1PR12MB6340.namprd12.prod.outlook.com (2603:10b6:a03:453::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Mon, 25 Mar 2024 14:11:33 +0000 Received: from DM6PR12MB3849.namprd12.prod.outlook.com ([fe80::6aec:dbca:a593:a222]) by DM6PR12MB3849.namprd12.prod.outlook.com ([fe80::6aec:dbca:a593:a222%5]) with mapi id 15.20.7409.028; Mon, 25 Mar 2024 14:11:33 +0000 Date: Mon, 25 Mar 2024 11:11:32 -0300 From: Jason Gunthorpe To: Mostafa Saleh Cc: iommu@lists.linux.dev, Joerg Roedel , linux-arm-kernel@lists.infradead.org, Robin Murphy , Will Deacon , Eric Auger , Jean-Philippe Brucker , Moritz Fischer , Michael Shavit , Nicolin Chen , patches@lists.linux.dev, Shameerali Kolothum Thodi Subject: Re: [PATCH v5 04/27] iommu/arm-smmu-v3: Add an ops indirection to the STE code Message-ID: <20240325141132.GA110546@nvidia.com> References: <0-v5-9a37e0c884ce+31e3-smmuv3_newapi_p2_jgg@nvidia.com> <4-v5-9a37e0c884ce+31e3-smmuv3_newapi_p2_jgg@nvidia.com> Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: BL1PR13CA0168.namprd13.prod.outlook.com (2603:10b6:208:2bd::23) To DM6PR12MB3849.namprd12.prod.outlook.com (2603:10b6:5:1c7::26) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR12MB3849:EE_|SJ1PR12MB6340:EE_ X-MS-Office365-Filtering-Correlation-Id: fdfff8c0-0667-4af6-d266-08dc4cd5798d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XEtVfoaTQNEVXF1EYGiO0Q8rdj6frkqLJFDPqj/2PMxBTCa40eAjYSKOuKUpUJIKav7BIoawCg0B+y/BPC01Cy8ssuCkzA3ilCh0mzaK739/HcVNkjW8GA+prWLs6ZfHZNM9Z0RxFCLrh71OKQAY1Magq4bKemQgipt076Buwh0071eWCVw2QlH2rBcibdw8tAtKbPhfoBiigfP1ntCnCtS6G0XDRfCC9JkIPlzsdUaYZalw0ZlbHpZGza5LOHQJjtdfYzfGrqonTitQprCJnYQp35mLOeLSaybLdwFPVehJg5q+G24gVOB0L4wJewAUlm943X5GvclVbmbnELUU7sPOsEJjzNUph6zxM2WWFK4TlWSJTErgLA3juJZkJ4lYSmJnUWGvmyR8/I09+2P94JpVbwLrB/VYdkp4lafq0POeZggDpgjdbGD9bMZ/vZ1DArFf19k5nlj884pYy9emALvFTDreMOCUr1y0D+NTVA8mgi7NNEWXGgYldHeHhWokphF/I6ofR1NqYztv6RYT+gU8lCbkTvGnN1TVF5nZX1qcR1TckIcdRe8LzxBNr3seF37G7KLUjaCDk9O4uUXEZq6VsHFI23l3SLwP6ouqvdDe6JGSzhgJ+oHel2IXOMlvSvNIktCMBkkMJgLM58eP9lFJyTfeLmWa36HwLay5H00= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB3849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(7416005)(1800799015)(376005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZjdEZUNkWFFBd3Z3WGlRWmZaQ01rU1ErMlUwdUZuVUhjZTYzb0QvR0tWMWZn?= =?utf-8?B?OCt5eTR4MzBYZGZLNi9xU1dXeDNNU2w2MTNlV0p1ekk5V2tIK1hXbm9kU3ZZ?= =?utf-8?B?bVEzOERJdjcrbk5hTHliemZ0NUdOQ2RFdHhIY3BPTUR3a09FL3laV3J1VnI5?= =?utf-8?B?QzRubi9Fd0prS0dRUUd0TERFYThxNXVrNmlkekpKaGpkdHJ3b1FjMU4rOXA2?= =?utf-8?B?TGRVVklZdW5NQnk1VTAvcThMMzNsbTBBb2V5NVJJRk9FQUJWelNoTW1iWEU2?= =?utf-8?B?QlFSOHZmeVRKa2pwUW1jcTNJMzhxUXI1d0N4SHBEb0lWWW5JWTVmeFhvZ1BS?= =?utf-8?B?MUk1TWh3OFZxejI2bDVzZFp5YXNtS2luTEt1QXAvQi9PR1piZEJYY3pFbVF4?= =?utf-8?B?cVAyZVFRSWo0Z2RaZmljNzFKaERHVXR1SmR1T0grRUVsUU1saGljTjFnbmR3?= =?utf-8?B?QjFlRGhFQkZ4Q2VJUmdabVQ3bVlxRnFnY2RhRGlEQ1B4cUlqUmlEaCtJeTVp?= =?utf-8?B?WFkxTkJpZ0hBZ2JxTnRmU0lENS8zYlZjdm1NaUJUUGlGbVY5MGE1R2R6Mjlv?= =?utf-8?B?amJLVytBd3RybEVRZU12Qll2dE1pUERxTDkxRHFrRFZSZGhvZ2EzYkJZRnZr?= =?utf-8?B?UkxZVjlNRUFXNHhteXhPS0Y5YTBkMmFON0JCOU16NFFIbzJRbHFEQUtqanI2?= =?utf-8?B?dzlIa1NFYVU2MVJiOUdSNHM3SStnYURjcVdjbEZXS0kxYVJzdmt4a3h2ZStI?= =?utf-8?B?ZVM0RG96cy90Vkl6Um9yWlZLTDdjMWhXSXRSVThJTG0wU1pGN3FkVkxEU0N2?= =?utf-8?B?aTZlb2Z4cTZGSXI5YW5mVHdGOEhiV09yZVF4K3JONWNGaURMQ2daMEJHS3Jl?= =?utf-8?B?S0IydERQVVhBMWo0L3oxSUxFWjhSRGJMb1l3WjlqcDF4ZnZkRzlLY1ZIZjQ2?= =?utf-8?B?WTliWnpuZEpZUmpkNytBTUtYekc4cnVaUGtFZHowTWJhbDdzSTVYMFVDcXRH?= =?utf-8?B?c0E0TWVYZFhZOUp4LzU0NGdOcWYrMjAwbXJ4c1l2STNDdUQxM0J3NUd4Snpa?= =?utf-8?B?M0oxdmwwS05xdHY1Q2laUGpGbCtzLzJQeDJIdmZ3SUhhOU5ZeTBPZGIxTlZX?= =?utf-8?B?ZDFLcmRXWXhHd1FIamplUDY1YkJ5SjBpYlRLOUNRZlhtb3ZZU0o5MFlHY0dH?= =?utf-8?B?SDlaT1BCL3IxekJwZ21JQ2Vuc2Ztd0ZWNEljeGczSjVWVnM2SUM3cUZXOHBJ?= =?utf-8?B?bnpHcXZRbkRtLzJjVmRZNGMxQVFKTk1CRzdZZUJMNEExTDlIVzVFR3FmQ0Uv?= =?utf-8?B?K2xpMEhteXIwTnAvTXFsMG5PTWFyd0s0alVZbmJzdHpHU2EzN1UvNEY0WEJB?= =?utf-8?B?WTZhWGxHRVpaWkZ2R3paMDFGY2EvSGFEVGxUL2ZnYllRejZqc0krZVdVNzBi?= =?utf-8?B?Y3dzblVnaFVxRjE4VEtldkZlUmZVTkllT1U2MExkRCtLckJyWm9kU0k4Y2Jk?= =?utf-8?B?Nk1DaCtCeitLd0k5YTBOdmRoKzZvYmQvTStNOVg0OTY1eHBLMzZ2RlUxcUtM?= =?utf-8?B?VUpJd2xiaEVBUEFnanFjb1M2R3NOV05IZ3h1aFJrTFprUWc1dDNKZWkrT2Qw?= =?utf-8?B?UUU1dzNoSU5GRFlOTzRqa2tDNWRlUm1FNGF1RUlPTDNmbEgxT0E3MG50VVJH?= =?utf-8?B?cFJiMFU5eldPc0UzTENOMEhMcmluQm90azBtN3ZSNGtEQ0pHYkJ6OUNONVdu?= =?utf-8?B?bndDNy9pQ2w4czZkaGQ4TXQ4QURTK3JWUFp2UzNYZzNzdGJUSXZESEt5S2J0?= =?utf-8?B?eEF2aXU0SnV6alVGcFBoVk9wUFZ5TFdrS092SnpVOEJqRndNSldpZHlhZVNO?= =?utf-8?B?bDZxaW1Oc1ZrNys4bFBPeTlqTUs4VUNhcmVkZ1hyUVdoak9tZWk0OStPZ2gw?= =?utf-8?B?WEpSMXYwWUdBWVcvN3lsNndEN0piNFBuRnVxZVZBZDFYNFFGemx3WVF2UHIv?= =?utf-8?B?RXJQckcyb0dudjJEcU9JdDlWbTZXNEF5UW9OSXJwMDBuc05Xb0JsSm1UeXlD?= =?utf-8?B?ektWZ1JwY29UZ3ZNQ3cxSUhGUW15NVd6bG5xVUZ3dVZZSUswT3d3am1aM3ll?= =?utf-8?Q?+VUjirkwWIf0uyWDHl0AxGvPm?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: fdfff8c0-0667-4af6-d266-08dc4cd5798d X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3849.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2024 14:11:33.2083 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: G6pzijwqlqAVZOv6B+kW1+0ISbwR9Ya87V9ECc+OooP61iK0AUZfxXWoZtx1nsna X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR12MB6340 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240325_071141_862539_DC21E84A X-CRM114-Status: GOOD ( 25.16 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBNYXIgMjIsIDIwMjQgYXQgMDY6MTQ6MjRQTSArMDAwMCwgTW9zdGFmYSBTYWxlaCB3 cm90ZToKPiA+IEBAIC0xMDI3LDU3ICsxMDM4LDU1IEBAIHN0YXRpYyB2b2lkIGFybV9zbW11X2dl dF9zdGVfdXNlZChjb25zdCBzdHJ1Y3QgYXJtX3NtbXVfc3RlICplbnQsCj4gPiAgICogdW51c2Vk X3VwZGF0ZSBpcyBhbiBpbnRlcm1lZGlhdGUgdmFsdWUgb2YgZW50cnkgdGhhdCBoYXMgdW51c2Vk IGJpdHMgc2V0IHRvCj4gPiAgICogdGhlaXIgbmV3IHZhbHVlcy4KPiA+ICAgKi8KPiA+IC1zdGF0 aWMgdTggYXJtX3NtbXVfZW50cnlfcXdvcmRfZGlmZihjb25zdCBzdHJ1Y3QgYXJtX3NtbXVfc3Rl ICplbnRyeSwKPiA+IC0JCQkJICAgIGNvbnN0IHN0cnVjdCBhcm1fc21tdV9zdGUgKnRhcmdldCwK PiA+IC0JCQkJICAgIHN0cnVjdCBhcm1fc21tdV9zdGUgKnVudXNlZF91cGRhdGUpCj4gPiArc3Rh dGljIHU4IGFybV9zbW11X2VudHJ5X3F3b3JkX2RpZmYoc3RydWN0IGFybV9zbW11X2VudHJ5X3dy aXRlciAqd3JpdGVyLAo+ID4gKwkJCQkgICAgY29uc3QgX19sZTY0ICplbnRyeSwgY29uc3QgX19s ZTY0ICp0YXJnZXQsCj4gPiArCQkJCSAgICBfX2xlNjQgKnVudXNlZF91cGRhdGUpCj4gPiAgewo+ ID4gLQlzdHJ1Y3QgYXJtX3NtbXVfc3RlIHRhcmdldF91c2VkID0ge307Cj4gPiAtCXN0cnVjdCBh cm1fc21tdV9zdGUgY3VyX3VzZWQgPSB7fTsKPiA+ICsJX19sZTY0IHRhcmdldF91c2VkW05VTV9F TlRSWV9RV09SRFNdID0ge307Cj4gPiArCV9fbGU2NCBjdXJfdXNlZFtOVU1fRU5UUllfUVdPUkRT XSA9IHt9Owo+IFRoaXMgaXMgY29uZnVzaW5nIHRvIG1lLCB0aGUgZnVuY3Rpb24gd2FzIG1vZGlm aWVkIHRvIGJlIGdlbmVyaWMsIHNvIGl0cyBoYXMKPiBhcmdzIGFyZSBfX2xlNjQgKiBpbnN0ZWFk IG9mIHN0cnVjdCBhcm1fc21tdV9zdGUgKi4KClJpZ2h0Cgo+IEJ1dCBOVU1fRU5UUllfUVdPUkRT IGlzIGRlZmluZWQgYXMg4oCcKHNpemVvZihzdHJ1Y3QgYXJtX3NtbXVfc3RlKSAvIHNpemVvZih1 NjQpKeKAnQo+IGFuZCBpbiB0aGUgc2FtZSBmdW5jdGlvbiB3cml0ZXItPm9wcy0+bnVtX2VudHJ5 X3F3b3JkcyBpcyB1c2VkCj4gbnRlcmNoYW5nZWFibHksCgpSaWdodAoKPiBJIHVuZGVyc3RhbmQg dGhhdCB0aGlzIG5vdCBhIGNvbnN0YW50IGFuZCB0aGUgY29tcGlsZXIgd291bGQgY29tcGxhaW4u Cj4gQnV0IHNpbmNlIGZvciBhbnkgb3RoZXIgbnVtX2VudHJ5X3F3b3JkcyBsYXJnZXIgdGhhbiBO VU1fRU5UUllfUVdPUkRTIGl0IGZhaWxzLAo+IGFuZCB3ZSBrbm93IFNURXMgYW5kIENEcyBib3Ro IGhhdmUgdGhlIHNhbWUgc2l6ZSwgd2Ugc2ltcGxpZnkgdGhlIGNvZGUgYW5kIG1ha2UKPiBpdCBh IGNvbnN0YW50IGV2ZXJ5d2hlcmUuCgpTbyB5b3Ugc2F5IHRvIGdldCByaWQgb2YgbnVtX2VudHJ5 X3F3b3JkcyBhbmQganVzdCB1c2UgdGhlIGNvbnN0YW50PwoKPiBJIHNlZSBpbiB0aGUgbmV4dCBw YXRjaCwgdGhhdCB0aGlzIGlzIHJlZGVmaW5lZCB0byBiZSB0aGUgbWF4IGJldHdlZW4gU1RFIGFu ZAo+IENELCBidXQgYWdhaW4sIHRoaXMgaGFyZHdhcmUgYW5kIGl0IG5ldmVyIGNoYW5nZXMsIHNv IG15IG9waW5pb24gaXMgdG8gc2ltcGxpZnkKPiB0aGUgY29kZSwgYXMgdGhlcmUgaXMgbm8gbmVl ZCB0byBnZW5lcmFsaXplIHRoaXMgcGFydC4KClllcywgd2UgbmVlZCBhIGNvbnN0YW50LgoKSXQg d291bGQgbG9vayBsaWtlIHRoaXMsIGl0IGlzIGEgbGl0dGxlIGJpdCBzaW1wbGVyOgoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11LXYzL2FybS1zbW11LXYzLmMgYi9kcml2 ZXJzL2lvbW11L2FybS9hcm0tc21tdS12My9hcm0tc21tdS12My5jCmluZGV4IGE1NDA2MmZhY2Nk ZTM4Li5kMDE1ZjQxOTAwZDgwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pb21tdS9hcm0vYXJtLXNt bXUtdjMvYXJtLXNtbXUtdjMuYworKysgYi9kcml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS12My9h cm0tc21tdS12My5jCkBAIC02Myw5ICs2Myw5IEBAIGVudW0gYXJtX3NtbXVfbXNpX2luZGV4IHsK IAlBUk1fU01NVV9NQVhfTVNJUywKIH07CiAKLSNkZWZpbmUgTlVNX0VOVFJZX1FXT1JEUyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLQkobWF4KHNpemVv ZihzdHJ1Y3QgYXJtX3NtbXVfc3RlKSwgc2l6ZW9mKHN0cnVjdCBhcm1fc21tdV9jZCkpIC8gXAot CSBzaXplb2YodTY0KSkKKyNkZWZpbmUgTlVNX0VOVFJZX1FXT1JEUyA4CitzdGF0aWNfYXNzZXJ0 KHNpemVvZihzdHJ1Y3QgYXJtX3NtbXVfc3RlKSA9PSBOVU1fRU5UUllfUVdPUkRTICogc2l6ZW9m KHU2NCkpOworc3RhdGljX2Fzc2VydChzaXplb2Yoc3RydWN0IGFybV9zbW11X2NkKSA9PSBOVU1f RU5UUllfUVdPUkRTICogc2l6ZW9mKHU2NCkpOwogCiBzdGF0aWMgcGh5c19hZGRyX3QgYXJtX3Nt bXVfbXNpX2NmZ1tBUk1fU01NVV9NQVhfTVNJU11bM10gPSB7CiAJW0VWVFFfTVNJX0lOREVYXSA9 IHsKQEAgLTEwNDUsNyArMTA0NSw3IEBAIHN0YXRpYyB1OCBhcm1fc21tdV9lbnRyeV9xd29yZF9k aWZmKHN0cnVjdCBhcm1fc21tdV9lbnRyeV93cml0ZXIgKndyaXRlciwKIAl3cml0ZXItPm9wcy0+ Z2V0X3VzZWQoZW50cnksIGN1cl91c2VkKTsKIAl3cml0ZXItPm9wcy0+Z2V0X3VzZWQodGFyZ2V0 LCB0YXJnZXRfdXNlZCk7CiAKLQlmb3IgKGkgPSAwOyBpICE9IHdyaXRlci0+b3BzLT5udW1fZW50 cnlfcXdvcmRzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpICE9IE5VTV9FTlRSWV9RV09SRFM7IGkr KykgewogCQkvKgogCQkgKiBDaGVjayB0aGF0IG1hc2tzIGFyZSB1cCB0byBkYXRlLCB0aGUgbWFr ZSBmdW5jdGlvbnMgYXJlIG5vdAogCQkgKiBhbGxvd2VkIHRvIHNldCBhIGJpdCB0byAxIGlmIHRo ZSB1c2VkIGZ1bmN0aW9uIGRvZXNuJ3Qgc2F5IGl0CkBAIC0xMTE0LDcgKzExMTQsNiBAQCBzdGF0 aWMgYm9vbCBlbnRyeV9zZXQoc3RydWN0IGFybV9zbW11X2VudHJ5X3dyaXRlciAqd3JpdGVyLCBf X2xlNjQgKmVudHJ5LAogdm9pZCBhcm1fc21tdV93cml0ZV9lbnRyeShzdHJ1Y3QgYXJtX3NtbXVf ZW50cnlfd3JpdGVyICp3cml0ZXIsIF9fbGU2NCAqZW50cnksCiAJCQkgIGNvbnN0IF9fbGU2NCAq dGFyZ2V0KQogewotCXVuc2lnbmVkIGludCBudW1fZW50cnlfcXdvcmRzID0gd3JpdGVyLT5vcHMt Pm51bV9lbnRyeV9xd29yZHM7CiAJX19sZTY0IHVudXNlZF91cGRhdGVbTlVNX0VOVFJZX1FXT1JE U107CiAJdTggdXNlZF9xd29yZF9kaWZmOwogCkBAIC0xMTM3LDkgKzExMzYsOSBAQCB2b2lkIGFy bV9zbW11X3dyaXRlX2VudHJ5KHN0cnVjdCBhcm1fc21tdV9lbnRyeV93cml0ZXIgKndyaXRlciwg X19sZTY0ICplbnRyeSwKIAkJICovCiAJCXVudXNlZF91cGRhdGVbY3JpdGljYWxfcXdvcmRfaW5k ZXhdID0KIAkJCWVudHJ5W2NyaXRpY2FsX3F3b3JkX2luZGV4XTsKLQkJZW50cnlfc2V0KHdyaXRl ciwgZW50cnksIHVudXNlZF91cGRhdGUsIDAsIG51bV9lbnRyeV9xd29yZHMpOworCQllbnRyeV9z ZXQod3JpdGVyLCBlbnRyeSwgdW51c2VkX3VwZGF0ZSwgMCwgTlVNX0VOVFJZX1FXT1JEUyk7CiAJ CWVudHJ5X3NldCh3cml0ZXIsIGVudHJ5LCB0YXJnZXQsIGNyaXRpY2FsX3F3b3JkX2luZGV4LCAx KTsKLQkJZW50cnlfc2V0KHdyaXRlciwgZW50cnksIHRhcmdldCwgMCwgbnVtX2VudHJ5X3F3b3Jk cyk7CisJCWVudHJ5X3NldCh3cml0ZXIsIGVudHJ5LCB0YXJnZXQsIDAsIE5VTV9FTlRSWV9RV09S RFMpOwogCX0gZWxzZSBpZiAodXNlZF9xd29yZF9kaWZmKSB7CiAJCS8qCiAJCSAqIEF0IGxlYXN0 IHR3byBxd29yZHMgbmVlZCB0aGVpciBpbnVzZSBiaXRzIHRvIGJlIGNoYW5nZWQuIFRoaXMKQEAg LTExNDgsNyArMTE0Nyw3IEBAIHZvaWQgYXJtX3NtbXVfd3JpdGVfZW50cnkoc3RydWN0IGFybV9z bW11X2VudHJ5X3dyaXRlciAqd3JpdGVyLCBfX2xlNjQgKmVudHJ5LAogCQkgKi8KIAkJdW51c2Vk X3VwZGF0ZVswXSA9IGVudHJ5WzBdICYgKH53cml0ZXItPm9wcy0+dl9iaXQpOwogCQllbnRyeV9z ZXQod3JpdGVyLCBlbnRyeSwgdW51c2VkX3VwZGF0ZSwgMCwgMSk7Ci0JCWVudHJ5X3NldCh3cml0 ZXIsIGVudHJ5LCB0YXJnZXQsIDEsIG51bV9lbnRyeV9xd29yZHMgLSAxKTsKKwkJZW50cnlfc2V0 KHdyaXRlciwgZW50cnksIHRhcmdldCwgMSwgTlVNX0VOVFJZX1FXT1JEUyAtIDEpOwogCQllbnRy eV9zZXQod3JpdGVyLCBlbnRyeSwgdGFyZ2V0LCAwLCAxKTsKIAl9IGVsc2UgewogCQkvKgpAQCAt MTE1Nyw3ICsxMTU2LDcgQEAgdm9pZCBhcm1fc21tdV93cml0ZV9lbnRyeShzdHJ1Y3QgYXJtX3Nt bXVfZW50cnlfd3JpdGVyICp3cml0ZXIsIF9fbGU2NCAqZW50cnksCiAJCSAqIGNvbXB1dGVfcXdv cmRfZGlmZigpLgogCQkgKi8KIAkJV0FSTl9PTl9PTkNFKAotCQkJZW50cnlfc2V0KHdyaXRlciwg ZW50cnksIHRhcmdldCwgMCwgbnVtX2VudHJ5X3F3b3JkcykpOworCQkJZW50cnlfc2V0KHdyaXRl ciwgZW50cnksIHRhcmdldCwgMCwgTlVNX0VOVFJZX1FXT1JEUykpOwogCX0KIH0KIApAQCAtMTI3 Miw3ICsxMjcxLDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhcm1fc21tdV9lbnRyeV93cml0ZXJf b3BzIGFybV9zbW11X2NkX3dyaXRlcl9vcHMgPSB7CiAJLnN5bmMgPSBhcm1fc21tdV9jZF93cml0 ZXJfc3luY19lbnRyeSwKIAkuZ2V0X3VzZWQgPSBhcm1fc21tdV9nZXRfY2RfdXNlZCwKIAkudl9i aXQgPSBjcHVfdG9fbGU2NChDVFhERVNDX0NEXzBfViksCi0JLm51bV9lbnRyeV9xd29yZHMgPSBz aXplb2Yoc3RydWN0IGFybV9zbW11X2NkKSAvIHNpemVvZih1NjQpLAogfTsKIAogdm9pZCBhcm1f c21tdV93cml0ZV9jZF9lbnRyeShzdHJ1Y3QgYXJtX3NtbXVfbWFzdGVyICptYXN0ZXIsIGludCBz c2lkLApAQCAtMTQ2MCw3ICsxNDU4LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhcm1fc21tdV9l bnRyeV93cml0ZXJfb3BzIGFybV9zbW11X3N0ZV93cml0ZXJfb3BzID0gewogCS5zeW5jID0gYXJt X3NtbXVfc3RlX3dyaXRlcl9zeW5jX2VudHJ5LAogCS5nZXRfdXNlZCA9IGFybV9zbW11X2dldF9z dGVfdXNlZCwKIAkudl9iaXQgPSBjcHVfdG9fbGU2NChTVFJUQUJfU1RFXzBfViksCi0JLm51bV9l bnRyeV9xd29yZHMgPSBzaXplb2Yoc3RydWN0IGFybV9zbW11X3N0ZSkgLyBzaXplb2YodTY0KSwK IH07CiAKIHN0YXRpYyB2b2lkIGFybV9zbW11X3dyaXRlX3N0ZShzdHJ1Y3QgYXJtX3NtbXVfbWFz dGVyICptYXN0ZXIsIHUzMiBzaWQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L2FybS9hcm0t c21tdS12My9hcm0tc21tdS12My5oIGIvZHJpdmVycy9pb21tdS9hcm0vYXJtLXNtbXUtdjMvYXJt LXNtbXUtdjMuaAppbmRleCA4YmEwN2IwMGJmNjA1Ni4uNTkzNmRjNWY3Njc4NmEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11LXYzL2FybS1zbW11LXYzLmgKKysrIGIvZHJp dmVycy9pb21tdS9hcm0vYXJtLXNtbXUtdjMvYXJtLXNtbXUtdjMuaApAQCAtNzc5LDcgKzc3OSw2 IEBAIHN0cnVjdCBhcm1fc21tdV9lbnRyeV93cml0ZXIgewogfTsKIAogc3RydWN0IGFybV9zbW11 X2VudHJ5X3dyaXRlcl9vcHMgewotCXVuc2lnbmVkIGludCBudW1fZW50cnlfcXdvcmRzOwogCV9f bGU2NCB2X2JpdDsKIAl2b2lkICgqZ2V0X3VzZWQpKGNvbnN0IF9fbGU2NCAqZW50cnksIF9fbGU2 NCAqdXNlZCk7CiAJdm9pZCAoKnN5bmMpKHN0cnVjdCBhcm1fc21tdV9lbnRyeV93cml0ZXIgKndy aXRlcik7CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo=