From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751730AbdFGT0x (ORCPT ); Wed, 7 Jun 2017 15:26:53 -0400 Received: from mail-dm3nam03on0052.outbound.protection.outlook.com ([104.47.41.52]:20156 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752209AbdFGTPB (ORCPT ); Wed, 7 Jun 2017 15:15:01 -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: Tom Lendacky Subject: [PATCH v6 09/34] x86/mm: Simplify p[gum]d_page() macros To: linux-arch@vger.kernel.org, linux-efi@vger.kernel.org, kvm@vger.kernel.org, linux-doc@vger.kernel.org, x86@kernel.org, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, linux-mm@kvack.org, iommu@lists.linux-foundation.org Cc: Rik van Riel , Radim =?utf-8?b?S3LEjW3DocWZ?= , Toshimitsu Kani , Arnd Bergmann , Jonathan Corbet , Matt Fleming , "Michael S. Tsirkin" , Joerg Roedel , Konrad Rzeszutek Wilk , Paolo Bonzini , Larry Woodman , Brijesh Singh , Ingo Molnar , Borislav Petkov , Andy Lutomirski , "H. Peter Anvin" , Andrey Ryabinin , Alexander Potapenko , Dave Young , Thomas Gleixner , Dmitry Vyukov Date: Wed, 07 Jun 2017 14:14:45 -0500 Message-ID: <20170607191445.28645.15664.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170607191309.28645.15241.stgit@tlendack-t1.amdoffice.net> References: <20170607191309.28645.15241.stgit@tlendack-t1.amdoffice.net> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM5PR16CA0040.namprd16.prod.outlook.com (10.172.42.154) To CY4PR12MB1142.namprd12.prod.outlook.com (10.168.163.150) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PR12MB1142: X-MS-Office365-Filtering-Correlation-Id: 107635bf-2ca8-4772-4386-08d4add97734 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:CY4PR12MB1142; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;3:2Dn7H4VIZ9dl0cLsm4a+Rou3eoGS0JVrrMmK8PsNK6+2zkptpHBCzeaZosxkqbgtlstf4el/pGp2/zLcO3RnOaYD+L6K0ARNbtDW2WKov9ZPZcndM8XABIu2IC9SK2iI9ed5CuvUyPOErLFxitUfAXViGIDQbpYqxMf9uRWW3w6U2Pcc1WzprpaFYp4bDIst6UwE2Rgnp9eDaCfw0++QqWJWEDDujou8sOLeE3t0rn2QLyfVxbHb+7BShq22BC9j9/YPqDchk+SKpdQBfhYJTSCjSnbxk/3EaLHclMV3XP1KoAWghrXEF1lCJERHr1lo2drcCXq4MzQkvJYpl5pjNimcg8HAGA8Hjk3CGt0Ja3I=;25:LBwHPErZbEsAJqgvqZUPqIxsXRFoLkYYPMGG+84p2ojaETquVLgh2NwbNTP1qOv5maQZvDi7cLo9zy1TYHuU8X9LAsWfQ6KGG1YSGqC3iIn5DJ9f5HFlVe/b+aLgPlW2Ll4VQraEt3ES1R3/crsJ4pJARz7rgnPFvGjnZjgSJa89xns5VVdOGM1MguVPJdLhm8J+vQoDddojMBGku9JPpuMKaRUOOgVgWdr3EZEeE56s05DRioKrF7QNVBxMYh6qdRSmCAW41U+5oBdmjdKWKpsnCu6j23qL3NmDmXswVRk7kgCb0kAKiqYAIkrU3HOFLLbvoyNxQhCY1IlKFjNI1aiaX5PDi83EiB/wXpqSfBOFJ7g8B3EBz5JeM2J1nAMYnyW/TMzMr5wuvZNtMyb4oX9OK2nIuQOFsnDMn9r0Sv5UryJXrJXjm8mbvckiREzAZuYI1pKKcfxJnLTnuslAkT96daeVFxXhzItNCe6X0+0= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;31:TyxFlzOxOvKCAWaAJzYkr2DJlK7JYk1fIog1fz8UPYWqpokPPOMVBm3yu537yCxzyB+S35ZWk8dH0H0I4ENvMpzSeka+QpNGRwSKe8wkzTi67MBRvJUIc8ZFtOMB9nU9V2+dpAEdiGA/1/zdIJhY+QJjte8JszV7KWv7M/sJGcA3vvebXW0pKKVD5CkLJLm0asXr+veYAgqLBoJGq8hBeu3umUcWRTRBbmmkDqJIi2o=;20:jSTBJYxhdsJKNuz/BA4laMp7pOBO+qtj6JH+T936C3glqR4MRqb/pcRDmHP0UyITTAncgroFGwQDts2ghVIZQUtsWlfbmQWLk3Boqls7ig+sYWCzIbb4C080sl0LXmq4pVh6WPdZQHec6ZSKmK5OsnHX19MgBwpSWMFlq7rC87ZUCa3pQIqHZaUQ2MrMY/2MaIUmjf/s5bwY7/LFFVnJqLQ1GAtcZR4AJ34AscyWuP5uP3AFkFMBPaZXL1yVppjEykuGwp+OH0/k0HiVndBvUpyhvFjOt00NdlFGbd/E/vRoocLjuPbLY0nypWpFK41ilR69cGfTdeZS7YTsmukaxEUXL6Ql+Use0iupOnebOP2QWT3GcdmcJLRauGLzAsjIhB0c4LNZF5A66SCj43S3D/dQeC87yCjWryv3xVt1QyHo/2GAGdkoT5K+7o4IIuVwiLEI92Bn0OyZIZu0XMR/cLWbz1wTJfSDPBMxE6Co5lDRtM/p71S3DTb0gfeH+dO1 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(20161123555025)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:CY4PR12MB1142;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:CY4PR12MB1142; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQyOzQ6endUc0xMcUErcEg1Q0pCblNheHp1RGxJUG5w?= =?utf-8?B?cTNiSTlnRDdQend4eWIvdUlpOENDL0FRU0NOZTdEY09jWTc1R2VjR2tHS3R3?= =?utf-8?B?Nmh4RXZpMjluSE5PZm9XcjdKTy83MmMza0FlUzdiV1c0aVFBL0xTelpPbUEv?= =?utf-8?B?YXEvdUhzb0JacjRwSnJQcDhPMjRyMnhROTdiV3p4M0pFeTlmdXdYOVFjRGlp?= =?utf-8?B?Q2ZndWhGS3NJYjlYRG9QcmVaeXJPRXdoUU5COGxoSVVRLzM2bEIzeE9zd1JV?= =?utf-8?B?cTlheFcxOFg2Ky9BVzl0NGpFNUlDUmtlMjIzaWIrRTUvaXRrb3J5QkdnTEZF?= =?utf-8?B?Um5GdDY3b2VWM0FxWk9GZHk0cUllZlZCU0NaVjAxeGRTRzJuS1hCdmNnKzNq?= =?utf-8?B?OGNyVCt1ZTBHL0p2SnZhZFZldnZteHNTeVExWDh6aURWMWFyWXF2c1diY1V4?= =?utf-8?B?TWR4M2k4YitEMUhNOEpjemZBTXdGanpIbEF2MHhnUCtmZUkxbEVYNnRWcEJ6?= =?utf-8?B?NmVpZ0llOS9rd0ZoSkM5N1JKUnMxOUJ3UGl2cFVQK0RZbWlDQnlZY0JkaGQ2?= =?utf-8?B?ZDJmSURUQ3M3Smp2NkNUUU81Ty9KY0VEQ3o4ems3TmFGV2g3QlY3cEx5TGtw?= =?utf-8?B?QXBjcFNKU1YwYzBHSTVIdHpYMEo3Y2ZiMFFDZ0JkYzRZc3ErQlhIM01qeHRX?= =?utf-8?B?T25kYkhMYmRBYXVWOHoyR0Q4bnVpQmNwMlJkMVlxOUVIUGM1Ry9XOXpmVGwz?= =?utf-8?B?cnppM3Byb1dYOUVUeTNRZENoNjlmeGVyMzdEeGppVUhuWnBoUE1EOTc2aU9s?= =?utf-8?B?SlVTemVEcEdWVWtUTVBPQ3JKSXdJb2pZMFFZYU9qa1R2a3NWV3NHSVZTQTVi?= =?utf-8?B?S05HcFV1djRiQlk0Zm5yTVlibVpHdkxFSW05V3Y3dWU4VU1sMnZ5bGgyV3J0?= =?utf-8?B?dU12RVFYbzllNUVXK0pLeENLZ0Yxc3RVRTlsb0hrenc0N3RFdVIzOFRod2Jt?= =?utf-8?B?UHgzY003T2phMHVCOGtDc0xGTGdrY2VjK3oyamh6L2srcGpUaWhPZEgrczBw?= =?utf-8?B?VlVwdjZsUk9OTk5oWE80UHlmODdPQnFlR3dVSVRrOW9PZ0RpR1krOGRWM2NB?= =?utf-8?B?Ui9nek83NlMvQ2dPdlBRNFdEeWVQVk1vSkJKeHgzczBZMmJURU1kZlQ3NnJt?= =?utf-8?B?Wno1MDBIdEV0UVRaNFc2SWw4RkllYnJSUnhGa2ROWlFRZ1FhZmtsaDR4QWlF?= =?utf-8?B?RzV3Y0VUOFJ6cGtidGJwUncrN3hTbVJYeHVKUk1oWVd3M0g3MU45T3Z5RkJ2?= =?utf-8?B?ZjBpMWQ1akxVZmZCWXVteS93Z0VwWlZpcGQrejlnZkVJVVZhRm1LYW14TU5Y?= =?utf-8?B?QkpCb0hrN042ZURuZ2FDTk9jb1hBUzZhVnBJS3paWCtNU2Ywb3hrSXB5K05s?= =?utf-8?B?T2M5T1pGSmkrMWdGT3NjK3ZwVEpDaDEzUUt0UTV4eXJGWC9BUTI2SEJZYzYz?= =?utf-8?B?RmptWHBtRFhxNVNNWlJLTjgvRXY3WjJENWE5dk1RTVZMNHl2RHV4Zm1rbEtH?= =?utf-8?B?OGtXMTF3dTBpZzFYMzJNci83VXU0ZGFBNGVoRHNVZ0hTT3lMNStqUHlZRlV5?= =?utf-8?Q?rVmi+61/ZnOxvyhgthx?= X-Forefront-PRVS: 03319F6FEF X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39400400002)(39410400002)(39450400003)(39840400002)(39860400002)(39850400002)(189998001)(305945005)(7736002)(97746001)(8676002)(33646002)(103116003)(4001350100001)(53936002)(9686003)(54906002)(53416004)(110136004)(4326008)(6506006)(38730400002)(25786009)(478600001)(42186005)(66066001)(7416002)(76176999)(50986999)(7406005)(54356999)(5660300001)(72206003)(2906002)(2950100002)(55016002)(6116002)(3846002)(47776003)(1076002)(230700001)(50466002)(81166006)(83506001)(23676002)(86362001)(921003)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1142;H:tlendack-t1.amdoffice.net;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQyOzIzOnJpWEhFZUt4NGFGMnNvU2VyNEdkQVpyUWU0?= =?utf-8?B?WmMrYUljeXh0aHkvY21rYWluZXhzV0FkNXhpR0JLRE43MDBDblI0R0MzVzBL?= =?utf-8?B?THJyS21TdG5mVHdkNlFWcnJMMFB5Z2NCSTY0V3B1SnRzRGlXNTdKVVhmc25w?= =?utf-8?B?QWlOUnF6NlVFclc0Nmx4STd3ODRueWtmVDF5RVRJUDZ3SmY2RHd4aDhOeXg1?= =?utf-8?B?M3VVakxxOGNXekdHMW5nV2pyMnJLNmd5S3o1WEJwbzhSVC9GMkZ3ZE9lbE1O?= =?utf-8?B?VE1QRGFONDlIQ3ovTUdIdjFvOGhVbzNXK0M4cUd4c3o3RGU2VXZjR3Nma3dl?= =?utf-8?B?L1BjMW5lMWVSTU50Q3ZuNHFEbmJRdFk1UFdMMGxYa2hxMFhnaHN4L3FVWVFi?= =?utf-8?B?THB4QWlSZWJ1ejl1SGNEMGhEamt6VjhyYUpCS1J0U2NNS3dvMFluU1Fjc0Jv?= =?utf-8?B?eGxnT1hxUGdVZnRIQ0M4OTkwTnFsdEJVcEhvUVl1TmRlMzFiOUV1bEZYQTlw?= =?utf-8?B?aC8vaHcvWWU2dlJUVk5tUnM1N3FyZVA3K01vSDRmeXJuazRCaFV0N2dQd2U5?= =?utf-8?B?dUQrNFdzUXIzZ3o0YXJPdnNtYU1kS3VKeWVxVHdwa0ZuUitVeDNXSnFPOFlz?= =?utf-8?B?MUdVYVN6ejdEVHZkMlV4OU5raFQzTGh4cXhJNmRiK0pBR3RoYnF4UlR4aWlS?= =?utf-8?B?Wk1lSmJma0pOTFRTSXFHZzdhZE00VTZBRXFsNE9vb3VKcFlzN3M4NVFIQXpC?= =?utf-8?B?WmZ3cUQ1SGpEOEVYTnZvZThNblM1YXRNeTlyTVU4M2JDMVBvLzYvdGtacmha?= =?utf-8?B?WUl2ZVhsdEtBMC9JeGphYndFQ294Q2RkY2IyN29JYk43c3N1UU9vYjF4UDVF?= =?utf-8?B?QnJEYndPVHJaTzc3bkZzMjVmcmprWWZab1VwR2hsemNuU3VEbG1oQ3VDNngz?= =?utf-8?B?bGIya1NKdHBRYURpVU5KSm5iZmdYTnZ6MTZuSm5BcW5NY2hCSFpER3ZBL2Fy?= =?utf-8?B?cmpLZUZ1YllBU0NOWUxNajFYWkJIMDhJSVp1SHFwNGZQOURRT0ZzdS94R1ZT?= =?utf-8?B?eU9HUFZJMEFwdm9iT05DN2NJeXVEWWpYcGQ1amtWUXUrOHNVOCtJeUtiU3pL?= =?utf-8?B?MnViZ2wvcjAwbU9tUVQ5eTliUHA3UE5abzhxR0xvcFlVaEp3QTVGN3FkdmMx?= =?utf-8?B?bzJHR0J0OENKN3JkMmgzTDNGbnlHYVRLTTc3ZGUxL2ZxeXhpWEFod3pNMGo0?= =?utf-8?B?bTU2d05yd1VrWWpWdTNHYWpoeSsyZnRjcUhFL0h2ekdPTnpKSlRSZ1FWNVRQ?= =?utf-8?B?VjEzK1FyL2VEZDBRVU9BQnlHS3dyYnVXNmZQeEliL1VYdWo1QVdCa0pSQTN2?= =?utf-8?B?akxYN3d1bXBVRUFhNGUwdDkxV3Z0enBTNUZLSnBMSDU1SVlYem52akxEeDdD?= =?utf-8?B?VlJaOG9wNmJjTzMxR0FkRHdBd29kNkxQYnd2MEpRV1JXYVhsVVlsUGtKTTZy?= =?utf-8?B?akE3aU14d1czaVgwMjFkN0tHUzEzNERYRmg0N3hlR2ZidDJMSi96QXVMcFRM?= =?utf-8?B?L1RIRVAwZHpIdWVrYnlzeWF5UFA0SnJhaUFrRnQwTEY3ZUpQTUNxVGpjK2gr?= =?utf-8?B?VnVsSUhIdVVlUDd6RGlUandOVTNPd1ByQjUrNGtxYVN4aFVxeEh1bTlUTFNt?= =?utf-8?Q?yvqdERCfRiKtYh8e7I=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;6:K8Au/hvN7Zska+b9dAMqKJ/rSsPf36yl6jfhBb5J06Yq0gYz5stMPAx1bxR7VGg1VQxc26cuFpxvYh0StQG0iqgf0IZlJp/l9TlNaFB1q3fC0G/Cw7xiA/g0X6Yqf3cQvecEqUBX48UYiFTD7QXhVXzbvtZxxn0SjJn+hH4egcPz64ruLTZR3Xw6gCzxLYJaHOeuUscxicX4D2MephkvT9rM1xK9y5q2i9JIELjramevO4daAUiXs+GL/JUSk5UpksSpTroEq/0E8Mob6r1PT9/l4D4DGl+fANK2l9uIbop1fGU7ZREo73FQa+PTwxhujh9FFokPcOmy4tqGW+8Ijkm1Ey/OKQtAwqmCVC+MM5D5CBz41jOXcVu9WdmXDCXtuQxXrDckET8DJPm2WXbd0WOuCHTLvMGk1vAzF1AWbDB77C8BLjG+qnLDlZi9NygDvZ6AkEPW8Pht+fyh+g80uq6WJkdvXxEFaxC3KqM1/GaBPJqvH5jcsj7pG+R4JVFADMAC4rA+Zs5wOE+CENyIE50kVdsxWouSsg+CTppcw48= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;5:T/I2rdGAXZo3VvOGzgR1ECvGY01+EHKTGljxEmSU38ImDndBrYXk5VWwdFkiZWelKL72lG2wycEm7l2VhdYxkq02Y4QCF1zTgRh6NHRN1PMbP0NI0vA34i3VYjAejLM6Ld191fSUhADznjzssMLlrLs+wGilCOPdOXblwBlLfbsvpJqj/y0AysU40wEosu5hgl33diMVfHtqrkMmWYs/n3dNXsiZQzdtMJ1kiqjIiPwMKif2NXHl4dS9pFofzwC1zJ+qmJaf0jBkrS1KxYvxe7Hq3bm8Wg3MLX76hB2DmhZt1YplhpKB9XI3Bs+7bu6OW9kGK7ax0OY09MnuvJ6ZrPRJ1tAQkWDK0Cd1AMXSaKt0hdsIm3cPjrPVaCPAyXF6DeY994uXToLu5zLY54pglWg/fjuEXzgFGwZ6/wv08mWbbMrL3b3C7bR7G7grrDl1StN4KRgqpXSG6PdE4B1BqX7tDdsPCipzhgN/3pdwPtuFsXypGsWoGcn0P9diylLl;24:hTBu9rSDwpc7Y8FVAnVSvzu48fFL6GK7cmLa3UWG32XWizJE/0rd+MCPOrcGc+CE7rztV0+VjXuyKjdwSbUC5db5+8LSPlJtU0NXE4V/c94= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;7:o5KNZ1i7v5hQcy7P9p5xHttaOO4ojr7mQaXGuzQzN1BZdTdELzKEoLYH4S1R+DJJZgT5pmC2IYmnoClWtpMq3sMVfzGFyHAMklz8l8Ewdu4ae8maZ5hyORQltgyPGSCPKNAYWL8bkptuexqfuuZNg0K1pnyw7oBQxS03pn0w26Fp1utRiHvurFAFnEae4eZmSls38z5MnwGCLMuHAOQUPHWnLz1wk15VQsNb5S9FIUN4xKiUbkPJ5qzAY1JjXYhxKbXZ6MRhMt1RphB0OQSfjdHCmIffkDbdJZ3/0aCmJVucIFJO/bgxDO67BHEvkp5W8T74ayNqJ0RSOgp7KUJIPg==;20:axYFQvwa1CYeGTBBgYRObZGsJf75ZPdDl6XIdtPpG2uzOZE6QE9SbHV0wAXkR9sTHQ5/MMn+nTSH4S2F2Gz2l21MEDDqThWJcv32eKYfR9MQYQIgRyu/eH62VLUh5WOCtNVwCkG8U5DCKcQzjKMvxPz1yNGIgUZM+3CsV7EUtyFWLWgr66mR1quZeoJM8j4mMglKv70EI2KfK+0SntmuaaAEx02txaph00nCS7+QGKxnec3YX85GAlQ659I3/QAu X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jun 2017 19:14:47.2848 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1142 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Create a pgd_pfn() macro similar to the p[um]d_pfn() macros and then use the p[gum]d_pfn() macros in the p[gum]d_page() macros instead of duplicating the code. Signed-off-by: Tom Lendacky --- arch/x86/include/asm/pgtable.h | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h index f5af95a..96b6b83 100644 --- a/arch/x86/include/asm/pgtable.h +++ b/arch/x86/include/asm/pgtable.h @@ -195,6 +195,11 @@ static inline unsigned long p4d_pfn(p4d_t p4d) return (p4d_val(p4d) & p4d_pfn_mask(p4d)) >> PAGE_SHIFT; } +static inline unsigned long pgd_pfn(pgd_t pgd) +{ + return (pgd_val(pgd) & PTE_PFN_MASK) >> PAGE_SHIFT; +} + static inline int p4d_large(p4d_t p4d) { /* No 512 GiB pages yet */ @@ -699,8 +704,7 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd) * Currently stuck as a macro due to indirect forward reference to * linux/mmzone.h's __section_mem_map_addr() definition: */ -#define pmd_page(pmd) \ - pfn_to_page((pmd_val(pmd) & pmd_pfn_mask(pmd)) >> PAGE_SHIFT) +#define pmd_page(pmd) pfn_to_page(pmd_pfn(pmd)) /* * the pmd page can be thought of an array like this: pmd_t[PTRS_PER_PMD] @@ -768,8 +772,7 @@ static inline unsigned long pud_page_vaddr(pud_t pud) * Currently stuck as a macro due to indirect forward reference to * linux/mmzone.h's __section_mem_map_addr() definition: */ -#define pud_page(pud) \ - pfn_to_page((pud_val(pud) & pud_pfn_mask(pud)) >> PAGE_SHIFT) +#define pud_page(pud) pfn_to_page(pud_pfn(pud)) /* Find an entry in the second-level page table.. */ static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address) @@ -819,8 +822,7 @@ static inline unsigned long p4d_page_vaddr(p4d_t p4d) * Currently stuck as a macro due to indirect forward reference to * linux/mmzone.h's __section_mem_map_addr() definition: */ -#define p4d_page(p4d) \ - pfn_to_page((p4d_val(p4d) & p4d_pfn_mask(p4d)) >> PAGE_SHIFT) +#define p4d_page(p4d) pfn_to_page(p4d_pfn(p4d)) /* Find an entry in the third-level page table.. */ static inline pud_t *pud_offset(p4d_t *p4d, unsigned long address) @@ -854,7 +856,7 @@ static inline unsigned long pgd_page_vaddr(pgd_t pgd) * Currently stuck as a macro due to indirect forward reference to * linux/mmzone.h's __section_mem_map_addr() definition: */ -#define pgd_page(pgd) pfn_to_page(pgd_val(pgd) >> PAGE_SHIFT) +#define pgd_page(pgd) pfn_to_page(pgd_pfn(pgd)) /* to find an entry in a page-table-directory. */ static inline p4d_t *p4d_offset(pgd_t *pgd, unsigned long address)