From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933436AbdCVHFR (ORCPT ); Wed, 22 Mar 2017 03:05:17 -0400 Received: from mail-cys01nam02on0048.outbound.protection.outlook.com ([104.47.37.48]:20064 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1758788AbdCVHEP (ORCPT ); Wed, 22 Mar 2017 03:04:15 -0400 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=amd.com; From: Suravee Suthikulpanit To: , CC: , , , , Suravee Suthikulpanit Subject: [PATCH v12 04/10] iommu/amd: Clean up iommu_pc_get_set_reg() Date: Wed, 22 Mar 2017 02:02:36 -0500 Message-ID: <1490166162-10002-5-git-send-email-Suravee.Suthikulpanit@amd.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1490166162-10002-1-git-send-email-Suravee.Suthikulpanit@amd.com> References: <1490166162-10002-1-git-send-email-Suravee.Suthikulpanit@amd.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [114.109.128.54] X-ClientProxiedBy: SG2PR01CA0012.apcprd01.prod.exchangelabs.com (10.165.9.150) To MWHPR12MB1454.namprd12.prod.outlook.com (10.172.55.135) X-MS-Office365-Filtering-Correlation-Id: d706b307-921d-47d0-63b4-08d470f18f50 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:MWHPR12MB1454; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1454;3:hb5bWlmsCyNJtijJOWLOHswCe5YUXIlp0J5akyS38aETfQkPM6y7CNItTaROegzY0MgeuuykkGiNwlfNZ5UXh/C05uqpELw1ZW3uwIOD06lzLIRZoOPWYSDEMq80uQT5TwkOTnCm3hT9worIwrFDXPDMjmrTZon1H24VxXuwUqYN9RyJmTVeGdX2ZAhW9+51GJcsKISQsiTsCWVfg01WsJZbGxFgwHF/IVbCztkkb/xssgqezBUBLH1ri0VEA1giuQWgvUo/XKovhrO10HykgVj6r/y3ACdcdGmk5tEeDmM=;25:ssANBelQpEHtjvS29BONaPfW69EQH/DlK63NNkThShOg/CPriQqWrLoaNRXIPR8nS+lyWY21laCsZGhoRmaXccUPsxFCTIhWJRYTBfr8VrbF90uPBBMPUr66ysktqKEiIibY7VsRf6H2kA0Igc2AdTAeanSovPx4MIU79OTRXKPguO1FTCFa9y3Ns0lbYwVeaC9Vr4G4O4tTeZAV+xjVMoQxHsjsrhO0t6EgQSUtgQ0XZVm+LoQeBiOQb3+dES7hjvCMnY7V5DbKBYY0qvZ/BC8qpYaNC9+q9AZUUQjFcKfp/a7aNEbfQF9WvyVTSIvGbtG7zt+3ix0EFI+7n2ZNOEsKCVI1tgRSwLOpi1/ExbEc51a9LzgGnFZgoIbW8D6wJ/RHxocVtGFx3nGyZoqroGnhdvb6Z5TJxTsmJc1qJAMVOyYIGQfAp0+fwKPpn9yG54swaLDFRp9941jM1g/VCQ== X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1454;31:GcOZkg/ww7kPxQavPF7vQpGGE1V9Ag+XkLp3YUTWhaUtFHmVbUV9mC57KBcqAo2GLkddUE7Z4X4TU+CH3543w/OUE5bi9rwYT4ldtJh8aQhxLKuB9HSkD5tptAmpgTEdOuFAU0v7YcHgWjzuZgBxFHjBPUlyjTPixTzwjjPw2vtIJiZ4Hm7upP+FmKx9GPSI5rqTVAM6+GcuBcDMZPqi8AcUbY5QdKxaa61DBqrVMzHlhqhQtXnNcWHPC/2bKrQLeqPWEO+cRBx/9/RwcXUvkw==;20:jXGLYBnNc9BCgbtQMIATg/BdfoQ53QjY+hFmwLpUA784uED3JGAr2L2/8QHVnK69y6tSGFtqzrpD9TZBw42K9nGDVNDfT2YTpjcAarzIuj4Ivs+FEBxL/aRBa8uM/uKWT3OsYqMpgZRTYfnZbq85ZhuZWrBll7T+W58FkSih1YWDp34lkLu3BcRItWHLKgrz3V27i5g08LJRdW98XwViBrAuyz+GlBLWBMacomGRa1dKRFgBXzAtR+SC/SxKbx1LD5jviLMpKeCzdi1HL3VhXUAzDV/myUoT/tfruBBcNLducxP6osAuAcPYmUdikj7PhCGgEIe3Xrfj4Glt+Q6yFBBQz1zcPRv+K1yenjxldn+rTIdJXelwVDq+j5/RAq+imOXpqvPlrx2dvqsO0HapucDgIsRAvsnES6BocQqJTyxqTB+cI0wbMGzmJzUXXKqJS+FgjfPtPoyrAsXn5TWJn2NKzhisLE1HHFmEA5PFkLhSPY9DYP4nhZuSygQkv/Vr 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)(20161123555025)(20161123560025)(20161123558025)(20161123562025)(20161123564025)(6072148);SRVR:MWHPR12MB1454;BCL:0;PCL:0;RULEID:;SRVR:MWHPR12MB1454; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1454;4:gN34MMqxkGkVsSzebHFdBq3ArOERatJwsCmLzZjN2OolCbzL67OWx2tMtatRR/R+A57yUp+OxuEG03BCUSu+ozOoVRNUiNny0RjS06wECkIjfoD5jy43V1Xz5KjybBE1ZkPRhJzo1XjCzzciBFIZuIfFQC74UekSQ6zQIAn9ALntBxkZAoXPqtcZuPBy8ORrEvLW9BNzgWqWgRcsOqeAMJiaW5vay6KGe/Df3ylMLpTR2+FeKHChJhh098JxBuvBM0XOc0Vb1VrMrX9Hdlpk53j3Pyo9iUymOPOcxInqLXksjXxwkTp9Mjjhs5mVb+elWjlxOfT5ngT1ADOmQrBcHKo+PaPsrQD9/1BiVHb8DwpAWfAs0zvhKXlwK60w/VRX1uAfS1o76IUz3OGrNJx0t3umWmVLRCFgdJ37lGl90mSHZetV612VIA30VHaL144Mlro9eY9V5fwxUrFFMYCZ0EBo2l3Zy/d65Wx0Kzn0t2AnZwqRvMZBdCBvWpWRlDhzXMexF8gZxuDkHLCInSFvJt1ps1Ti4kaS56kecHNjA1vStA8K1OyfR2/S7eriSx3xTFvbnYsMs6zx05DB/kX17lgswspYhChI5mooUe/QFT3P+OKLvbPIxgdSe3sFdEhZTXN1uuJty8qhlsgF76vH4dODGCG5ZZLxSxd73ey7BJQ= X-Forefront-PRVS: 02543CD7CD X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39410400002)(39840400002)(39860400002)(39450400003)(39850400002)(50466002)(189998001)(2950100002)(4326008)(6486002)(5660300001)(50226002)(8676002)(5003940100001)(47776003)(66066001)(81166006)(53936002)(6506006)(50986999)(76176999)(4720700003)(54906002)(2906002)(42186005)(38730400002)(7736002)(36756003)(305945005)(6512007)(3846002)(6116002)(86362001)(25786009);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR12MB1454;H:ssuthiku-rhel73.localdomain;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1454;23:WeLJzd/UJYa1DwseisB1H2vq9P2w8YG8NowTXHhDbr8kD/gDal8b4hod+CJmvJrv+8W10m+A/4SS6RexbtdD3RCVltJaxUQQ2nnmFo/zQO2hOKqAmL5YP2t0eeQeQo2VDUggl7J+CkS8YIh2Iba9by7opqSvsOmhRvnDdpnVKhkNC+oUhCRXE8txnL1VTLjBc0ibmt7PilZBdC7nyKgIdPQuvEFy54FG2Ry+B260tA1I2xhLUDtAsRqeJIZtLyXoiwKqUDQz50Z8sjU2NWISBAIJQT7Gs++xI5ERpLobhvKdiZFKRLrCVI/gKNQCo9M9cvqLvqNHbL2ujeAeSsFNS5MxOc19aQG/MZKO1K5ID7pi/+axAvhOPPHWN0+mPc9Q+iskmhiiJ0Up2j04o8V58uTMAxiYxtyzCj9rcl3wxLT8rgH+B673aLsI+SIVUf2Zmb0RXbEIwEqx3ae9Y905IvO0XAEHIl5O8JOuysz2P1E5OwUZbQ7iidXFu2MkN+zcsFtkxjZ/X4ZzD03iFVhi/HXcexxpzwXwaqoV/8B/pVJMpMl6Obmv56/u68uVQGPA6TpmTItZJnCqu7/PIkI9WViPkrZFirfB5c4/cyZycn+XNMSrUwugX8WuOF4jNf9rEmJGEtX7TWM5Pb6MkpfAheYcrvCGRQiZ1BCihUFJ2UtieqqxnWQOY7vUjJG0aHznEsIh8AIlhwiGXF6cqzp+7Z/A3iad3HV/4HvHVvhw3cwil2YBVaUTQIxDky26mrep/bLs3s5mnZWN6C4cCPMtStea3e/x01P8jqYYl6hSHBHbEG6YGtiv+UJf6s1Ey8S4hRlYECnhoNDP/I44MKiD1/VDTnxOqQIfA9GlrOHhu42Y5H6HIeXu93PdVR3OiDNR+PI6sw5NC2w5sJCM3aFKhIQBfnuNMTbP06cAHV1MzY53FXU9mB9mrDkvMIiHuO1H X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1454;6:hPln2xhWBMdnYNAE/HBlVqRSwxpUH8WbbmLiIxl1oJfIWhWBxQE6L0+W02hHanpzMLEXgl8a6UM6d1Myw0+scdZDWpLQ8mB49WvMSTCg1TTofLi7CG8/Jj4J1hlniDBh84LE0zLGHuYaOuGBSv/cFNxwIZbW+5tXyw3POGdR3dcyxcVcluJh4fxTh1as/cr5RSlyHHMQqHaqLe+iUWJjR8lqCEb16qQhGFj04xUxClpI0aCdpHcllg0+0jhpFNuSoejKwBRa1G/yU+Sn2t5V0tOkHnQllNQZAf8RKU3oPBLNJDfATa0TKr34GYlrLAEBjLoLxFdNnggpSbCec2kdrpiDx5kW0n5NNIzL9khlnanHUTD+8s5dNu4ZgGmJBx7smW6PnZHNWGrM26t93Hu8o/H0WB+yrDa0upG34Rvxm1c=;5:JUAnewNPYw2wbtJSPAu8fqQm9XTwBQcSzjhkc2kStDnMs8ouu6AE2vtHvaBxSExghwb408bvxlM7Sf7PlaIQFV/FzIQ0tiRIU796ZpE1BEhIxHvjdpBjjRQeDAi4WK31sHM/HweFWdPC0Nvkb9veTA==;24:7BgD8Ag5VaWJyNp0fUgBDvONWWNwxTCxj7W77L4NaZF4w+NjJHEX+95KC51ODAwaGpc3wMiU8zZYe/kKm1EaDfKHPTt9JEZ73ZPuGB2P0d0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1454;7:n85iOy/198vpc/aeKcVh+RWCKudDku5kgBIgZF1Tfd3HSUyv2ThtrRUzosEbjgN1cbVheTee4+4vfKHSbCqslqbb5tzKSGkm0cBDgVGCi4lK14ArBJbDlvngf7yLftfKSXxl9GotF8LnubLLA3MH+1/niEO6nvXg7YBWy2LYNfTOglm2pQvdoRx6/zk3KqIbF/PJSBmXtRsa7bdemDK1K1MHrl2y07Oru6PmPy10JBI7YXmyDsZyxnKyZRDuv3aU5Gao4R0rvDhLTeeXDQFb/j9JYOFLXhmxBksWBucUpuHkgVn1Q2fy+NOs5FcWRFh6SxugdVKonIy7PVJl+sbB4w==;20:kjjWNb2ExbK5pzE0c9Ff4ZoJ7R2uIx5gVKNcwRRYgcmRvugyi+GRaKtqiULcPf8gMKKw87NxAfGeMQzyuPayrVi/lX+eh1vdLhU/RBsTw0NTqeVzF1fzWkK63ho67uT7bhmi/Oa1YBPXeizMvlD4OUEn59Y5Z5oRDdyf0qEOsi0uEU1Yezdw0L8aaJ4nyB4EsaX1ZEeGl9PY/+fwXqs5EqYwiAYQGnka7afDwaVwLp4S8LCsjDNIvDg1l8URjHrJ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2017 07:03:33.9274 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1454 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Suravee Suthikulpanit Clean up coding style and fix a bug in the 64-bit register read logic since it overwrites the upper 32-bit when reading the lower 32-bit. Signed-off-by: Suravee Suthikulpanit --- drivers/iommu/amd_iommu_init.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c index 6130278..ce65a47 100644 --- a/drivers/iommu/amd_iommu_init.c +++ b/drivers/iommu/amd_iommu_init.c @@ -2763,22 +2763,25 @@ static int iommu_pc_get_set_reg_val(struct amd_iommu *iommu, if (WARN_ON((fxn > 0x28) || (fxn & 7))) return -ENODEV; - offset = (u32)(((0x40|bank) << 12) | (cntr << 8) | fxn); + offset = (u32)(((0x40 | bank) << 12) | (cntr << 8) | fxn); /* Limit the offset to the hw defined mmio region aperture */ - max_offset_lim = (u32)(((0x40|iommu->max_banks) << 12) | + max_offset_lim = (u32)(((0x40 | iommu->max_banks) << 12) | (iommu->max_counters << 8) | 0x28); if ((offset < MMIO_CNTR_REG_OFFSET) || (offset > max_offset_lim)) return -EINVAL; if (is_write) { - writel((u32)*value, iommu->mmio_base + offset); - writel((*value >> 32), iommu->mmio_base + offset + 4); + u64 val = *value & GENMASK_ULL(47, 0); + + writel((u32)val, iommu->mmio_base + offset); + writel((val >> 32), iommu->mmio_base + offset + 4); } else { *value = readl(iommu->mmio_base + offset + 4); *value <<= 32; - *value = readl(iommu->mmio_base + offset); + *value |= readl(iommu->mmio_base + offset); + *value &= GENMASK_ULL(47, 0); } return 0; -- 1.8.3.1