From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755135AbcEQJPi (ORCPT ); Tue, 17 May 2016 05:15:38 -0400 Received: from eu-smtp-delivery-143.mimecast.com ([146.101.78.143]:43375 "EHLO eu-smtp-delivery-143.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754555AbcEQJPf convert rfc822-to-8bit (ORCPT ); Tue, 17 May 2016 05:15:35 -0400 Date: Tue, 17 May 2016 17:14:47 +0800 From: Huang Shijie To: David Long CC: Catalin Marinas , Will Deacon , Sandeepa Prabhu , William Cohen , Pratyush Anand , Steve Capper , , , Marc Zyngier , Mark Rutland , Petr Mladek , Viresh Kumar , John Blackwood , Feng Kan , Zi Shen Lim , Dave P Martin , Yang Shi , Vladimir Murzin , Kees Cook , "Suzuki K. Poulose" , Mark Brown , Alex =?iso-8859-1?Q?Benn=E9e?= , Ard Biesheuvel , Greg Kroah-Hartman , Mark Salyzyn , James Morse , Christoffer Dall , Andrew Morton , Robin Murphy , Jens Wiklander , Balamurugan Shanmugam , Subject: Re: [PATCH v12 01/10] arm64: Add HAVE_REGS_AND_STACK_ACCESS_API feature Message-ID: <20160517091446.GB5082@sha-win-210.asiapac.arm.com> References: <1461783185-9056-1-git-send-email-dave.long@linaro.org> <1461783185-9056-2-git-send-email-dave.long@linaro.org> MIME-Version: 1.0 In-Reply-To: <1461783185-9056-2-git-send-email-dave.long@linaro.org> User-Agent: Mutt/1.6.0 (2016-04-01) X-Originating-IP: [101.230.208.200] X-ClientProxiedBy: OS2PR01CA0008.jpnprd01.prod.outlook.com (10.161.74.146) To AM2PR08MB0498.eurprd08.prod.outlook.com (10.163.148.26) X-MS-Office365-Filtering-Correlation-Id: 28374c05-46ff-4578-894c-08d37e33c998 X-Microsoft-Exchange-Diagnostics: 1;AM2PR08MB0498;2:yzi59zU7x5GmkLdZbtZmTg9QLN3dsWEVhjVdvFaV/Vrz/rc1ERy/U0bZ+l2wJ0eHRphl5JSWNT5HPJq+NMlPP0i3+R0ypd5uF4zFf/AqHQqjFbEN8asLi304mpYClSapQ8RJ6zegn50AyeNxucdF+a2tw6s4DBwtjbfdtGJAiKsOwg1JoRcs5bIdzl8dKRCn;3:x581y7R0Pwm8ci5wvTU+0bCYdvluMTWZaL+BI4pEKBMnmUT6g9z2MF2OpVTj6spH+/wZJ0XIhHSfWM105scNC+G+gGc5Uc7NGmhu206cLZMbARduNr27TL4IziR55aI5;25:v8niR9ZjD53a7WGrERDL00g2aryDv9iyl6G+XGAfzX06CXBmBHsUKnJT5an6YUQYKms6SHH1PnnQ0Oxh98tr4uIF/T1fheZ+0HeP+WeLT+u+3CKIKmlsrJmB/AubcThtVmMQ9EP+pDloa8Cat6K4oJD4A03qm2yQQ4g7fvtkXemCEf/WLe8ikxYGVonav2YhAz/U4XuicyerAduyFnBRx1eJ3rmPYb8SDE4VK51j8xVfrN9Itga7gsMlvqhNT7eLiDQIajqAgReE2BhXcs3sPb5YxgiX1rJvjA3yuUtlnJBbHgTq5A9dXm5JCtRdf8Xx+zHm/pqsKP3CZrYGJFV9pdBwKO2lzyXfOc/cxK2fjFGzp4rGNQ85Zlpd/kYXjCIZq4QE3IH0UQ/tEZ2v6Wv1NAGUmgWCcN9MU9hEtn103VY=;20:IiCckprOPLsciRu1hIcv3SQdwENUIn2eanU+lBcAQ0PrnTVa3uBXjVIzn4Pc5l4wFM0beblDzuLUI0lB/GGG7zVprSETKQTcJ+WTr/VERTfFkL3efAtx0IzlGbwNtXZExilF7L+2n4tAVTouTHmhZgtsQg74OsnDDAJQqrm0MEk= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM2PR08MB0498; NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026);SRVR:AM2PR08MB0498;BCL:0;PCL:0;RULEID:;SRVR:AM2PR08MB0498; X-Microsoft-Exchange-Diagnostics: 1;AM2PR08MB0498;4:MCHjLKzvN7MpJ3DPAgNG11Kj8u908eqeXKpXm96lp07NdhtXnv/Cqdoe6S6/hJw3H5Q17V4ZZe0yPXY5uQUNhx550iAKroUZHigrBw/aq88QUs6pg2Hqdyv+oiV/xAo5jaobQDTEsB4hZS/RjB5x5u1ZdKJqR+FjJCHYbrCF5HvTx3s/Tbq/x5KZyS51TR5+nQh8+aJpcctO9YqJxa8UTT+kR3g22JPRLALWBGDRDEyOhCd33qyiptuwdeUUr1ISUNykUce4oLIh1ZpRN8lKJpfYlYA1XjvOYNbG+RX+zV9ZFpykC/Qer1EYTokRz2Apl3hXeK4/qL5iyJCL846ws8p65CugiwPIdHtVRi5qL3W/NxgzTPSwhOpVrSqCQy5Y+f0zBMk7Lc+mhWAbY5it4Q== X-Forefront-PRVS: 0945B0CC72 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(24454002)(77096005)(50986999)(54356999)(76176999)(19580405001)(19580395003)(50466002)(2906002)(5004730100002)(2950100001)(4001350100001)(92566002)(46406003)(42186005)(586003)(6116002)(189998001)(4326007)(8676002)(47776003)(33656002)(97756001)(86362001)(66066001)(110136002)(5008740100001)(81166006)(3846002)(23726003)(1076002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM2PR08MB0498;H:sha-win-210.asiapac.arm.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;AM2PR08MB0498;23:aUw0j38qpVJBHNMkP9Qqm9WwYS+nLD+ZM9IZjyRD/z+htkOwlTnD+UFWlKpcIWAJ+TWJJpcWiRntRpHvfgRjV4dRlhYVeOCyvYH61TtBU02zO2pgtr6hvdWqXx9B4262UJv60ZqALbPYVQrYWkvuf+5FXR/SC2OPp5/71tk5HLBSkWQKdzHNRu0PFDVLxTdQBnIMdTVGFISZ+uIMhjfFgxle4fHIfmu48buG2PtPJYg+s5J90Wo3Xx1300aHUY7lKost8WGVSowe0/jrqYWaDo2g7Hev76/FdgT7R6aatQtVW1aUPDqwO1AD1MVe+ioC8SGM/U4yNtQxYO0wnRmSLKWUrd0WgAq5tUVmPvIQ0l+EDqsxDIvn85aPAFU5phP2Ocv30/+FsplvAt0hLzOVEpATHQ4BaiUJjYaMkY8WfBLNV7ANyVSFxi+phAzv0biPbTDH546GuI4h0ZuCQRRgHwguqEwUHCexWQzB4oOnYCN0cJGlaVfsjVyjkjAFM+CaSHLo9RpQ8jixqG2cE9N/VmDTy9/HseGarz3IdN7cSW5YcpZfgvAVoiXZeZw9Ku8KEv/2G3yA3bR0SpbZCzBozXpEcJ5Nrk18r6J0vdoSNGNGYDNZkqBkvd88wuwYteW7VMQOnjU7g4fjxD8yy8xtoo2lrJ6/Vr2BVDnViyK659HfCPXGh66C+0ZsTyYzSeRwaIvg2Sqp4p09gby2A/ykWdQYdIDlzjXBuoERmO9vX1GHviMMQyUQq7G6ITfSTlORmDnPKGTzQn3ffmjk9YLbsElpRD74wvCiPTrdyBEXTGgdU6h1wj8xYSFCcA1G2sypWOEfn54V+FAhHr0na60TIR/4+MK/Yf0eT66ALyabSbnwkwurGxw3es9j9gZ0MMzZpc5/SPIipu0uSYrAaIlEbg== X-Microsoft-Exchange-Diagnostics: 1;AM2PR08MB0498;5:MWksBcJtcryy/H1BQqmo1il7UkXs1UgkIU0MpvzUw1gG+fFLQvTjF5xWJpcMgSJeHEjUu5m9wQDkvVy5hEUXZkG58qRh+jpWr+UC/R+/6K8w7Ee/dXhDU0LlQUVLUhkMR5ESPBV5X70qsLfhamEPsA==;24:Hkbd53K8NPuvBqf3wToaZRbkco+vTp2G6wDG6+UUluQB6u8X3SqhT+CY1ViNziql8bJ/fTgHNvEntOW1l2QMD2DWZ/WH6xxXMD/LPt4Z7Aw=;7:U60GCkvkciHgp5+O2nkndd9zZ8ZJ59NTHXVCS0n62Y7ByWG2REqWN0EMed3nDBwGIPyPOlwcXIcs5VNGko7Rm/Nl2PJuGpF2IHTSUHlblpOS18aFahf0WeZbt1H+8ARtCHaOWQP4jMTToK7tG1oS3QNymRper57ckaXmNNFmm/LX8AO26Y1iCoIyaWg/isto;20:GplrAyh+XPzNBgNSIytlZho5IBaMGGIturiKDK47MJWLoJyoKFREuSP4DHV4mgEhTex/n1yU1YVnQnYT9+2Pn8/jKBtODKa2c5Mup4aERrg+JKdvXTB5HRf1cALS0bFE4t4WYE9LwHhJUnRm+pGEiIjiAYIgbhAr+VsEbaY6O+I= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2016 09:15:15.2528 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM2PR08MB0498 X-MC-Unique: u7_xWPO9R4q4nwS0S_wWDg-1 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: 8BIT Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 27, 2016 at 02:52:56PM -0400, David Long wrote: > From: "David A. Long" > +/** > + * regs_within_kernel_stack() - check the address in the stack > + * @regs: pt_regs which contains kernel stack pointer. > + * @addr: address which is checked. > + * > + * regs_within_kernel_stack() checks @addr is within the kernel stack page(s). > + * If @addr is within the kernel stack, it returns true. If not, returns false. > + */ > +bool regs_within_kernel_stack(struct pt_regs *regs, unsigned long addr) > +{ > + return ((addr & ~(THREAD_SIZE - 1)) == > + (kernel_stack_pointer(regs) & ~(THREAD_SIZE - 1))) || > + on_irq_stack(addr, raw_smp_processor_id()); > +} > + > +/** > + * regs_get_kernel_stack_nth() - get Nth entry of the stack > + * @regs: pt_regs which contains kernel stack pointer. > + * @n: stack entry number. > + * > + * regs_get_kernel_stack_nth() returns @n th entry of the kernel stack which > + * is specified by @regs. If the @n th entry is NOT in the kernel stack, > + * this returns 0. > + */ > +unsigned long regs_get_kernel_stack_nth(struct pt_regs *regs, unsigned int n) > +{ > + unsigned long *addr = (unsigned long *)kernel_stack_pointer(regs); > + > + addr += n; > + if (regs_within_kernel_stack(regs, (unsigned long)addr)) If the @addr fall in the interrupt stack, the regs_within_kernel_stack() will return true. But Is it what we want? thanks Huang Shijie