From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756534AbcANR0s (ORCPT ); Thu, 14 Jan 2016 12:26:48 -0500 Received: from mail-bl2on0094.outbound.protection.outlook.com ([65.55.169.94]:18880 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1755463AbcANR0p (ORCPT ); Thu, 14 Jan 2016 12:26:45 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@caviumnetworks.com; From: Yury Norov To: , , , CC: , , , , , , , , , , , , Subject: [PATCH v6 15/21] arm64: signal: share lp64 signal routines to ilp32 Date: Thu, 14 Jan 2016 20:23:12 +0300 Message-ID: <1452792198-10718-16-git-send-email-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1452792198-10718-1-git-send-email-ynorov@caviumnetworks.com> References: <1452792198-10718-1-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [95.143.213.121] X-ClientProxiedBy: DB5PR02CA0015.eurprd02.prod.outlook.com (25.161.237.25) To DM2PR07MB624.namprd07.prod.outlook.com (10.141.177.154) X-Microsoft-Exchange-Diagnostics: 1;DM2PR07MB624;2:2oigtgcYWabeWFqxnddBLWe6t9DhAxOCd1lZJITYNGC5HhXLnV/Qv/Sr7UVj3U1K5+Y7LJWgIflOPl3hAIMbbCXrquNekVatHoPEJYSu4hFTlL3w42wDx3+pwd17SORwEvjRfQ4nNarWfl4CCBOEzg==;3:U331hzEVxIeeOsQgqKDXX1i+goNdb+GL0KSmS5NzSA1K3ccxFEdnYO68soTkC0o34IaFEu1WS4WLhj0SGhmmsm2/tR4AZZSsc6OklrirN08MZf3Z+HzMDs6r2lOJM46L;25:LGm2GMjwLAjbeed9aiSj7pLKMVivzYpwH4CifH0H+C6sErQcLcqzCLRYebDuHw85UR/cLnMfJpjPZgixJK2FJv3L0A4CFrjnUvy22jhRSCFQrrIKo3gDKKRwK9io8XWvWslidfPcSitX7hF1kLA2gFg90cEN7vjNpXSHZKlODb/51kpHogJ0z61+BqtLosBncKK/nhZ2l6IlM8J45GCCK14/pUjmKPGuukNnfCNXF7B2C/vJ3dzpZGK/iuS+Wilu X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR07MB624; X-MS-Office365-Filtering-Correlation-Id: 78a497b4-5888-402b-6460-08d31d07ded0 X-Microsoft-Exchange-Diagnostics: 1;DM2PR07MB624;20:6IV5t0XSZxWFhuEiaYx0dE/56+7PuS0Rh9zK5sdSAkLWqGv07F++TPw0AUCDpWyQ53fM9h7VQx/C7HpT9pjs6XQEp9GhxJ+1VZAufbjfDqbYzJAujyrdZkr9Jg2IGafWUw6pzFNsvXhgNR+OjBGHrhKcjyZX1MYeQ7AqDJ2u27mDNVnaECv/iJc0Yb/aWUFvxkfMdultZXFcgxANqsEj6IodoQPA/GC7nQShjyBXVsRQG6KmgU0B51o6ij3fEje4fCcaZ9Up3A6PjEO54xRqx0eNdC028nmcTzZh85Wbqc1Seo3YNdkSU6eLdB3oWr9j6TbrYIy5u6vsl1+I3DrGf4sSUdutIu16YbOjtZybUve9hciDkA8ZZ9rzJkrJZYVOWM+aON86FBoCl4zjARN/gnVSaOo5C3l5Czn4IWFqdrk2nVQPUuHlj9QZ3hBS1SJ99N3iR5nIAQdVkk8R9EEy+gatIMs7G17GT2LfC+cp2rR6wFlC6wWdrb9dDLsrVPDTx490ehUq+QTeSy6TRsjnWDuxTuOAgoGVzAaNOA002XbO9Qw5PE/NmhpyZdClAI58uS0CUmOAxVVU13mXzXzYJsK4HSS1CicsZEzWJ1HTVU8= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236414709691187); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(520078)(3002001)(10201501046);SRVR:DM2PR07MB624;BCL:0;PCL:0;RULEID:;SRVR:DM2PR07MB624; X-Microsoft-Exchange-Diagnostics: 1;DM2PR07MB624;4:r8Oz+c8rcHu89YrCdkX8BhYgT2/CdXD+rznKqOhKnN8ncxzuyVGLCv0/yNW58Mspd+mgf9R41rEmJOytSYeYoKP1ruLaF1C2h2zDw6a7QjAGUSrOrWny3Dnl8jL0wOgvu2XRoZxhu2sP6wSGT3oYjHS3r64HWfXSOWQGi9a2pvoCOD/QktCvEbmhTra+lUHi4Ma6TC7QQRhPe2zgGYsngCvncsZRz0VvTAnl8Wtz1uLCODaxlu7zoMmpYsh6N+/itoB55lAn1Kp9HAw0PJ/2gmH1ZAOjDcIU5vJtdBVo+rE7EE3DgBbp2xgByuAKFYb7su7K1R6aCGD7EqnqpGhQDBW2Ux5dP6m71qbqbW5bpC3IEOnu22JkVsdEZc7EzfecwvyQQjitV18u0hwiq+IFHrve0YBjgGXPDbRTNkd846E= X-Forefront-PRVS: 08213D42D3 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(6069001)(199003)(189002)(36756003)(81156007)(1096002)(42186005)(19580405001)(66066001)(19580395003)(15975445007)(106356001)(50986999)(2201001)(87976001)(586003)(101416001)(105586002)(47776003)(77096005)(97736004)(189998001)(76506005)(4326007)(76176999)(33646002)(50226001)(50466002)(5008740100001)(5001960100002)(92566002)(2906002)(5001770100001)(122386002)(229853001)(3846002)(40100003)(6116002)(2950100001)(5004730100002)(5003940100001)(48376002)(2004002)(2101003);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR07MB624;H:localhost;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR07MB624;23:JHYTSQA9BSOK+A0txUFElhtwHbUajDPOpjZmP8vhk4?= =?us-ascii?Q?wudGKzHX9yooEzlxebB1jT01eOxqNce6DHaxo4CgEZtSZfgLv9PtgpcJK7dP?= =?us-ascii?Q?NO0pWIzEJNkOLSkjv8BUKrN0JH90dQjZnyv9ISGlxMNvTYJl+B5cwRt2M8jP?= =?us-ascii?Q?8A1bi5jKxc5NTx4CNzQgO5pbhbigFHkXAjG7nH5hM1SswUGTTaWRqygEI104?= =?us-ascii?Q?nOVHAIIOpMIZhWTuaa8I62MFXUd/iICnP5xtArYXVzqYbZVd+tQ7ELU7sklZ?= =?us-ascii?Q?fYI+ldaqrcZ1CgzbX/8FGvrvSJ0PyF9PZ8zuL+NxFes2KJIeTdYpdfQNKxXU?= =?us-ascii?Q?Ad1Wwqk1axkhtqWeMcKxV4H6geOsOVa7csflSFCY5rHBys1/n5N6/9v2F1fm?= =?us-ascii?Q?7w1utwj/E1YZxoCxSaFFtnDCxQSw0sPXsMkIPidyEWsvy7hSHbsojKIgREAf?= =?us-ascii?Q?O8oVIkbFAZzqUGULJC2qlRGG6+DzKt3Txo/Nu+UIebBUkTYM4eJKwVdN81Fa?= =?us-ascii?Q?/mrEjE08y/YLV9Uad0PrCzYvPRTR1algsj9tP4suTdMNlk6fWR2iSZkZ07EG?= =?us-ascii?Q?BDLOooRRabINiiRNKGqKrjmA7UzE7aBMlm+2K92fvgYTjUIexvFTCKld6F1l?= =?us-ascii?Q?alUPtBHqON35FB/zMNn2D04eo1y5LzOhJxUiHKOcn+G2BFaKIMxq+YKHr8SY?= =?us-ascii?Q?W1XqMLuqM+5fff+GQ95C6xUlTZYqYPsXjg6uqtL928DCmJLuawsq4MSEjBv0?= =?us-ascii?Q?vzImHm3Zx3b5vk/akDXA9Vko3Ozmef5RzOO7ZGVYiQZwuwUsF3/JimiWDnrh?= =?us-ascii?Q?jHDKCCkwiNMiU+jQt3MDWsF8CglPiup5OPxDCZyOXwwinFU2YPvRWwe7XHUR?= =?us-ascii?Q?gtmWNy9+lVwt0OYRCEBsM97PmB3NysUvpPaNV4cwd0Mu7R15peb2G+XhRQnT?= =?us-ascii?Q?8VEd5EA7WEBBFEfz82QZ+pu6+yt4BjUM8kvTM0IbWz+je8zDbN4n7stQ5lfM?= =?us-ascii?Q?1qgu7ufmNZ+HJ7w9GNRlM2FWj1lwd91qQLb0ZBrkfDNxvvm/2kRr7Ctsr5jE?= =?us-ascii?Q?pCq3LHl3+hzq99CYCjq6EPpsM58jvWldUM/sMxJ3J52R6cWaNQ3BVpQBL3z5?= =?us-ascii?Q?mOsWwHdY/gXmE9+s/5OztvC/65uCtjms3LivZp7zRKpWDoiH+vCw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR07MB624;5:kngdDiBsXQuoSnb1bUUU6eV+WpxJrqSVavG+u9O+Gm07QnBTqu/v7FxopDMHJ66hhnQ2VFSUSPgWRBIl0ZaubHGNFW51T4nEnNngRyQYmX4AsiWTw2NzrrI3inUiHsKE0XshpVIdZQjwwd9d1l2kiA==;24:sQODXaXh/CksxHxbs8IJJBbkF5fSthF51ryOctjnXTCIxdpudOBmsYemyPh4BHMKd7g+P6lMuVpXW0ydPfmqSsQBkV/YPj/Y6bU2r1VVcxQ= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jan 2016 17:26:41.3609 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR07MB624 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org After that, it will be possible to reuse it in ilp32. Signed-off-by: Yury Norov --- arch/arm64/include/asm/signal_common.h | 39 ++++++++++++++++++++++++++++++++++ arch/arm64/kernel/signal.c | 17 ++++++--------- 2 files changed, 45 insertions(+), 11 deletions(-) create mode 100644 arch/arm64/include/asm/signal_common.h diff --git a/arch/arm64/include/asm/signal_common.h b/arch/arm64/include/asm/signal_common.h new file mode 100644 index 0000000..faa82c0 --- /dev/null +++ b/arch/arm64/include/asm/signal_common.h @@ -0,0 +1,39 @@ +/* + * Copyright (C) 1995-2009 Russell King + * Copyright (C) 2012 ARM Ltd. + * Copyright (C) 2016 Cavium Networks. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef __ASM_SIGNAL_COMMON_H +#define __ASM_SIGNAL_COMMON_H + +#include +#include +#include + +struct sigframe { + struct ucontext uc; + u64 fp; + u64 lr; +}; + +int preserve_fpsimd_context(struct fpsimd_context __user *ctx); +int restore_fpsimd_context(struct fpsimd_context __user *ctx); +int setup_sigframe(struct sigframe __user *sf, struct pt_regs *regs, sigset_t *set); +int restore_sigframe(struct pt_regs *regs, struct sigframe __user *sf); +void setup_return(struct pt_regs *regs, struct k_sigaction *ka, + void __user *frame, off_t sigframe_off, int usig); + +#endif /* __ASM_SIGNAL_COMMON_H */ diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c index 20dca65..a742a61 100644 --- a/arch/arm64/kernel/signal.c +++ b/arch/arm64/kernel/signal.c @@ -34,12 +34,7 @@ #include #include #include - -struct sigframe { - struct ucontext uc; - u64 fp; - u64 lr; -}; +#include /* * Do a signal return; undo the signal stack. These are aligned to 128-bit. @@ -49,7 +44,7 @@ struct rt_sigframe { struct sigframe sig; }; -static int preserve_fpsimd_context(struct fpsimd_context __user *ctx) +int preserve_fpsimd_context(struct fpsimd_context __user *ctx) { struct fpsimd_state *fpsimd = ¤t->thread.fpsimd_state; int err; @@ -69,7 +64,7 @@ static int preserve_fpsimd_context(struct fpsimd_context __user *ctx) return err ? -EFAULT : 0; } -static int restore_fpsimd_context(struct fpsimd_context __user *ctx) +int restore_fpsimd_context(struct fpsimd_context __user *ctx) { struct fpsimd_state fpsimd; __u32 magic, size; @@ -96,7 +91,7 @@ static int restore_fpsimd_context(struct fpsimd_context __user *ctx) return err ? -EFAULT : 0; } -static int restore_sigframe(struct pt_regs *regs, +int restore_sigframe(struct pt_regs *regs, struct sigframe __user *sf) { sigset_t set; @@ -166,7 +161,7 @@ badframe: return 0; } -static int setup_sigframe(struct sigframe __user *sf, +int setup_sigframe(struct sigframe __user *sf, struct pt_regs *regs, sigset_t *set) { int i, err = 0; @@ -233,7 +228,7 @@ static struct rt_sigframe __user *get_sigframe(struct ksignal *ksig, return frame; } -static void setup_return(struct pt_regs *regs, struct k_sigaction *ka, +void setup_return(struct pt_regs *regs, struct k_sigaction *ka, void __user *frame, off_t sigframe_off, int usig) { __sigrestore_t sigtramp; -- 2.5.0