From patchwork Fri Jan 21 16:30:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe Leroy X-Patchwork-Id: 1582650 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org (client-ip=2404:9400:2:0:216:3eff:fee1:b9f1; helo=lists.ozlabs.org; envelope-from=linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org; receiver=) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2404:9400:2:0:216:3eff:fee1:b9f1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JgPyg5KLSz9sCD for ; Sat, 22 Jan 2022 03:31:23 +1100 (AEDT) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4JgPyg4FRpz3cGl for ; Sat, 22 Jan 2022 03:31:23 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=csgroup.eu (client-ip=2a01:111:f400:7e19::622; helo=fra01-mr2-obe.outbound.protection.outlook.com; envelope-from=christophe.leroy@csgroup.eu; receiver=) Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01on0622.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e19::622]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4JgPxz68pjz30Qt for ; Sat, 22 Jan 2022 03:30:45 +1100 (AEDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hpoAjLInWlTQmqYs6jx6ubpyxLTh88D4z+h1iOKf9Ntx1NguUQB0lVStCK92+7lAvHzHG3d64rq4vWUneGD1t8rcynCmUUpk2GzKtx6+vF9A+DrGqUrg6WLColFfnNbw8mLD9LsrSPC64L+NkG1VwfYtf0l67/ccuqNwyV8tg3cQgjKCXjtFFlT4e7/1207TNJCmetBs7ec8TKRbZFhxVHKREhFtxYxQ10Bg1YisK4afFGFfHiu609fPwKNeLIRGjCnVrsPrzqZyFn7qhoNxJKiLbS5wW4p43bCOB4yBpmbEC1BLCUuPrPL2pBPbobNe1IzkXBliKvI1mABHx7suUw== 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=JD04R82x84zl7tSQ6t9ZKg+qT3Wu9XlJqadQMBjmzJM=; b=YMsLbAOF4VIidNEbP1DrSZslaKlfNMs0Y3WQqQ4YUegIeVjGidI0SuW/0EqS5hiuGGqlWn7vcESa8BzhMNFbTP1gXZ5lKueNbjQlBDjMjY46JBmn/ZdE6Ehuxmzq6rq5oGxcAFSH1HUT6/R0bADV+HgXlA9cYH519H/gxcRiA0e3kqdQtI8plEfL/UstP4qEDNMPzWIt30ILUv038Ymscwf47kGjDj2Q8nwtNypASsYt+XW3jPK5t4T952yTXJ7uHVvbiDyjmSsJHkmXRAONC7t4oO/gB4guxCan0CLyJEqIiI7zZmkKnqXDYZtdb3TDhV6hlggNmiXgwcDVUbbh/Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:31::15) by MR2P264MB0900.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:10::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.7; Fri, 21 Jan 2022 16:30:21 +0000 Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::9d4f:1090:9b36:3fc5]) by MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::9d4f:1090:9b36:3fc5%5]) with mapi id 15.20.4909.008; Fri, 21 Jan 2022 16:30:21 +0000 From: Christophe Leroy To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , "masahiroy@kernel.org" Subject: [PATCH v4 1/5] powerpc/vdso: augment VDSO32 functions to support 64 bits build Thread-Topic: [PATCH v4 1/5] powerpc/vdso: augment VDSO32 functions to support 64 bits build Thread-Index: AQHYDuQvGc9XpqFUPk2tWKRqUfvjIw== Date: Fri, 21 Jan 2022 16:30:21 +0000 Message-ID: Accept-Language: fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=csgroup.eu; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7ed3f637-607c-4912-e9ca-08d9dcfb5186 x-ms-traffictypediagnostic: MR2P264MB0900:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7691; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +dUfDPXsDs1x6YThf8hP+K4kaglVA45EIVDKoeUnswOiUMQ5FWZTeBTe8kWBcoAguIb84Xb8RnGcqDNSDJ5lfvvWG0tyGRiceHsKq8ysro+18I+wbhdvcZKtHq26KF6MMeToH1TAD+mBV4NLXl/2tYA0kriQ/qxEUgkw4Dd9A/24TmKsBidGGRDCbnW2gzHrlQroO1JR/s8GmuCusykWi/xNCss1WQiukBFwPXv0BfR0TgnCeJRtYS5Z5bGcMmmgtUVb8Ki7NaMPTro340buJaT/IkEO+WPkCuLh0lfhYUtV1NFAAL57LQikjWS67b4S93paQ1cxvi+fwOyYHY8MZY/ZOCNdJUbnrC83vhOvr6B3Iotu0rNia8oOxgK79ca0BMPCUEWLLnb+jqaEqYtd/2mriPQCYQr+5L5aMBi/lAMM8FQmwaTToY2rUwiTGEwqc724meFMwAQT4CxlJfBiv/Sr2tpWwmpdONAZ8xD116mTloxSHhCzCo4AcFGb1Gm2VefpZAc5CUcq2MLib6OFbDhk5HH8sUs1BHTNZvLdhCI1GndRZlnzUjHMOSdrKvM4i4teuIQN4wgYWesbl0VGcx5Y2qpq49O9+iRfXyyQwGjL7suNT+02loaCA8Ae2in3XNPzcqFGPncnsVkFtzlCnSKDcsqvJ13IqVqM9cv2OlkYYtsFWFWAQLI3Od8zvh0xgcbF+m4mlqAQumZRnoNjNA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(366004)(76116006)(38100700002)(26005)(2906002)(6512007)(186003)(5660300002)(6486002)(122000001)(2616005)(44832011)(86362001)(91956017)(36756003)(71200400001)(83380400001)(6506007)(8676002)(54906003)(316002)(110136005)(38070700005)(66946007)(508600001)(4326008)(64756008)(8936002)(66446008)(66556008)(66476007); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?2ndUnKEpMp3FXUSJ8BzAusa?= =?iso-8859-1?q?/w6sR/iytcZ8DHY9+aMHK/M2Zl0PrWqyCxu+Xcp2xPgo6EJneDLCRxxFCJHt?= =?iso-8859-1?q?jESNGKjbDykNxwXwwJ6Aeh2OJ36nAl1coPVUQoRjxyZgL/3Dv+SK1kRtX9Gc?= =?iso-8859-1?q?MAGsOjFPw+R2oAfNs1G4FQfqZfHhI2+LydoOQ7EcD9+C79hRVlgOk/RaB8/v?= =?iso-8859-1?q?L25ql2bwDOxt/Tg+y/T8EjPVbPNM4wY2JSu61sz+BvHLcDhS87lxIFnf+2bI?= =?iso-8859-1?q?vL4srksCpzcSeZJ+K9UK7I5nvXkDHbsWmx0qoHEPn5bc9RNbl6jMLLCEkWNt?= =?iso-8859-1?q?kzf8kwvsmam8Q7O5EnfPMAC68xter6BnHzj9aKA0knbhT6WY40ANYzoi+pS1?= =?iso-8859-1?q?M76zwOzVXk4Um7mb0XKAHnvXkf9MNy80Xm42KWuLFOh2Fal4i4mS0sSnGyar?= =?iso-8859-1?q?R4R2al1MKWVWc0AQ5OpY3kYyvuRdgGiWKqP084YuGtv+aMLdSovn7Iy5Ha6q?= =?iso-8859-1?q?5vdyjtYqwp6dZTajxL4ABIoK2M0Uut+Hx/BPK/90GvMz8fCtPldqcY7zxHFs?= =?iso-8859-1?q?XQNfTsB0P526DCq5b2UgUhRfXng07cqG7vYhFm6NzZsS3ErNGt9OlMzabO62?= =?iso-8859-1?q?PGAYo6/VKmvWmHsovQpPsafml4uDuMS/Omz7RGJSiQdUMdRqQvcGTTbO2yzt?= =?iso-8859-1?q?E6yJSuLjIFqAzLoiliOX3Yq7Hbd7xOwZPIV3VmaM/+iDBuKtU/2lbn2kWNqb?= =?iso-8859-1?q?zSgI/Lbc3CMggzMQ1uzO8iIRM3vwqM0GBrRlrk5vw2UUcnv3EVQSKhlST4cZ?= =?iso-8859-1?q?naZIbN4HQnr0Td80wsOIqqhN1ChMTe9Ar8a4f3/k/XZLu2xYnH6aERorbQNt?= =?iso-8859-1?q?P3m+WglrJepcYT2cpiKGAL+CjBAHzJjaTCaFmeO2jxILDyPbr5hPHc4Bb0ic?= =?iso-8859-1?q?WssLBjcV0547ebVmKv1KrnRhYAllS1XiEfZBpVHzvTdG8DjLgd39x59t6lyU?= =?iso-8859-1?q?OzCkmAXtiYXw4b7nXnBRqVd0paA1CIce0iQcOlO77D+v5AL/kYDH04uda0A5?= =?iso-8859-1?q?XK/GfPq50Aqi0nl4gPyKeQ4aDqceW9wcXAWa0WKF+DRXclLdwMSmvEDlTc2t?= =?iso-8859-1?q?zcOK5jjf36cBDVv6TrPIrDyLSXxpGHIdixxZ11SUS/VqWANO4sXQNxqp/J/5?= =?iso-8859-1?q?2WT7IM634FIKpDVqOLqHju498dxMBIeravki3lz9swNQquMyjDRdUjTmqfFU?= =?iso-8859-1?q?f4lczLLgkAMti0CiCIgIvVkjUu5/QUhbHiWTlhZsubFYfKFbkw3xthy69Ul2?= =?iso-8859-1?q?orK7zOBy3NSfJqps5sBNV4xzVMwLJGRe1tt5mIkBKy/xnj1QfRTIFfmgN5xO?= =?iso-8859-1?q?LkT9zauwm/hqkq2QPCXjSZWCKRVbmWA2/UTC9mehcZLDwMcHjhBFQSBeH5Es?= =?iso-8859-1?q?OI8accrHB0/SgoReaKcYUcREzYLe6VHNC8nvuxlgozJgIm63I9kKh0X3y1nv?= =?iso-8859-1?q?jmUIk+6XgO2B5LWurGWh8V2hUqUJgRGx7cheAq7HombOfzHqId8hx0fj4dvs?= =?iso-8859-1?q?TOUjqCbI/PtkAhVHXaeYZSUxYl3ThYmIeDW/9tYToG8tOkwLdcbdvf6t4nEA?= =?iso-8859-1?q?MHLfKaEDPFZGPbf95q6FiQM9kkx3vQR4m72Ol10CiCTd1kT0/3XlF75N3iry?= =?iso-8859-1?q?qwgQJuKjrw3wUbLKV1rB40W7/54x9j1XOLGO3mLGXUWmuAT2BZ2odNvaktp6?= =?iso-8859-1?q?lcp8=3D?= MIME-Version: 1.0 X-OriginatorOrg: csgroup.eu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 7ed3f637-607c-4912-e9ca-08d9dcfb5186 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2022 16:30:21.1709 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9914def7-b676-4fda-8815-5d49fb3b45c8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: fYctQ7VBDnk95iwH/LMBKPbAyxvpcKu1HeyRwLeK4lqCz0l8LRKBZw6DbyiQ0wMdNRqKwkWm4XuvgmYMABdZJI1/Jo8nzX4vEr3op7oA+DM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MR2P264MB0900 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "linuxppc-dev@lists.ozlabs.org" , "linux-kernel@vger.kernel.org" Errors-To: linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" VDSO64 cacheflush.S datapage.S gettimeofday.S and vgettimeofday.c are very similar to their VDSO32 counterpart. VDSO32 counterpart is already more complete than the VDSO64 version as it supports both PPC32 vdso and 32 bits VDSO for PPC64. Use compat macros wherever necessary in PPC32 files so that they can also be used to build VDSO64. vdso64/note.S is already a link to vdso32/note.S so no change is required. Signed-off-by: Christophe Leroy --- arch/powerpc/include/asm/asm-compat.h | 2 ++ arch/powerpc/kernel/vdso32/cacheflush.S | 4 ++-- arch/powerpc/kernel/vdso32/datapage.S | 10 ++++++++-- arch/powerpc/kernel/vdso32/getcpu.S | 4 ++-- arch/powerpc/kernel/vdso32/gettimeofday.S | 8 ++++++-- arch/powerpc/kernel/vdso32/vgettimeofday.c | 23 ++++++++++++++++++---- 6 files changed, 39 insertions(+), 12 deletions(-) diff --git a/arch/powerpc/include/asm/asm-compat.h b/arch/powerpc/include/asm/asm-compat.h index 2b736d9fbb1b..2bc53c646ccd 100644 --- a/arch/powerpc/include/asm/asm-compat.h +++ b/arch/powerpc/include/asm/asm-compat.h @@ -21,6 +21,7 @@ #define PPC_STLCX stringify_in_c(stdcx.) #define PPC_CNTLZL stringify_in_c(cntlzd) #define PPC_MTOCRF(FXM, RS) MTOCRF((FXM), RS) +#define PPC_SRL stringify_in_c(srd) #define PPC_LR_STKOFF 16 #define PPC_MIN_STKFRM 112 @@ -54,6 +55,7 @@ #define PPC_STLCX stringify_in_c(stwcx.) #define PPC_CNTLZL stringify_in_c(cntlzw) #define PPC_MTOCRF stringify_in_c(mtcrf) +#define PPC_SRL stringify_in_c(srw) #define PPC_LR_STKOFF 4 #define PPC_MIN_STKFRM 16 diff --git a/arch/powerpc/kernel/vdso32/cacheflush.S b/arch/powerpc/kernel/vdso32/cacheflush.S index f340e82d1981..d4e43ab2d5df 100644 --- a/arch/powerpc/kernel/vdso32/cacheflush.S +++ b/arch/powerpc/kernel/vdso32/cacheflush.S @@ -46,7 +46,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE) add r8,r8,r5 /* ensure we get enough */ #ifdef CONFIG_PPC64 lwz r9,CFG_DCACHE_LOGBLOCKSZ(r10) - srw. r8,r8,r9 /* compute line count */ + PPC_SRL. r8,r8,r9 /* compute line count */ #else srwi. r8, r8, L1_CACHE_SHIFT mr r7, r6 @@ -72,7 +72,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE) subf r8,r6,r4 /* compute length */ add r8,r8,r5 lwz r9,CFG_ICACHE_LOGBLOCKSZ(r10) - srw. r8,r8,r9 /* compute line count */ + PPC_SRL. r8,r8,r9 /* compute line count */ crclr cr0*4+so beqlr /* nothing to do? */ #endif diff --git a/arch/powerpc/kernel/vdso32/datapage.S b/arch/powerpc/kernel/vdso32/datapage.S index 65244416ab94..db8e167f0166 100644 --- a/arch/powerpc/kernel/vdso32/datapage.S +++ b/arch/powerpc/kernel/vdso32/datapage.S @@ -30,11 +30,15 @@ V_FUNCTION_BEGIN(__kernel_get_syscall_map) mr. r4,r3 get_datapage r3 mtlr r12 +#ifdef __powerpc64__ + addi r3,r3,CFG_SYSCALL_MAP64 +#else addi r3,r3,CFG_SYSCALL_MAP32 +#endif + crclr cr0*4+so beqlr li r0,NR_syscalls stw r0,0(r4) - crclr cr0*4+so blr .cfi_endproc V_FUNCTION_END(__kernel_get_syscall_map) @@ -49,8 +53,10 @@ V_FUNCTION_BEGIN(__kernel_get_tbfreq) mflr r12 .cfi_register lr,r12 get_datapage r3 +#ifndef __powerpc64__ lwz r4,(CFG_TB_TICKS_PER_SEC + 4)(r3) - lwz r3,CFG_TB_TICKS_PER_SEC(r3) +#endif + PPC_LL r3,CFG_TB_TICKS_PER_SEC(r3) mtlr r12 crclr cr0*4+so blr diff --git a/arch/powerpc/kernel/vdso32/getcpu.S b/arch/powerpc/kernel/vdso32/getcpu.S index ff5e214fec41..8e08ccf19062 100644 --- a/arch/powerpc/kernel/vdso32/getcpu.S +++ b/arch/powerpc/kernel/vdso32/getcpu.S @@ -19,8 +19,8 @@ V_FUNCTION_BEGIN(__kernel_getcpu) .cfi_startproc mfspr r5,SPRN_SPRG_VDSO_READ - cmpwi cr0,r3,0 - cmpwi cr1,r4,0 + PPC_LCMPI cr0,r3,0 + PPC_LCMPI cr1,r4,0 clrlwi r6,r5,16 rlwinm r7,r5,16,31-15,31-0 beq cr0,1f diff --git a/arch/powerpc/kernel/vdso32/gettimeofday.S b/arch/powerpc/kernel/vdso32/gettimeofday.S index d21d08140a5e..c875312274aa 100644 --- a/arch/powerpc/kernel/vdso32/gettimeofday.S +++ b/arch/powerpc/kernel/vdso32/gettimeofday.S @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0-or-later */ /* - * Userland implementation of gettimeofday() for 32 bits processes in a - * ppc64 kernel for use in the vDSO + * Userland implementation of gettimeofday() for processes + * for use in the vDSO * * Copyright (C) 2004 Benjamin Herrenschmuidt (benh@kernel.crashing.org, * IBM Corp. @@ -41,9 +41,11 @@ V_FUNCTION_END(__kernel_clock_gettime) * int __kernel_clock_gettime64(clockid_t clock_id, struct __timespec64 *ts); * */ +#ifndef __powerpc64__ V_FUNCTION_BEGIN(__kernel_clock_gettime64) cvdso_call __c_kernel_clock_gettime64 V_FUNCTION_END(__kernel_clock_gettime64) +#endif /* * Exact prototype of clock_getres() @@ -69,6 +71,7 @@ V_FUNCTION_END(__kernel_time) /* Routines for restoring integer registers, called by the compiler. */ /* Called with r11 pointing to the stack header word of the caller of the */ /* function, just beyond the end of the integer restore area. */ +#ifndef __powerpc64__ _GLOBAL(_restgpr_31_x) _GLOBAL(_rest32gpr_31_x) lwz r0,4(r11) @@ -76,3 +79,4 @@ _GLOBAL(_rest32gpr_31_x) mtlr r0 mr r1,r11 blr +#endif diff --git a/arch/powerpc/kernel/vdso32/vgettimeofday.c b/arch/powerpc/kernel/vdso32/vgettimeofday.c index 65fb03fb1731..55a287c9a736 100644 --- a/arch/powerpc/kernel/vdso32/vgettimeofday.c +++ b/arch/powerpc/kernel/vdso32/vgettimeofday.c @@ -2,8 +2,22 @@ /* * Powerpc userspace implementations of gettimeofday() and similar. */ +#include #include +#ifdef __powerpc64__ +int __c_kernel_clock_gettime(clockid_t clock, struct __kernel_timespec *ts, + const struct vdso_data *vd) +{ + return __cvdso_clock_gettime_data(vd, clock, ts); +} + +int __c_kernel_clock_getres(clockid_t clock_id, struct __kernel_timespec *res, + const struct vdso_data *vd) +{ + return __cvdso_clock_getres_data(vd, clock_id, res); +} +#else int __c_kernel_clock_gettime(clockid_t clock, struct old_timespec32 *ts, const struct vdso_data *vd) { @@ -16,16 +30,17 @@ int __c_kernel_clock_gettime64(clockid_t clock, struct __kernel_timespec *ts, return __cvdso_clock_gettime_data(vd, clock, ts); } -int __c_kernel_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz, +int __c_kernel_clock_getres(clockid_t clock_id, struct old_timespec32 *res, const struct vdso_data *vd) { - return __cvdso_gettimeofday_data(vd, tv, tz); + return __cvdso_clock_getres_time32_data(vd, clock_id, res); } +#endif -int __c_kernel_clock_getres(clockid_t clock_id, struct old_timespec32 *res, +int __c_kernel_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz, const struct vdso_data *vd) { - return __cvdso_clock_getres_time32_data(vd, clock_id, res); + return __cvdso_gettimeofday_data(vd, tv, tz); } __kernel_old_time_t __c_kernel_time(__kernel_old_time_t *time, const struct vdso_data *vd) From patchwork Fri Jan 21 16:30:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe Leroy X-Patchwork-Id: 1582649 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org (client-ip=112.213.38.117; helo=lists.ozlabs.org; envelope-from=linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org; receiver=) Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JgPyD4pgQz9sCD for ; Sat, 22 Jan 2022 03:31:00 +1100 (AEDT) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4JgPy91QMBz3bZX for ; Sat, 22 Jan 2022 03:30:57 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=csgroup.eu (client-ip=2a01:111:f400:7e19::629; helo=fra01-mr2-obe.outbound.protection.outlook.com; envelope-from=christophe.leroy@csgroup.eu; receiver=) Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01on0629.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e19::629]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4JgPxz65WQz30QS for ; Sat, 22 Jan 2022 03:30:45 +1100 (AEDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dqDl+Q7I7l7APW7B9E617mfPcnZX4cAV6pxK579PrJqavBaflB/r3XFcIsEyAocpC8TSxT3ZqrmP6Im2E1OoDIL8oFlvKWmp6rtvsJeViudOnrt/GNdkHHussWiziGr8BjwMbIp2F9mBMiZa3wrd956rRiVtDZQJp/2PcwmnknrcVS1phjcQ+mlo3C/bK7TQ0ZpuPgAVWq2HdCfVPwo1Xy5tWPSAfhdHRZbdIagREKMdUIMFPGgk1uhX6ZWpp9uggwf/zb5S7ZmYQ/DIUip6pY8ODfWg0rPBaXFMFJDT9ztIhoyU/ycL5C1RJ8NlAGl8PROlTbh3MQOPGz831q9V3A== 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=s2uoIMr7ouwSiiTxtmQ00wCzL0EFew1/CqzIpuCx3MU=; b=eCqWP44nsBwXq5cm9/xzAMKWhXNOs0nxau/reX0vETOz7ysT+xNvhfrSz3fWPP1z1I9S8CFIrEJrjXqm8pLX2P4IELmj64aebeGbCrx4TIysUJGl2mrztc/ikzd7/8NxNOesDNx+WxixrViDYZeX3uloSVtgi51Kzzr+rYRX+on6Du7rRpDzr/+do0ZHdiyOUOsrgJv9hv+5O3zKTysY5xTSALCKDnK0OYXeX7T1xAEf+wLw7Pf2apP7lBYwPdWCjtKyPgLLB+4d/L1g38Hou5Mmb4/xDQxGYe+lDRxcMWlXel7g03dHwCeZOgBOfzf+SAYiiH/Lu0FJBNljdWFN1w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:31::15) by PR0P264MB3436.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:14b::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.8; Fri, 21 Jan 2022 16:30:24 +0000 Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::9d4f:1090:9b36:3fc5]) by MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::9d4f:1090:9b36:3fc5%5]) with mapi id 15.20.4909.008; Fri, 21 Jan 2022 16:30:24 +0000 From: Christophe Leroy To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , "masahiroy@kernel.org" Subject: [PATCH v4 2/5] powerpc/vdso: Rework VDSO32 makefile to add a prefix to object files Thread-Topic: [PATCH v4 2/5] powerpc/vdso: Rework VDSO32 makefile to add a prefix to object files Thread-Index: AQHYDuQwc7FEdN27b06YHATBao+VCA== Date: Fri, 21 Jan 2022 16:30:23 +0000 Message-ID: <0c421b704a57b228e75a891512568339c53667ad.1642782130.git.christophe.leroy@csgroup.eu> References: In-Reply-To: Accept-Language: fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=csgroup.eu; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b346de70-d48b-47f2-90a6-08d9dcfb533d x-ms-traffictypediagnostic: PR0P264MB3436:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1013; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: TyywOvy/ESFMdVJqTw3euuk6DvMxEc4GxMGksUc5VXqNAyzF7NdMTuw3Ktq0D3LNHlIC69E8K3IMjJNh+ie8Y8CPTMdpklorveCkD/5Mzn8hTNJQxPkiGmNFqIyJaEMnAhMQrstugm+LWlOaoVanvw3Um7yuSkuVMhi1PyIFBUnWTttlIEiCxvx/puULUP4IpkMDhMC9RfDsIfHevxdP7GVBXMUnIoVPI3e2pJSd2Bd8PnqJgmJXLjoKqI4ADT4R8RdkLn565rgblD2Fiiq23a+pADVUbiZvSc+FplhXSPEUAdgmnLW09dGn/G3AbsMUvA1hRrugJaiNsntyyt44hgDzFfTT9PeAMKmT/Rz/8tLFOM/JCbyYke85s2VsvL5M/6+TOwmofw3wdIUsJd1GZIWd9rQG0h2bdmeTrnx1aXEL+6lyld/bgANuTHuJrWpjpWpkLkDQWbJKpkepLgPvqs/95+LCzx+Jm0qroNt1D+6pglc9/QJTxXs+byU2mhzU3ZQ3zLEPgeCC2kFLuMUTmtbq0oYB0IPmqAgZ6cggySph9XRKDCoEX1rUqhP6OYho0wg11XEXEe1VPmZWKcOpldkp5ELCAfiOZk3n531+q5+gEBkHTk85crR3v9IHEz7zvyGr4L4K17nQtS1+GgmBHbI4IibgnyKk+rDEeFEvfvc2rkU16qZckflun5nVBZfKZSrvt/LgQrCaO7jt2Rn/hQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(366004)(44832011)(36756003)(5660300002)(64756008)(38070700005)(6486002)(4326008)(66446008)(186003)(66476007)(66556008)(66946007)(91956017)(86362001)(6506007)(83380400001)(38100700002)(2906002)(54906003)(110136005)(122000001)(71200400001)(316002)(508600001)(6512007)(8676002)(8936002)(76116006)(26005)(2616005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?ZsAwJzYD6HvUnNI6VPGBhJq?= =?iso-8859-1?q?Op5eWfqZi+CWqc1cFyXXFFudwZazprS+F1S6n0fQkra39pxcUSowX0knFUwg?= =?iso-8859-1?q?i2H+Mr9XRusYiF0ih6sel3yQFMOuAowMatUCwqm1F6qSmEgbdXwKcSHSCC7P?= =?iso-8859-1?q?ocgit0r5EIAt7B9kp8pIrAI5jyXVMI8x6mGn4J9RkxqHLBAJcAsTFWMmAsU2?= =?iso-8859-1?q?YOO4jv1s4A700FNjbfQZ+BqJfRzv1HtfjFalHrTTRrz4OwbkjohhS2tWB5fQ?= =?iso-8859-1?q?15OeFvDwgMktMou+PJb7opYCiBC/t1hULPDELmmdTOXVc/5boI3vV8NOiAVd?= =?iso-8859-1?q?Qw18lUu362W8KPbTgxlLQVF7ONywNN4X2Hh/UzXVdvic6BOl7DkTSp7zbbl7?= =?iso-8859-1?q?9I8glTBfDgpJ4JRaZpJd4f1xRGeln4R3eiy6bPTc2U+lbw8UpN2eCkn3Hijd?= =?iso-8859-1?q?CrF8bS7BfGsRJ/6vpqISWsD2dYttZZ9Xv/8R4i3mg1CSgpzMNSmhUrsDCoak?= =?iso-8859-1?q?75fcgHJttCW2QLcH9UXVlCy5x0suryNrL4m6c66Ak14yYQ2mZZ3tpAJtcD7n?= =?iso-8859-1?q?yWJIrudJJjTIz8Wze5Yn1LuSpjjgb3MeJZAH+FZs99JJrvItXLPTS9kjn8TJ?= =?iso-8859-1?q?M39JcPb7QBXmtmyREjxrZfIDkugd5Xw5qtlow86xhKaVnzwxAX6eizq3h/zJ?= =?iso-8859-1?q?cLdvSZP4SnbR2y2N5lfkxFGJximZPDvBeYWRQsReNuZtoXELSGcnOOWrNrA7?= =?iso-8859-1?q?0nfehTYIufbkaSSM/pAXRVAwMhSHrGs6aDkIMv5TWnACkfpytahBP9rdFDfs?= =?iso-8859-1?q?mmHFCcL6y6zH0XbA5CeD0Fj723ylVoonVFzW9drC5ovPvV5GMVPbKE8oNDCU?= =?iso-8859-1?q?lUqek3MDzKrt/ujDIzkwv4Da8sNDHtluxdOQjyAtrjrll8WUkknF6roJX6bL?= =?iso-8859-1?q?U87dhvzHykO9EZRNnDO3diBrLngE452isSF78Ah6ORJv/qAcUGedxsRfSF2A?= =?iso-8859-1?q?pCkCBUP7pDWZYuC3V+YwDZtwDRHkEoONex3oKnkox1MCiHLq3x3YCzpcj6yk?= =?iso-8859-1?q?CQ6C+IOM1XVUeNq4QxQrhNMMIjGigFp/imYMl+ap/UCLwhQxTChLi2GidQUI?= =?iso-8859-1?q?Da9Bp3NMTSNZfrXY6JNtIzgN1K3vH8Ucw4m1SLFrOFQwUp2TAAbBEH3LouWK?= =?iso-8859-1?q?Lqe69KPNLH9oHiwrBSFrMe87KwYqX5xmxVryLI8dasemf2ArKk45bCxV02Eo?= =?iso-8859-1?q?g80CCGiqWeMBsmjx+OB56pFO03CpGV8+ActNye84M1Xcb4soSGurpmftmDk5?= =?iso-8859-1?q?7Yb0XNQ7Xc1lNooY/lguZxlkmobTSbSifZQJ+KfyVaSwKQndn4/IErqQVot/?= =?iso-8859-1?q?QX2pFWVHXUAqaEHecwEgNpjehv0ZIXdFDCMMZQjNw5L59CzDRCqujegn/v8H?= =?iso-8859-1?q?XexLY1QrwulAtxkTuIp03KqWlf/PajCB7vxLNBwPSFtHqfZItXpTORn5nxeu?= =?iso-8859-1?q?fEa5e78G+Ekxj5n5BidLDZIhOgX+EpyIcC1iyKxM4Rmu98cuz84gY+1DChWg?= =?iso-8859-1?q?3qwNcU3Iqgt7UXa4x1937ucozjD1Hq7aadPttW5rfti6L8o8zG4J+bRS/pRb?= =?iso-8859-1?q?k+K4kKERg9C0CU2HN/IqUPUkiLzMiWC4qi6ZawNlRxQVx8nMtElYB/9FoB2j?= =?iso-8859-1?q?m+wMcMkyO1dTJntI2xD9Qi4MyYWgjnPsqIc1mWu7vGDDrlbnQabuBjG9T7XT?= =?iso-8859-1?q?92j0=3D?= MIME-Version: 1.0 X-OriginatorOrg: csgroup.eu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: b346de70-d48b-47f2-90a6-08d9dcfb533d X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2022 16:30:24.0144 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9914def7-b676-4fda-8815-5d49fb3b45c8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: yNZdjACymelN/9S+jpxwPgjgjJr+B4wq68+v5mH71jWSF72/jCdHf1QeLoKUrN6mnPR2aIRi8ZNpZ/IRHs+PICytsv6a+QCXM7UBjaM/Tps= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR0P264MB3436 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "linuxppc-dev@lists.ozlabs.org" , "linux-kernel@vger.kernel.org" Errors-To: linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" In order to merge vdso32 and vdso64 build in following patch, rework Makefile is order to add -32 suffix to VDSO32 object files. Also change sigtramp.S to sigtramp32.S as VDSO64 sigtramp.S is too different to be squashed into VDSO32 sigtramp.S at the first place. gen_vdso_offsets.sh also becomes gen_vdso32_offsets.sh Signed-off-by: Christophe Leroy --- arch/powerpc/kernel/vdso32/Makefile | 47 +++++++++---------- ..._vdso_offsets.sh => gen_vdso32_offsets.sh} | 0 .../vdso32/{sigtramp.S => sigtramp32.S} | 0 3 files changed, 21 insertions(+), 26 deletions(-) rename arch/powerpc/kernel/vdso32/{gen_vdso_offsets.sh => gen_vdso32_offsets.sh} (100%) rename arch/powerpc/kernel/vdso32/{sigtramp.S => sigtramp32.S} (100%) diff --git a/arch/powerpc/kernel/vdso32/Makefile b/arch/powerpc/kernel/vdso32/Makefile index 7d9a6fee0e3d..7d7b38d90ca5 100644 --- a/arch/powerpc/kernel/vdso32/Makefile +++ b/arch/powerpc/kernel/vdso32/Makefile @@ -5,15 +5,16 @@ ARCH_REL_TYPE_ABS := R_PPC_JUMP_SLOT|R_PPC_GLOB_DAT|R_PPC_ADDR32|R_PPC_ADDR24|R_PPC_ADDR16|R_PPC_ADDR16_LO|R_PPC_ADDR16_HI|R_PPC_ADDR16_HA|R_PPC_ADDR14|R_PPC_ADDR14_BRTAKEN|R_PPC_ADDR14_BRNTAKEN|R_PPC_REL24 include $(srctree)/lib/vdso/Makefile -obj-vdso32 = sigtramp.o gettimeofday.o datapage.o cacheflush.o note.o getcpu.o +obj-vdso32 = sigtramp32-32.o gettimeofday-32.o datapage-32.o cacheflush-32.o note-32.o getcpu-32.o ifneq ($(c-gettimeofday-y),) - CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y) - CFLAGS_vgettimeofday.o += $(DISABLE_LATENT_ENTROPY_PLUGIN) - CFLAGS_vgettimeofday.o += $(call cc-option, -fno-stack-protector) - CFLAGS_vgettimeofday.o += -DDISABLE_BRANCH_PROFILING - CFLAGS_vgettimeofday.o += -ffreestanding -fasynchronous-unwind-tables - CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) + CFLAGS_vgettimeofday-32.o += -include $(c-gettimeofday-y) + CFLAGS_vgettimeofday-32.o += $(DISABLE_LATENT_ENTROPY_PLUGIN) + CFLAGS_vgettimeofday-32.o += $(call cc-option, -fno-stack-protector) + CFLAGS_vgettimeofday-32.o += -DDISABLE_BRANCH_PROFILING + CFLAGS_vgettimeofday-32.o += -ffreestanding -fasynchronous-unwind-tables + CFLAGS_REMOVE_vgettimeofday-32.o = $(CC_FLAGS_FTRACE) + CFLAGS_REMOVE_vgettimeofday-32.o += -mcmodel=medium -mabi=elfv1 -mabi=elfv2 -mcall-aixdesc endif # Build rules @@ -24,13 +25,7 @@ else VDSOCC := $(CC) endif -CC32FLAGS := -ifdef CONFIG_PPC64 -CC32FLAGS += -m32 -KBUILD_CFLAGS := $(filter-out -mcmodel=medium -mabi=elfv1 -mabi=elfv2 -mcall-aixdesc,$(KBUILD_CFLAGS)) -endif - -targets := $(obj-vdso32) vdso32.so.dbg vgettimeofday.o +targets := $(obj-vdso32) vdso32.so.dbg vgettimeofday-32.o obj-vdso32 := $(addprefix $(obj)/, $(obj-vdso32)) GCOV_PROFILE := n @@ -38,36 +33,36 @@ KCOV_INSTRUMENT := n UBSAN_SANITIZE := n KASAN_SANITIZE := n -ccflags-y := -shared -fno-common -fno-builtin -nostdlib \ - -Wl,-soname=linux-vdso32.so.1 -Wl,--hash-style=both -asflags-y := -D__VDSO32__ -s +ccflags-y := -shared -fno-common -fno-builtin -nostdlib -Wl,--hash-style=both + +CC32FLAGS := -Wl,-soname=linux-vdso32.so.1 -m32 +AS32FLAGS := -D__VDSO32__ -s -obj-y += vdso32_wrapper.o targets += vdso32.lds CPPFLAGS_vdso32.lds += -P -C -Upowerpc # link rule for the .so file, .lds has to be first -$(obj)/vdso32.so.dbg: $(src)/vdso32.lds $(obj-vdso32) $(obj)/vgettimeofday.o FORCE +$(obj)/vdso32.so.dbg: $(src)/vdso32.lds $(obj-vdso32) $(obj)/vgettimeofday-32.o FORCE $(call if_changed,vdso32ld_and_check) # assembly rules for the .S files -$(obj-vdso32): %.o: %.S FORCE +$(obj-vdso32): %-32.o: %.S FORCE $(call if_changed_dep,vdso32as) -$(obj)/vgettimeofday.o: %.o: %.c FORCE +$(obj)/vgettimeofday-32.o: %-32.o: %.c FORCE $(call if_changed_dep,vdso32cc) # Generate VDSO offsets using helper script -gen-vdsosym := $(srctree)/$(src)/gen_vdso_offsets.sh -quiet_cmd_vdsosym = VDSOSYM $@ - cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@ +gen-vdso32sym := $(srctree)/$(src)/gen_vdso32_offsets.sh +quiet_cmd_vdso32sym = VDSO32SYM $@ + cmd_vdso32sym = $(NM) $< | $(gen-vdso32sym) | LC_ALL=C sort > $@ include/generated/vdso32-offsets.h: $(obj)/vdso32.so.dbg FORCE - $(call if_changed,vdsosym) + $(call if_changed,vdso32sym) # actual build commands quiet_cmd_vdso32ld_and_check = VDSO32L $@ cmd_vdso32ld_and_check = $(VDSOCC) $(c_flags) $(CC32FLAGS) -o $@ -Wl,-T$(filter %.lds,$^) $(filter %.o,$^) ; $(cmd_vdso_check) quiet_cmd_vdso32as = VDSO32A $@ - cmd_vdso32as = $(VDSOCC) $(a_flags) $(CC32FLAGS) -c -o $@ $< + cmd_vdso32as = $(VDSOCC) $(a_flags) $(CC32FLAGS) $(AS32FLAGS) -c -o $@ $< quiet_cmd_vdso32cc = VDSO32C $@ cmd_vdso32cc = $(VDSOCC) $(c_flags) $(CC32FLAGS) -c -o $@ $< diff --git a/arch/powerpc/kernel/vdso32/gen_vdso_offsets.sh b/arch/powerpc/kernel/vdso32/gen_vdso32_offsets.sh similarity index 100% rename from arch/powerpc/kernel/vdso32/gen_vdso_offsets.sh rename to arch/powerpc/kernel/vdso32/gen_vdso32_offsets.sh diff --git a/arch/powerpc/kernel/vdso32/sigtramp.S b/arch/powerpc/kernel/vdso32/sigtramp32.S similarity index 100% rename from arch/powerpc/kernel/vdso32/sigtramp.S rename to arch/powerpc/kernel/vdso32/sigtramp32.S From patchwork Fri Jan 21 16:30:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe Leroy X-Patchwork-Id: 1582653 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org (client-ip=112.213.38.117; helo=lists.ozlabs.org; envelope-from=linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org; receiver=) Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JgPzj4pWSz9sCD for ; Sat, 22 Jan 2022 03:32:17 +1100 (AEDT) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4JgPzj1w80z3dfb for ; Sat, 22 Jan 2022 03:32:17 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=csgroup.eu (client-ip=2a01:111:f400:7e19::622; helo=fra01-mr2-obe.outbound.protection.outlook.com; envelope-from=christophe.leroy@csgroup.eu; receiver=) Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01on0622.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e19::622]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4JgPy02hDdz30RT for ; Sat, 22 Jan 2022 03:30:48 +1100 (AEDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mx0GSsd9zn03W/uqdb4POqbmF03Immy7dvoLCMZeHbNZhSXnHgVF02NZ7UkXFb4TYb+KbaCzN00u2mlZSem0NcR1YM9hx0lRqplj2CkzCh1SI8KNbeME1+A1T4sHMA8povdzW1elYu242AOg4QWXPMbIyppDgbADBq6lZ3ttddhvOBRJAIl6HKU5cy42xdJigjIhi8iLwg7yyaZl8A46Tpu0iGgVhphnvEU3BhDWMw6W0GVAJSQZGP1DIxQT71PLysmA094D3Li0JYFtbuD8UVAE3/+DzV1praj9ixCk0wQLqSxU9MM/LECHlcodjDA3ORNHkftxXOpsjV4cTqleTA== 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=2ocvjjBXwxMiV9qsK/AVe2vSQ+1n2J4ZFmSddURWU7A=; b=WYM0Ge8uirqEZ1Wx8S5fKue4YitUZXKT8M9g+Vf/p6B0HKTCvvMK1CM2M98fcQLeegRFUnx77Yrs121nCnyQYrFwKxbFDsGgZaSSS3tjjI2BvIW3GtAAX0uG69SxBUZf/9RUA4BZG4pLE2JiTSEmOuvk8SwHN0O88WR8IlwsFR4Z5ZXuMiBRkhr/4+CdPR6K+qsutGPFb0PtW1lQH1NJukxb97isshPamaWNhNU5OBty3S2BU157eljnG5DoJvXct/SGzpYngWRzW0I+QUFXPZd2a4HrIVeNuNSIdkoT4qyCV+IVGoSi2oxXwjo2ixMtPycwFYGBlyAKlocGBHe7lA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:31::15) by MR2P264MB0900.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:10::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.7; Fri, 21 Jan 2022 16:30:27 +0000 Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::9d4f:1090:9b36:3fc5]) by MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::9d4f:1090:9b36:3fc5%5]) with mapi id 15.20.4909.008; Fri, 21 Jan 2022 16:30:27 +0000 From: Christophe Leroy To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , "masahiroy@kernel.org" Subject: [PATCH v4 3/5] powerpc/vdso: Merge vdso64 and vdso32 into a single directory Thread-Topic: [PATCH v4 3/5] powerpc/vdso: Merge vdso64 and vdso32 into a single directory Thread-Index: AQHYDuQyiYCJuxHqMUuJ3zj5ZmrJ7Q== Date: Fri, 21 Jan 2022 16:30:27 +0000 Message-ID: <4dbe05cc130f6a0858d09ac72e436c373cb08b70.1642782130.git.christophe.leroy@csgroup.eu> References: In-Reply-To: Accept-Language: fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=csgroup.eu; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 16d74a92-3eb1-4142-a2ce-08d9dcfb5540 x-ms-traffictypediagnostic: MR2P264MB0900:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1107; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OLvOe+Q1L3AdblIUuaElAz61kkxUsLJnXoI1u2SVs8BLxdCtgX4XdlH3XQH4l49xGBmohK8C3c9Hm1s8dCNE//jA4BPNIIbr4o1Pg/E7OtnCL7NgDvvLH4T41oIVEf797ET0fKbmbPAq2IhKgTTfbd3jA/WhHNlNbjCCpIE/pjmKxLVGuVVh1gmsBIYs0F+Uyz0JHQPyhnFnMXEjoMW2w6F/ch/zGsN21y2nmBvyoYtEkOW++MzI+6MwWx34XXcWRWJDpHB7AquJbRcNrr3rdGEjIp10gfC3WD9Aiaq651oA+mcTZ+TGtMhxQO+ffNRbjDZxGlctb/AgYFypAG7xxU7OVqn1XNuI5m0pPvjRpQJmcBleRsafPTwvlhSwE3CdalUp47nhxJk/M82n9v8iJygP0KDXEC1Unw9kkNKvqRL4nW89zQkKaes6t1rPyI/mqgxMfj1g7kIuEADyWPoluSwXKFzSrcNSVCrCvcSPpYRgK+rp5o4Y5IkGVEk7LHn9ASV19ww1x1BA1B7moQkCgsCfRD9L7Ff5WIn0iLBmnm/Uqs2rnFp2G6Lr24v1Jx2hyg+xNMGO8CPfWSn+DuEwLvPUxug7Ij09BJIukwzz6bRr9tU5MhLWavgd9DzE5+PAX6cZaeP5AHP+oMDoGBaUqUzreiqXRsaxsjiYP107TO6Fg7jdE3XdVrjoMfKBM+Z+OPID70lfvOTMAfQD5eq0Lw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(366004)(30864003)(76116006)(38100700002)(26005)(2906002)(6512007)(186003)(5660300002)(6486002)(122000001)(2616005)(44832011)(86362001)(91956017)(36756003)(71200400001)(83380400001)(6506007)(8676002)(54906003)(316002)(110136005)(38070700005)(66946007)(508600001)(4326008)(64756008)(8936002)(66446008)(66556008)(66476007)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?JROJ7KQnEUTB9+OtN2K8vW2?= =?iso-8859-1?q?h9wLRwTyWJ42nWDIe+s5712n3pDvw6zxDcGF+VvD1iZoC0mlYzixZHJDU0G3?= =?iso-8859-1?q?ahYn39wtMWugV+MAurHHnfnOMaumgWK7pX7iE2odibtJSvM33xJZ6QXYH0W/?= =?iso-8859-1?q?VQJgECrpd6xoA6gkxUtKh/NF7Zs7LNE5FSz1bsn9k0AbCeQjvCoysvyWmqwo?= =?iso-8859-1?q?NEyUHdhz5BpM5lU+hAO4FQq6UXJbdC1mchm/oNPMlJb/bSIf7QCBgGUJB7g0?= =?iso-8859-1?q?VzCc68DiM+dzvzugfVmvYmRANzzVsxq1tbci/QK0rhNFZPVRPb4yyytoiY6F?= =?iso-8859-1?q?xhEp33Y8Ai1C6d62hOzvl6OJ+TvGejm7YagQiQAEPrU3BzkI8fK8MfpHE15u?= =?iso-8859-1?q?gMhKJNI11cSsJeyJR1NSXxBBN9T7YgpaBZhJijTGAjq+lDIKTKL0Mh111Qao?= =?iso-8859-1?q?YyUk1LdQNVpDDbW2ztR1hDhQCqu8bMV7iN3U8uLg0awnFIxfaCg/hnGyoveS?= =?iso-8859-1?q?yWljaOY6WZPjE7q78nYjDLClyJFOWcSo5MwaHd3Wg9Uclkuk+3y4tSDjf4n5?= =?iso-8859-1?q?Xy2hcdrcgEPwxVGliiH+pMA/o1opPRuHsqwVOJ1l71KEjPadupUJ/lR3OpI5?= =?iso-8859-1?q?QLsfXTSle5WdLHRMsUs6ufQ2NJutmgJDsvR9WCLrqk5aKOYyINc17ZmFfW4y?= =?iso-8859-1?q?e4tgboUqkr924CnD+ryi72sDq7gSB7vx2ebh0IW7ayYs1RSDVcfzA2oQ0w7K?= =?iso-8859-1?q?vhGNiS7tvL/Fi1uKrJfmNOdJ2vs2xQNBUnHxhucqaSlF67CGdP3usCY7bAX6?= =?iso-8859-1?q?8gSG88hJ/NNg8rYm7zMFBcVphFNIpp7yGgiysyYz6zh0MVnBxc0GfUOsSqCj?= =?iso-8859-1?q?SL5WQ96F0SriTSt0ZHVTuPLEH/LdIIJK/z1JvqOey2sw+Si77i8yNLWNyo7t?= =?iso-8859-1?q?xMgG9RNJRbYomA1OdMxETG/Z9Tpz9dqWWJ514sFvOX5u/Ya+vbNg4Af6M881?= =?iso-8859-1?q?2/qcoxLadKqP7xEFtya/opf13wGTjxnaFEKYXBb9vgVu5buKO4p/ynYVNrkZ?= =?iso-8859-1?q?GHiaJnZrqtUGWRNQstvEu55lEO1KHHvgQXJFgb/p5ROe8sFBcVG6KCFthfjF?= =?iso-8859-1?q?T3vSWpOQk8Hj9VR+W/87cA2SHr56m9N5Ob3zzR6kfmszxXlyjJUaJatWQVXi?= =?iso-8859-1?q?JrHNrcfcLHz8WnslcArov5M/n4afdiRI50goEjZL618YBhL/eT+25idUb6YT?= =?iso-8859-1?q?HNSSblZOnbf3GItsn/aRhQIAZ2I7FmUZfGr+NUytUq0w4Z0hQFY+2yjoiOcY?= =?iso-8859-1?q?vmPQB7uRj03eJUk/vi87Pi6IQiyd4lsr5V5JakBZW4hZ+4FsdawkQ2b9wEYj?= =?iso-8859-1?q?0bpcasJf1vGRrt55hi77mFdY9ePCv3K/8cwW4gwTbdyuRRNbXzkbdvrAN+ou?= =?iso-8859-1?q?zS6t3zqlCSKFKZbpjJhwJXhVMa5cC6kFRwmqPgA/lNtbYaZd9Rwx8xyqFo5W?= =?iso-8859-1?q?zCxdbLatSwJp/oLGgtNwSfox8LVxW3Fe3/lj1QeKxhT9/U3pwT0NLmc7lKtG?= =?iso-8859-1?q?k1KWS1joUn0nAtuumdhETrfKCBuFoDJadvzbh9mVnn2eR7zYbfRzLAaTO5ds?= =?iso-8859-1?q?VsvHUXnTDceC6Ghrb3AsVciL7ck+r5U1O+TACc2wh/ug7Pc6KjBJTMOo6dLR?= =?iso-8859-1?q?WgTK0Aa3VEWNXhHzRHjlzG0eR0K6qRbEcZmVmL72jkRNldKJMB82DW52APQ8?= =?iso-8859-1?q?kpmc=3D?= MIME-Version: 1.0 X-OriginatorOrg: csgroup.eu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 16d74a92-3eb1-4142-a2ce-08d9dcfb5540 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2022 16:30:27.3899 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9914def7-b676-4fda-8815-5d49fb3b45c8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: unyQB/qGb8AimJk75tojwwdsqh2ZgJZi9OBcMkacLJ5REZgEqj7qrpQo9PQZayQvsz5SPysF1pD9P6tulquxtvZWrsybxzugwrjMXrWOPV0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MR2P264MB0900 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "linuxppc-dev@lists.ozlabs.org" , "linux-kernel@vger.kernel.org" Errors-To: linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" merge vdso64 into vdso32 and rename it vdso. Signed-off-by: Christophe Leroy --- arch/powerpc/Makefile | 4 +- arch/powerpc/kernel/Makefile | 6 +- .../kernel/{vdso64 => vdso}/.gitignore | 2 + arch/powerpc/kernel/{vdso32 => vdso}/Makefile | 35 +++++++++ .../kernel/{vdso32 => vdso}/cacheflush.S | 0 .../kernel/{vdso32 => vdso}/datapage.S | 0 .../{vdso32 => vdso}/gen_vdso32_offsets.sh | 0 .../gen_vdso64_offsets.sh} | 0 arch/powerpc/kernel/{vdso32 => vdso}/getcpu.S | 0 .../kernel/{vdso32 => vdso}/gettimeofday.S | 0 arch/powerpc/kernel/{vdso32 => vdso}/note.S | 0 .../kernel/{vdso32 => vdso}/sigtramp32.S | 0 .../{vdso64/sigtramp.S => vdso/sigtramp64.S} | 0 .../kernel/{vdso32 => vdso}/vdso32.lds.S | 0 .../kernel/{vdso64 => vdso}/vdso64.lds.S | 0 .../kernel/{vdso32 => vdso}/vgettimeofday.c | 0 arch/powerpc/kernel/vdso32/.gitignore | 3 - arch/powerpc/kernel/vdso32_wrapper.S | 2 +- arch/powerpc/kernel/vdso64/Makefile | 56 -------------- arch/powerpc/kernel/vdso64/cacheflush.S | 75 ------------------- arch/powerpc/kernel/vdso64/datapage.S | 59 --------------- arch/powerpc/kernel/vdso64/getcpu.S | 33 -------- arch/powerpc/kernel/vdso64/gettimeofday.S | 58 -------------- arch/powerpc/kernel/vdso64/note.S | 1 - arch/powerpc/kernel/vdso64/vgettimeofday.c | 29 ------- arch/powerpc/kernel/vdso64_wrapper.S | 2 +- 26 files changed, 44 insertions(+), 321 deletions(-) rename arch/powerpc/kernel/{vdso64 => vdso}/.gitignore (72%) rename arch/powerpc/kernel/{vdso32 => vdso}/Makefile (56%) rename arch/powerpc/kernel/{vdso32 => vdso}/cacheflush.S (100%) rename arch/powerpc/kernel/{vdso32 => vdso}/datapage.S (100%) rename arch/powerpc/kernel/{vdso32 => vdso}/gen_vdso32_offsets.sh (100%) rename arch/powerpc/kernel/{vdso64/gen_vdso_offsets.sh => vdso/gen_vdso64_offsets.sh} (100%) rename arch/powerpc/kernel/{vdso32 => vdso}/getcpu.S (100%) rename arch/powerpc/kernel/{vdso32 => vdso}/gettimeofday.S (100%) rename arch/powerpc/kernel/{vdso32 => vdso}/note.S (100%) rename arch/powerpc/kernel/{vdso32 => vdso}/sigtramp32.S (100%) rename arch/powerpc/kernel/{vdso64/sigtramp.S => vdso/sigtramp64.S} (100%) rename arch/powerpc/kernel/{vdso32 => vdso}/vdso32.lds.S (100%) rename arch/powerpc/kernel/{vdso64 => vdso}/vdso64.lds.S (100%) rename arch/powerpc/kernel/{vdso32 => vdso}/vgettimeofday.c (100%) delete mode 100644 arch/powerpc/kernel/vdso32/.gitignore delete mode 100644 arch/powerpc/kernel/vdso64/Makefile delete mode 100644 arch/powerpc/kernel/vdso64/cacheflush.S delete mode 100644 arch/powerpc/kernel/vdso64/datapage.S delete mode 100644 arch/powerpc/kernel/vdso64/getcpu.S delete mode 100644 arch/powerpc/kernel/vdso64/gettimeofday.S delete mode 100644 arch/powerpc/kernel/vdso64/note.S delete mode 100644 arch/powerpc/kernel/vdso64/vgettimeofday.c diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index 5f16ac1583c5..ddc5a706760a 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile @@ -421,9 +421,9 @@ ifeq ($(KBUILD_EXTMOD),) prepare: vdso_prepare vdso_prepare: prepare0 $(if $(CONFIG_VDSO32),$(Q)$(MAKE) \ - $(build)=arch/powerpc/kernel/vdso32 include/generated/vdso32-offsets.h) + $(build)=arch/powerpc/kernel/vdso include/generated/vdso32-offsets.h) $(if $(CONFIG_PPC64),$(Q)$(MAKE) \ - $(build)=arch/powerpc/kernel/vdso64 include/generated/vdso64-offsets.h) + $(build)=arch/powerpc/kernel/vdso include/generated/vdso64-offsets.h) endif archprepare: checkbin diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile index 4d7829399570..4ddd161aef32 100644 --- a/arch/powerpc/kernel/Makefile +++ b/arch/powerpc/kernel/Makefile @@ -194,8 +194,8 @@ targets += prom_init_check clean-files := vmlinux.lds # Force dependency (incbin is bad) -$(obj)/vdso32_wrapper.o : $(obj)/vdso32/vdso32.so.dbg -$(obj)/vdso64_wrapper.o : $(obj)/vdso64/vdso64.so.dbg +$(obj)/vdso32_wrapper.o : $(obj)/vdso/vdso32.so.dbg +$(obj)/vdso64_wrapper.o : $(obj)/vdso/vdso64.so.dbg # for cleaning -subdir- += vdso32 vdso64 +subdir- += vdso diff --git a/arch/powerpc/kernel/vdso64/.gitignore b/arch/powerpc/kernel/vdso/.gitignore similarity index 72% rename from arch/powerpc/kernel/vdso64/.gitignore rename to arch/powerpc/kernel/vdso/.gitignore index 84151a7ba31d..dd9bdd67758b 100644 --- a/arch/powerpc/kernel/vdso64/.gitignore +++ b/arch/powerpc/kernel/vdso/.gitignore @@ -1,3 +1,5 @@ # SPDX-License-Identifier: GPL-2.0-only +vdso32.lds +vdso32.so.dbg vdso64.lds vdso64.so.dbg diff --git a/arch/powerpc/kernel/vdso32/Makefile b/arch/powerpc/kernel/vdso/Makefile similarity index 56% rename from arch/powerpc/kernel/vdso32/Makefile rename to arch/powerpc/kernel/vdso/Makefile index 7d7b38d90ca5..954974287ee7 100644 --- a/arch/powerpc/kernel/vdso32/Makefile +++ b/arch/powerpc/kernel/vdso/Makefile @@ -6,6 +6,7 @@ ARCH_REL_TYPE_ABS := R_PPC_JUMP_SLOT|R_PPC_GLOB_DAT|R_PPC_ADDR32|R_PPC_ADDR24|R_ include $(srctree)/lib/vdso/Makefile obj-vdso32 = sigtramp32-32.o gettimeofday-32.o datapage-32.o cacheflush-32.o note-32.o getcpu-32.o +obj-vdso64 = sigtramp64-64.o gettimeofday-64.o datapage-64.o cacheflush-64.o note-64.o getcpu-64.o ifneq ($(c-gettimeofday-y),) CFLAGS_vgettimeofday-32.o += -include $(c-gettimeofday-y) @@ -15,6 +16,17 @@ ifneq ($(c-gettimeofday-y),) CFLAGS_vgettimeofday-32.o += -ffreestanding -fasynchronous-unwind-tables CFLAGS_REMOVE_vgettimeofday-32.o = $(CC_FLAGS_FTRACE) CFLAGS_REMOVE_vgettimeofday-32.o += -mcmodel=medium -mabi=elfv1 -mabi=elfv2 -mcall-aixdesc + CFLAGS_vgettimeofday-64.o += -include $(c-gettimeofday-y) + CFLAGS_vgettimeofday-64.o += $(DISABLE_LATENT_ENTROPY_PLUGIN) + CFLAGS_vgettimeofday-64.o += $(call cc-option, -fno-stack-protector) + CFLAGS_vgettimeofday-64.o += -DDISABLE_BRANCH_PROFILING + CFLAGS_vgettimeofday-64.o += -ffreestanding -fasynchronous-unwind-tables + CFLAGS_REMOVE_vgettimeofday-64.o = $(CC_FLAGS_FTRACE) +# Go prior to 1.16.x assumes r30 is not clobbered by any VDSO code. That used to be true +# by accident when the VDSO was hand-written asm code, but may not be now that the VDSO is +# compiler generated. To avoid breaking Go tell GCC not to use r30. Impact on code +# generation is minimal, it will just use r29 instead. + CFLAGS_vgettimeofday-64.o += $(call cc-option, -ffixed-r30) endif # Build rules @@ -27,6 +39,8 @@ endif targets := $(obj-vdso32) vdso32.so.dbg vgettimeofday-32.o obj-vdso32 := $(addprefix $(obj)/, $(obj-vdso32)) +targets += $(obj-vdso64) vdso64.so.dbg vgettimeofday-64.o +obj-vdso64 := $(addprefix $(obj)/, $(obj-vdso64)) GCOV_PROFILE := n KCOV_INSTRUMENT := n @@ -38,26 +52,42 @@ ccflags-y := -shared -fno-common -fno-builtin -nostdlib -Wl,--hash-style=both CC32FLAGS := -Wl,-soname=linux-vdso32.so.1 -m32 AS32FLAGS := -D__VDSO32__ -s +CC64FLAGS := -Wl,-soname=linux-vdso64.so.1 +AS64FLAGS := -D__VDSO64__ -s + targets += vdso32.lds CPPFLAGS_vdso32.lds += -P -C -Upowerpc +targets += vdso64.lds +CPPFLAGS_vdso64.lds += -P -C -U$(ARCH) # link rule for the .so file, .lds has to be first $(obj)/vdso32.so.dbg: $(src)/vdso32.lds $(obj-vdso32) $(obj)/vgettimeofday-32.o FORCE $(call if_changed,vdso32ld_and_check) +$(obj)/vdso64.so.dbg: $(src)/vdso64.lds $(obj-vdso64) $(obj)/vgettimeofday-64.o FORCE + $(call if_changed,vdso64ld_and_check) # assembly rules for the .S files $(obj-vdso32): %-32.o: %.S FORCE $(call if_changed_dep,vdso32as) $(obj)/vgettimeofday-32.o: %-32.o: %.c FORCE $(call if_changed_dep,vdso32cc) +$(obj-vdso64): %-64.o: %.S FORCE + $(call if_changed_dep,vdso64as) +$(obj)/vgettimeofday-64.o: %-64.o: %.c FORCE + $(call if_changed_dep,cc_o_c) # Generate VDSO offsets using helper script gen-vdso32sym := $(srctree)/$(src)/gen_vdso32_offsets.sh quiet_cmd_vdso32sym = VDSO32SYM $@ cmd_vdso32sym = $(NM) $< | $(gen-vdso32sym) | LC_ALL=C sort > $@ +gen-vdso64sym := $(srctree)/$(src)/gen_vdso64_offsets.sh +quiet_cmd_vdso64sym = VDSO64SYM $@ + cmd_vdso64sym = $(NM) $< | $(gen-vdso64sym) | LC_ALL=C sort > $@ include/generated/vdso32-offsets.h: $(obj)/vdso32.so.dbg FORCE $(call if_changed,vdso32sym) +include/generated/vdso64-offsets.h: $(obj)/vdso64.so.dbg FORCE + $(call if_changed,vdso64sym) # actual build commands quiet_cmd_vdso32ld_and_check = VDSO32L $@ @@ -66,3 +96,8 @@ quiet_cmd_vdso32as = VDSO32A $@ cmd_vdso32as = $(VDSOCC) $(a_flags) $(CC32FLAGS) $(AS32FLAGS) -c -o $@ $< quiet_cmd_vdso32cc = VDSO32C $@ cmd_vdso32cc = $(VDSOCC) $(c_flags) $(CC32FLAGS) -c -o $@ $< + +quiet_cmd_vdso64ld_and_check = VDSO64L $@ + cmd_vdso64ld_and_check = $(VDSOCC) $(c_flags) $(CC64FLAGS) -o $@ -Wl,-T$(filter %.lds,$^) $(filter %.o,$^) ; $(cmd_vdso_check) +quiet_cmd_vdso64as = VDSO64A $@ + cmd_vdso64as = $(VDSOCC) $(a_flags) $(CC64FLAGS) $(AS64FLAGS) -c -o $@ $< diff --git a/arch/powerpc/kernel/vdso32/cacheflush.S b/arch/powerpc/kernel/vdso/cacheflush.S similarity index 100% rename from arch/powerpc/kernel/vdso32/cacheflush.S rename to arch/powerpc/kernel/vdso/cacheflush.S diff --git a/arch/powerpc/kernel/vdso32/datapage.S b/arch/powerpc/kernel/vdso/datapage.S similarity index 100% rename from arch/powerpc/kernel/vdso32/datapage.S rename to arch/powerpc/kernel/vdso/datapage.S diff --git a/arch/powerpc/kernel/vdso32/gen_vdso32_offsets.sh b/arch/powerpc/kernel/vdso/gen_vdso32_offsets.sh similarity index 100% rename from arch/powerpc/kernel/vdso32/gen_vdso32_offsets.sh rename to arch/powerpc/kernel/vdso/gen_vdso32_offsets.sh diff --git a/arch/powerpc/kernel/vdso64/gen_vdso_offsets.sh b/arch/powerpc/kernel/vdso/gen_vdso64_offsets.sh similarity index 100% rename from arch/powerpc/kernel/vdso64/gen_vdso_offsets.sh rename to arch/powerpc/kernel/vdso/gen_vdso64_offsets.sh diff --git a/arch/powerpc/kernel/vdso32/getcpu.S b/arch/powerpc/kernel/vdso/getcpu.S similarity index 100% rename from arch/powerpc/kernel/vdso32/getcpu.S rename to arch/powerpc/kernel/vdso/getcpu.S diff --git a/arch/powerpc/kernel/vdso32/gettimeofday.S b/arch/powerpc/kernel/vdso/gettimeofday.S similarity index 100% rename from arch/powerpc/kernel/vdso32/gettimeofday.S rename to arch/powerpc/kernel/vdso/gettimeofday.S diff --git a/arch/powerpc/kernel/vdso32/note.S b/arch/powerpc/kernel/vdso/note.S similarity index 100% rename from arch/powerpc/kernel/vdso32/note.S rename to arch/powerpc/kernel/vdso/note.S diff --git a/arch/powerpc/kernel/vdso32/sigtramp32.S b/arch/powerpc/kernel/vdso/sigtramp32.S similarity index 100% rename from arch/powerpc/kernel/vdso32/sigtramp32.S rename to arch/powerpc/kernel/vdso/sigtramp32.S diff --git a/arch/powerpc/kernel/vdso64/sigtramp.S b/arch/powerpc/kernel/vdso/sigtramp64.S similarity index 100% rename from arch/powerpc/kernel/vdso64/sigtramp.S rename to arch/powerpc/kernel/vdso/sigtramp64.S diff --git a/arch/powerpc/kernel/vdso32/vdso32.lds.S b/arch/powerpc/kernel/vdso/vdso32.lds.S similarity index 100% rename from arch/powerpc/kernel/vdso32/vdso32.lds.S rename to arch/powerpc/kernel/vdso/vdso32.lds.S diff --git a/arch/powerpc/kernel/vdso64/vdso64.lds.S b/arch/powerpc/kernel/vdso/vdso64.lds.S similarity index 100% rename from arch/powerpc/kernel/vdso64/vdso64.lds.S rename to arch/powerpc/kernel/vdso/vdso64.lds.S diff --git a/arch/powerpc/kernel/vdso32/vgettimeofday.c b/arch/powerpc/kernel/vdso/vgettimeofday.c similarity index 100% rename from arch/powerpc/kernel/vdso32/vgettimeofday.c rename to arch/powerpc/kernel/vdso/vgettimeofday.c diff --git a/arch/powerpc/kernel/vdso32/.gitignore b/arch/powerpc/kernel/vdso32/.gitignore deleted file mode 100644 index 824b863ec6bd..000000000000 --- a/arch/powerpc/kernel/vdso32/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only -vdso32.lds -vdso32.so.dbg diff --git a/arch/powerpc/kernel/vdso32_wrapper.S b/arch/powerpc/kernel/vdso32_wrapper.S index 3f5ef035b0a9..10f92f265d51 100644 --- a/arch/powerpc/kernel/vdso32_wrapper.S +++ b/arch/powerpc/kernel/vdso32_wrapper.S @@ -7,7 +7,7 @@ .globl vdso32_start, vdso32_end .balign PAGE_SIZE vdso32_start: - .incbin "arch/powerpc/kernel/vdso32/vdso32.so.dbg" + .incbin "arch/powerpc/kernel/vdso/vdso32.so.dbg" .balign PAGE_SIZE vdso32_end: diff --git a/arch/powerpc/kernel/vdso64/Makefile b/arch/powerpc/kernel/vdso64/Makefile deleted file mode 100644 index 3c5baaa6f1e7..000000000000 --- a/arch/powerpc/kernel/vdso64/Makefile +++ /dev/null @@ -1,56 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 -# List of files in the vdso, has to be asm only for now - -ARCH_REL_TYPE_ABS := R_PPC_JUMP_SLOT|R_PPC_GLOB_DAT|R_PPC_ADDR32|R_PPC_ADDR24|R_PPC_ADDR16|R_PPC_ADDR16_LO|R_PPC_ADDR16_HI|R_PPC_ADDR16_HA|R_PPC_ADDR14|R_PPC_ADDR14_BRTAKEN|R_PPC_ADDR14_BRNTAKEN|R_PPC_REL24 -include $(srctree)/lib/vdso/Makefile - -obj-vdso64 = sigtramp.o gettimeofday.o datapage.o cacheflush.o note.o getcpu.o - -ifneq ($(c-gettimeofday-y),) - CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y) - CFLAGS_vgettimeofday.o += $(DISABLE_LATENT_ENTROPY_PLUGIN) - CFLAGS_vgettimeofday.o += $(call cc-option, -fno-stack-protector) - CFLAGS_vgettimeofday.o += -DDISABLE_BRANCH_PROFILING - CFLAGS_vgettimeofday.o += -ffreestanding -fasynchronous-unwind-tables - CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) -endif - -# Build rules - -targets := $(obj-vdso64) vdso64.so.dbg vgettimeofday.o -obj-vdso64 := $(addprefix $(obj)/, $(obj-vdso64)) - -GCOV_PROFILE := n -KCOV_INSTRUMENT := n -UBSAN_SANITIZE := n -KASAN_SANITIZE := n - -ccflags-y := -shared -fno-common -fno-builtin -nostdlib \ - -Wl,-soname=linux-vdso64.so.1 -Wl,--hash-style=both - -# Go prior to 1.16.x assumes r30 is not clobbered by any VDSO code. That used to be true -# by accident when the VDSO was hand-written asm code, but may not be now that the VDSO is -# compiler generated. To avoid breaking Go tell GCC not to use r30. Impact on code -# generation is minimal, it will just use r29 instead. -ccflags-y += $(call cc-option, -ffixed-r30) - -asflags-y := -D__VDSO64__ -s - -targets += vdso64.lds -CPPFLAGS_vdso64.lds += -P -C -U$(ARCH) - -# link rule for the .so file, .lds has to be first -$(obj)/vdso64.so.dbg: $(src)/vdso64.lds $(obj-vdso64) $(obj)/vgettimeofday.o FORCE - $(call if_changed,vdso64ld_and_check) - -# Generate VDSO offsets using helper script -gen-vdsosym := $(srctree)/$(src)/gen_vdso_offsets.sh -quiet_cmd_vdsosym = VDSOSYM $@ - cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@ - -include/generated/vdso64-offsets.h: $(obj)/vdso64.so.dbg FORCE - $(call if_changed,vdsosym) - -# actual build commands -quiet_cmd_vdso64ld_and_check = VDSO64L $@ - cmd_vdso64ld_and_check = $(CC) $(c_flags) -o $@ -Wl,-T$(filter %.lds,$^) $(filter %.o,$^); $(cmd_vdso_check) diff --git a/arch/powerpc/kernel/vdso64/cacheflush.S b/arch/powerpc/kernel/vdso64/cacheflush.S deleted file mode 100644 index 76c3c8cf8ece..000000000000 --- a/arch/powerpc/kernel/vdso64/cacheflush.S +++ /dev/null @@ -1,75 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -/* - * vDSO provided cache flush routines - * - * Copyright (C) 2004 Benjamin Herrenschmuidt (benh@kernel.crashing.org), - * IBM Corp. - */ -#include -#include -#include -#include -#include - - .text - -/* - * Default "generic" version of __kernel_sync_dicache. - * - * void __kernel_sync_dicache(unsigned long start, unsigned long end) - * - * Flushes the data cache & invalidate the instruction cache for the - * provided range [start, end[ - */ -V_FUNCTION_BEGIN(__kernel_sync_dicache) - .cfi_startproc -BEGIN_FTR_SECTION - b 3f -END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE) - mflr r12 - .cfi_register lr,r12 - get_datapage r10 - mtlr r12 - .cfi_restore lr - - lwz r7,CFG_DCACHE_BLOCKSZ(r10) - addi r5,r7,-1 - andc r6,r3,r5 /* round low to line bdy */ - subf r8,r6,r4 /* compute length */ - add r8,r8,r5 /* ensure we get enough */ - lwz r9,CFG_DCACHE_LOGBLOCKSZ(r10) - srd. r8,r8,r9 /* compute line count */ - crclr cr0*4+so - beqlr /* nothing to do? */ - mtctr r8 -1: dcbst 0,r6 - add r6,r6,r7 - bdnz 1b - sync - -/* Now invalidate the instruction cache */ - - lwz r7,CFG_ICACHE_BLOCKSZ(r10) - addi r5,r7,-1 - andc r6,r3,r5 /* round low to line bdy */ - subf r8,r6,r4 /* compute length */ - add r8,r8,r5 - lwz r9,CFG_ICACHE_LOGBLOCKSZ(r10) - srd. r8,r8,r9 /* compute line count */ - crclr cr0*4+so - beqlr /* nothing to do? */ - mtctr r8 -2: icbi 0,r6 - add r6,r6,r7 - bdnz 2b - isync - li r3,0 - blr -3: - crclr cr0*4+so - sync - isync - li r3,0 - blr - .cfi_endproc -V_FUNCTION_END(__kernel_sync_dicache) diff --git a/arch/powerpc/kernel/vdso64/datapage.S b/arch/powerpc/kernel/vdso64/datapage.S deleted file mode 100644 index 00760dc69d68..000000000000 --- a/arch/powerpc/kernel/vdso64/datapage.S +++ /dev/null @@ -1,59 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -/* - * Access to the shared data page by the vDSO & syscall map - * - * Copyright (C) 2004 Benjamin Herrenschmuidt (benh@kernel.crashing.org), IBM Corp. - */ - -#include -#include -#include -#include -#include -#include - - .text - -/* - * void *__kernel_get_syscall_map(unsigned int *syscall_count) ; - * - * returns a pointer to the syscall map. the map is agnostic to the - * size of "long", unlike kernel bitops, it stores bits from top to - * bottom so that memory actually contains a linear bitmap - * check for syscall N by testing bit (0x80000000 >> (N & 0x1f)) of - * 32 bits int at N >> 5. - */ -V_FUNCTION_BEGIN(__kernel_get_syscall_map) - .cfi_startproc - mflr r12 - .cfi_register lr,r12 - mr r4,r3 - get_datapage r3 - mtlr r12 - addi r3,r3,CFG_SYSCALL_MAP64 - cmpldi cr0,r4,0 - crclr cr0*4+so - beqlr - li r0,NR_syscalls - stw r0,0(r4) - blr - .cfi_endproc -V_FUNCTION_END(__kernel_get_syscall_map) - - -/* - * void unsigned long __kernel_get_tbfreq(void); - * - * returns the timebase frequency in HZ - */ -V_FUNCTION_BEGIN(__kernel_get_tbfreq) - .cfi_startproc - mflr r12 - .cfi_register lr,r12 - get_datapage r3 - ld r3,CFG_TB_TICKS_PER_SEC(r3) - mtlr r12 - crclr cr0*4+so - blr - .cfi_endproc -V_FUNCTION_END(__kernel_get_tbfreq) diff --git a/arch/powerpc/kernel/vdso64/getcpu.S b/arch/powerpc/kernel/vdso64/getcpu.S deleted file mode 100644 index 12bbf236cdc4..000000000000 --- a/arch/powerpc/kernel/vdso64/getcpu.S +++ /dev/null @@ -1,33 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -/* - * - * Copyright (C) IBM Corporation, 2012 - * - * Author: Anton Blanchard - */ -#include -#include - - .text -/* - * Exact prototype of getcpu - * - * int __kernel_getcpu(unsigned *cpu, unsigned *node); - * - */ -V_FUNCTION_BEGIN(__kernel_getcpu) - .cfi_startproc - mfspr r5,SPRN_SPRG_VDSO_READ - cmpdi cr0,r3,0 - cmpdi cr1,r4,0 - clrlwi r6,r5,16 - rlwinm r7,r5,16,31-15,31-0 - beq cr0,1f - stw r6,0(r3) -1: beq cr1,2f - stw r7,0(r4) -2: crclr cr0*4+so - li r3,0 /* always success */ - blr - .cfi_endproc -V_FUNCTION_END(__kernel_getcpu) diff --git a/arch/powerpc/kernel/vdso64/gettimeofday.S b/arch/powerpc/kernel/vdso64/gettimeofday.S deleted file mode 100644 index d7a7bfb51081..000000000000 --- a/arch/powerpc/kernel/vdso64/gettimeofday.S +++ /dev/null @@ -1,58 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -/* - * Userland implementation of gettimeofday() for 64 bits processes in a - * ppc64 kernel for use in the vDSO - * - * Copyright (C) 2004 Benjamin Herrenschmuidt (benh@kernel.crashing.org), - * IBM Corp. - */ -#include -#include -#include -#include -#include -#include -#include - - .text -/* - * Exact prototype of gettimeofday - * - * int __kernel_gettimeofday(struct timeval *tv, struct timezone *tz); - * - */ -V_FUNCTION_BEGIN(__kernel_gettimeofday) - cvdso_call __c_kernel_gettimeofday -V_FUNCTION_END(__kernel_gettimeofday) - - -/* - * Exact prototype of clock_gettime() - * - * int __kernel_clock_gettime(clockid_t clock_id, struct timespec *tp); - * - */ -V_FUNCTION_BEGIN(__kernel_clock_gettime) - cvdso_call __c_kernel_clock_gettime -V_FUNCTION_END(__kernel_clock_gettime) - - -/* - * Exact prototype of clock_getres() - * - * int __kernel_clock_getres(clockid_t clock_id, struct timespec *res); - * - */ -V_FUNCTION_BEGIN(__kernel_clock_getres) - cvdso_call __c_kernel_clock_getres -V_FUNCTION_END(__kernel_clock_getres) - -/* - * Exact prototype of time() - * - * time_t time(time *t); - * - */ -V_FUNCTION_BEGIN(__kernel_time) - cvdso_call_time __c_kernel_time -V_FUNCTION_END(__kernel_time) diff --git a/arch/powerpc/kernel/vdso64/note.S b/arch/powerpc/kernel/vdso64/note.S deleted file mode 100644 index dc2a509f7e8a..000000000000 --- a/arch/powerpc/kernel/vdso64/note.S +++ /dev/null @@ -1 +0,0 @@ -#include "../vdso32/note.S" diff --git a/arch/powerpc/kernel/vdso64/vgettimeofday.c b/arch/powerpc/kernel/vdso64/vgettimeofday.c deleted file mode 100644 index 5b5500058344..000000000000 --- a/arch/powerpc/kernel/vdso64/vgettimeofday.c +++ /dev/null @@ -1,29 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* - * Powerpc userspace implementations of gettimeofday() and similar. - */ -#include -#include - -int __c_kernel_clock_gettime(clockid_t clock, struct __kernel_timespec *ts, - const struct vdso_data *vd) -{ - return __cvdso_clock_gettime_data(vd, clock, ts); -} - -int __c_kernel_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz, - const struct vdso_data *vd) -{ - return __cvdso_gettimeofday_data(vd, tv, tz); -} - -int __c_kernel_clock_getres(clockid_t clock_id, struct __kernel_timespec *res, - const struct vdso_data *vd) -{ - return __cvdso_clock_getres_data(vd, clock_id, res); -} - -__kernel_old_time_t __c_kernel_time(__kernel_old_time_t *time, const struct vdso_data *vd) -{ - return __cvdso_time_data(vd, time); -} diff --git a/arch/powerpc/kernel/vdso64_wrapper.S b/arch/powerpc/kernel/vdso64_wrapper.S index 1d56d81fe3b3..839d1a61411d 100644 --- a/arch/powerpc/kernel/vdso64_wrapper.S +++ b/arch/powerpc/kernel/vdso64_wrapper.S @@ -7,7 +7,7 @@ .globl vdso64_start, vdso64_end .balign PAGE_SIZE vdso64_start: - .incbin "arch/powerpc/kernel/vdso64/vdso64.so.dbg" + .incbin "arch/powerpc/kernel/vdso/vdso64.so.dbg" .balign PAGE_SIZE vdso64_end: From patchwork Fri Jan 21 16:30:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe Leroy X-Patchwork-Id: 1582651 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org (client-ip=112.213.38.117; helo=lists.ozlabs.org; envelope-from=linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org; receiver=) Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JgPzB45Fsz9sCD for ; Sat, 22 Jan 2022 03:31:50 +1100 (AEDT) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4JgPzB2y9nz3cm5 for ; Sat, 22 Jan 2022 03:31:50 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=csgroup.eu (client-ip=2a01:111:f400:7e19::629; helo=fra01-mr2-obe.outbound.protection.outlook.com; envelope-from=christophe.leroy@csgroup.eu; receiver=) Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01on0629.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e19::629]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4JgPy02Wc9z30Qt for ; Sat, 22 Jan 2022 03:30:48 +1100 (AEDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nMBwN8hoX3KypkVrbef+L2CQLO0/SoO2Moa/z5UsuRGO96so09zCK+eLSZllz1ODMnDz7TzqQB3xc5+JPvZxX8QPmQfzqsYP8CTJmzqxS8ndTipVCn8+VDIvDp+uPyhJYktmF/X8SjKH3R6phcTivA6V/M141RYmxYsmKmEURrQIePxLO1tJyw8XP1yKwgE0JOmfvB3sBWzTJpFbJWUrnGKFb//gqSERaRRbsDN+DUVObWiq4vTJvMjxJjqHkqRRhNFvLDoljIfJt0/2LRdCYpjFuZsGxAu036Y1DKQqH57SsOTsnyF3gzABDXqgsivE/eDgmUGQ/DH9KgD0TaTLRw== 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=LqBVuTIqU1dVAeg6hBoCe/Re7DTyqbB/RfDQyeq4IY8=; b=XXjlJGjmaiCoXe8x3YASttCXga2bDMcpyWbEn/P94XpHHLXamhUzqZCmd1yuojIWrPlUTFMc50JJcdetW9jZhwUqRauLwvgy8HjOp5WdeGvR/gmsR1dHT3JT6FFzPxEgtAJK9TMB8D1lbWwiMkA6d3OXnkkWsFQnW+DYothKOtwgkW4zhqs1beFua1kI6T9Or46n9YKAk/R+YlFHOR6oUuoCddETan8xnRh7d2gPGANOnnP1uhNeqTi9Lqx6bSLZ4xlAWAeb75ebWLSXOUl78BriHqdpGgVdiy9GmWPWVYNEjQJKvrCZWw7F48tk5lBNN6RPVBizEARNpdqHLGikUg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:31::15) by PR0P264MB3436.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:14b::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.8; Fri, 21 Jan 2022 16:30:30 +0000 Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::9d4f:1090:9b36:3fc5]) by MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::9d4f:1090:9b36:3fc5%5]) with mapi id 15.20.4909.008; Fri, 21 Jan 2022 16:30:30 +0000 From: Christophe Leroy To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , "masahiroy@kernel.org" Subject: [PATCH v4 4/5] powerpc/vdso: Remove cvdso_call_time macro Thread-Topic: [PATCH v4 4/5] powerpc/vdso: Remove cvdso_call_time macro Thread-Index: AQHYDuQ06ytioK3kYkGg6cu79gegnA== Date: Fri, 21 Jan 2022 16:30:30 +0000 Message-ID: <837a260ad86fc1ce297a562c2117fd69be5f7b5c.1642782130.git.christophe.leroy@csgroup.eu> References: In-Reply-To: Accept-Language: fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=csgroup.eu; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: bdadc2ed-b81f-4fe2-f686-08d9dcfb5700 x-ms-traffictypediagnostic: PR0P264MB3436:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5516; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4/BiyQWQB5KJXQE98B6ryzDQmsKmhKbqfVZKNWZ2lYPz8O62A084enp4KLQI73zsCgUHasaWFSAhMRqlurZnyumfpbeUhNQzCvevK0NCAZEbOo1+2KD0s7+GfIenjWaUQ6CyY54rn5Yos1qnwrCMp6NTQqfOufhov+4dNUkqsHaW7nbKblu/uL9f9bT6xQXKLfn7xlao+22qztm53s5j245UbduBXtONJhfZgYJr9bidzbc9B54v6rHOZEJ9y3SGAit18Mb/7FrNW46uKfMyjVmbGI0xWCsznxgdibkAW6S1zWkUNE68rDYHEutGhSi/qq2z/TA8vBOwcX+FrQKdyltrupSeRP5M0NGJaPjQPPDlpHb53cbMMI2nPkqPXsssqLvZfiO1DLMmRa1ZSBqMLDRxBHt1R89JWGxU4RWpOVbDsYAdYRmQrhRqCOQ0UGm8KNfS6bvxV0OPPKhMNLlRMa58fgbdyWx0HBGldBVCPEtppdLBJB3zbJZifXyzeKtcIiOFQXIayzg3tsGuSeyOIpfbcnSkA8ZkEVmKRvRO9jLkySYbQpv2047FkIxc1u/dtIjcLgbap7EVnpytrEAFiR5Ogu+aOzcIru9XejSLk7JYuLaVLEYDZ6YCSzrZ5Vge8xgoqO1zchXIW4t8+/kdQzkJfErjYrnk5R+DjDaPRjXgsJ6FIc2xeHKmD4VqdVffScu7EKRMCsjrjVAUL3o+Dg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(366004)(44832011)(36756003)(5660300002)(64756008)(38070700005)(6486002)(4326008)(66446008)(186003)(66476007)(66556008)(66946007)(91956017)(86362001)(6506007)(83380400001)(38100700002)(2906002)(54906003)(110136005)(122000001)(71200400001)(316002)(508600001)(6512007)(8676002)(8936002)(76116006)(26005)(2616005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?6EcOTad7SLmGtdTNInsP3hd?= =?iso-8859-1?q?NzF5CwQPJbix8HPwHG7EPiJ6uG2TydsGgM7o/p6lrYh8l7P5mB25GThzapz3?= =?iso-8859-1?q?Jo8Fwh2XOv0wOFC6T3XbdUB02ROEie2+ETLc1ub7REbvFoool27r7aJ+yCty?= =?iso-8859-1?q?1r2O5p6fVG+R8LOoo8b0E2wrjFu1jRmj2KXXcVx8rCTZBsrFNtQvRhqg7Fsh?= =?iso-8859-1?q?KGVXQebtaxVxpd7W/RmmD9snj4DgYqxVDL/jNKurDmxPelW58/vpIvu+PQ5f?= =?iso-8859-1?q?CfC+YHN+bBI5SUTcAI1DuLUp9C8jJDu/nqCuUK8gucu78yu2jawCudegTdyG?= =?iso-8859-1?q?v7yu5lM/5/gpWTOo1t4jtP8IAL5jI8Ky00VgcMfCMz9ru10OgN3p+Gs+N6q0?= =?iso-8859-1?q?GKB4OLcWbI/pqeXMoLvjZEX23PlFVrc5qDo1ddK2Q0Mg2Zn91ziEVUP3/DST?= =?iso-8859-1?q?w/HIH4Ksgt2KG1/71ot8b7o4+VRCD1lMo7DCHnCbjvvGe+20G6OXLg+4hku1?= =?iso-8859-1?q?hUx+17ajTEf1Y757mgXeuPGqwYUCCyJ9WfJr6HCg29xngqfp7tGwJZ8i9DHS?= =?iso-8859-1?q?L3LHNbbnjpeTOFlS+lnrqZgmap5oqxPCwPlE3b5hQJnSMMEup9wMg9HbJMac?= =?iso-8859-1?q?DpAQKSmB8THpbzUTMVfINy2E/03en0DNb39EqRtzCajYs3W6VK5qc6pLbS21?= =?iso-8859-1?q?BHIM5rWhoJJO8fxzcYBk7rD/iNplb4tjt94YH2Y/DAE9S/K5TG2bT4NCEz3q?= =?iso-8859-1?q?QCcC7+5QcjDpSPjARqxHnb5ka/5GX/6Ea8k3rp3C4UBDSthvT5E3gqFAMVAF?= =?iso-8859-1?q?EaqxVQeLHpMPcGSSxRzYK07ECK8LaEnS43drvYbz6XhvYE6XZ+EERT8zknpJ?= =?iso-8859-1?q?CcT5cRSvzLwHQ0bU8z29ZhpJhaDDpkgDqC49sRfslpR0pJicjHagSHLjqWdO?= =?iso-8859-1?q?XvV+PUQajhbXUak9+KxvuI7mf1dqgl7VuagyWikKd4aQ/GwRcshetCSK1EVD?= =?iso-8859-1?q?sMSdA+UIWMf/VPA7qexRK6+0wjIKo9qSK7Ljk1xiOJgaa9HNT/GGPNhsuxLG?= =?iso-8859-1?q?IEyp7oGB6QKvZYglH/uWf60N0ga58y20aFq8T/PFcP/gxVBIQzuNKZp2A5GZ?= =?iso-8859-1?q?gQ5rI6449rUP0aUnbaF4HpA0Y7Q9zvkMqNKKpbtffn3z2VNqsRcnHdD6JwkM?= =?iso-8859-1?q?8wt4N60vr0rq+QuolTXMMPBrOi8wzaSpJ883YlP/qYTwT/KumNZ1X63wO4Yd?= =?iso-8859-1?q?02JPhya6VNGHmG2QNdTOJkIdlmhxXqxbwycPK87sOzKMV55Bd62by1+WIdt0?= =?iso-8859-1?q?pyOjmqY+kSwIRmfY4edFNoF2oZ6dIEcfpR2p9Wp7aR1+eYOfPrf3Ld7UAMat?= =?iso-8859-1?q?VcMdsrSGUPx/Vl4riWZ0uBB6WlbxzOMBhYrAb6xO1c0z6yZKjbPVZQ9qFgGb?= =?iso-8859-1?q?74LMZf7/jJurSSGoThwtXcFq8vzNgv+sWYLaZf0TC4UVsyFbmx82PqXep+Td?= =?iso-8859-1?q?tFz1muiq5i7E0p1Qplz3p1VeRrnuqtpJbkkOtw7Q3JuxDSxEartthMAiV/Ui?= =?iso-8859-1?q?SwJpFcw9HLIckS8SYg99mQmFJpn7AKZkwLCs55X7IfmuiSWSCvqttSRXeGhv?= =?iso-8859-1?q?CaP3B0zBPyXjpLQdZrYA14qRcQ+GUYZSsZONMSjcMT8uNvMxL++Ms1mTD0sa?= =?iso-8859-1?q?JHyBgEe0lEC2LuZLDs4l159oFZd6/qTivBuB3S0wAUblUI1S1pYplmPhv2P4?= =?iso-8859-1?q?ahz8=3D?= MIME-Version: 1.0 X-OriginatorOrg: csgroup.eu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: bdadc2ed-b81f-4fe2-f686-08d9dcfb5700 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2022 16:30:30.3281 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9914def7-b676-4fda-8815-5d49fb3b45c8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: AbRk++NBdnkXs6gKelGS0ezonQHIu1AwumNsx3Xagsp3qY63NZHJ2VodFVCOgsCu82AN5sn6pRg72NND6luGQzmvepCFlfPVS2iDLxs2JL0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR0P264MB3436 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "linuxppc-dev@lists.ozlabs.org" , "linux-kernel@vger.kernel.org" Errors-To: linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" cvdso_call_time macro is very similar to cvdso_call macro. Add a call_time argument to cvdso_call which is 0 by default and set to 1 when using cvdso_call to call __c_kernel_time(). Return returned value as is with CR[SO] cleared when it is used for time(). Signed-off-by: Christophe Leroy --- arch/powerpc/include/asm/vdso/gettimeofday.h | 37 ++++++-------------- arch/powerpc/kernel/vdso/gettimeofday.S | 2 +- 2 files changed, 11 insertions(+), 28 deletions(-) diff --git a/arch/powerpc/include/asm/vdso/gettimeofday.h b/arch/powerpc/include/asm/vdso/gettimeofday.h index 1faff0be1111..df00e91c9a90 100644 --- a/arch/powerpc/include/asm/vdso/gettimeofday.h +++ b/arch/powerpc/include/asm/vdso/gettimeofday.h @@ -9,12 +9,12 @@ #include /* - * The macros sets two stack frames, one for the caller and one for the callee + * The macro sets two stack frames, one for the caller and one for the callee * because there are no requirement for the caller to set a stack frame when * calling VDSO so it may have omitted to set one, especially on PPC64 */ -.macro cvdso_call funct +.macro cvdso_call funct call_time=0 .cfi_startproc PPC_STLU r1, -PPC_MIN_STKFRM(r1) mflr r0 @@ -25,45 +25,28 @@ PPC_STL r2, PPC_MIN_STKFRM + STK_GOT(r1) #endif get_datapage r5 + .ifeq \call_time addi r5, r5, VDSO_DATA_OFFSET + .else + addi r4, r5, VDSO_DATA_OFFSET + .endif bl DOTSYM(\funct) PPC_LL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(r1) #ifdef __powerpc64__ PPC_LL r2, PPC_MIN_STKFRM + STK_GOT(r1) #endif + .ifeq \call_time cmpwi r3, 0 + .endif mtlr r0 .cfi_restore lr addi r1, r1, 2 * PPC_MIN_STKFRM crclr so + .ifeq \call_time beqlr+ crset so neg r3, r3 - blr - .cfi_endproc -.endm - -.macro cvdso_call_time funct - .cfi_startproc - PPC_STLU r1, -PPC_MIN_STKFRM(r1) - mflr r0 - .cfi_register lr, r0 - PPC_STLU r1, -PPC_MIN_STKFRM(r1) - PPC_STL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(r1) -#ifdef __powerpc64__ - PPC_STL r2, PPC_MIN_STKFRM + STK_GOT(r1) -#endif - get_datapage r4 - addi r4, r4, VDSO_DATA_OFFSET - bl DOTSYM(\funct) - PPC_LL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(r1) -#ifdef __powerpc64__ - PPC_LL r2, PPC_MIN_STKFRM + STK_GOT(r1) -#endif - crclr so - mtlr r0 - .cfi_restore lr - addi r1, r1, 2 * PPC_MIN_STKFRM + .endif blr .cfi_endproc .endm diff --git a/arch/powerpc/kernel/vdso/gettimeofday.S b/arch/powerpc/kernel/vdso/gettimeofday.S index c875312274aa..397f290015bc 100644 --- a/arch/powerpc/kernel/vdso/gettimeofday.S +++ b/arch/powerpc/kernel/vdso/gettimeofday.S @@ -65,7 +65,7 @@ V_FUNCTION_END(__kernel_clock_getres) * */ V_FUNCTION_BEGIN(__kernel_time) - cvdso_call_time __c_kernel_time + cvdso_call __c_kernel_time call_time=1 V_FUNCTION_END(__kernel_time) /* Routines for restoring integer registers, called by the compiler. */ From patchwork Fri Jan 21 16:30:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe Leroy X-Patchwork-Id: 1582654 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org (client-ip=2404:9400:2:0:216:3eff:fee1:b9f1; helo=lists.ozlabs.org; envelope-from=linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org; receiver=) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2404:9400:2:0:216:3eff:fee1:b9f1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JgQ0D375Vz9sCD for ; Sat, 22 Jan 2022 03:32:44 +1100 (AEDT) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4JgQ0D2LNyz3dnS for ; Sat, 22 Jan 2022 03:32:44 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=csgroup.eu (client-ip=2a01:111:f400:7e19::629; helo=fra01-mr2-obe.outbound.protection.outlook.com; envelope-from=christophe.leroy@csgroup.eu; receiver=) Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01on0629.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e19::629]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4JgPy06FXDz30Qt for ; Sat, 22 Jan 2022 03:30:48 +1100 (AEDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UbN0FgcCVXh7nVJIniGF/Xdke7yA7ax11B+sbAmEFIxKI85C+2a21m4cNWLOf3L0YMHRZRf2YNwgyzn1hJyoo2LJD0odFviFUj8d/uS7RmeVjFiKrk2/mK6+EkzZJ5+aIeLitvt503z2nCjFRu1VnWr0CHeXk5P9qi2O5T2fRtEbCAr9KxDhx0i3guGa5tX9SqgwlrPsU4myuYAeZ0gMWtsCnx2lsXFt8zAa9QGvk4Kgh7bqbpmyO6emnVEmzteVdsG3mon7LqLBjHmEBoNausj2lxjqsMpPGaNlVbR91ixrrSByau2TK6IYCXg3IkXfR3Q0jtpQGsjphnUb6kbBqw== 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=67c49INXCxQa5RTPAo1HMh15Mf/WhhsRgr4XzfcxKBs=; b=nqjwkdBP2Byrw+rm44JpMEky0R9h3C8SDXfIvCQn7+cBmSnLJ5u2p4ag/Sy4rfHBvjCsqBf5Me9G8qq4eQ3oCSRuj86Kg6s2q9O03Qp3zbmM9bvwllyLStOeCFhXnXLdwZ1an/We/ENKAYndnTocxXKQ367+xS0UhF3HIbelVyjuX+oiS8G5R66goAfNcGSwV4U59/3DyY/ajLh6wWIvtClxOiV5YDZCfq8G4OimfxUZhYmYtfmH0xWaQYSv7ODTMVeH9qwyxTPozuBVKcRGukyHBUYsL8v2CHpbDl8vCih8c9no3DNpFHfWKXNLXiCzuBUiLDuEPoHeXLjtTTEfOA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:31::15) by PR0P264MB3436.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:14b::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.8; Fri, 21 Jan 2022 16:30:35 +0000 Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::9d4f:1090:9b36:3fc5]) by MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::9d4f:1090:9b36:3fc5%5]) with mapi id 15.20.4909.008; Fri, 21 Jan 2022 16:30:35 +0000 From: Christophe Leroy To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , "masahiroy@kernel.org" Subject: [PATCH v4 5/5] powerpc/vdso: Move cvdso_call macro into gettimeofday.S Thread-Topic: [PATCH v4 5/5] powerpc/vdso: Move cvdso_call macro into gettimeofday.S Thread-Index: AQHYDuQ30VAgV6brFk6OKmb40I797Q== Date: Fri, 21 Jan 2022 16:30:34 +0000 Message-ID: <72720359d4c58e3a3b96dd74952741225faac3de.1642782130.git.christophe.leroy@csgroup.eu> References: In-Reply-To: Accept-Language: fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=csgroup.eu; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0c612825-ed1d-4edd-1a81-08d9dcfb59c3 x-ms-traffictypediagnostic: PR0P264MB3436:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4303; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: v4JZ87a1gh4FG7SGneYMxwpfSmSWH3kFFpDKijaf+CIKAvsQc5N15U5yMXpBGALyywuMhFYu1vZBYH96uHG8StxVGaOhagA0YVnhCW29HNWAB2ac8FmyATer5A2EDE2o4mN+QPxydzxmrtxoRLVYrn89Juo0otUYOOfarBm4hKUvNdSCSl7dqR/It1oEC0AaozoRT+fJuK2QXjcoXqjmMbBUi4Mq25gFsvuFfgGES6VUue0eIfUxuplKJUVukVTT0zQ675VE+nAtOQ10pQDjILcuMs71/NV2bqnI0/EjIJlIqM+MJpDPNyH/S65zoMdaPlNPh9ErBI91ARV8Y8HT/73Ql6AVxVsSb7L/BiBngYFO1iDONVkWmZl450mMftuCzVeLn7ypQVxGkLkqdbhqYbO5oUv8zuJRUAeqWXLdrdWQNyntpfBGGYHW//LmDd0+l8dGPGsyp869CDduoJP+LsinR3xsCkXZl50KSpYFg2k90udBY+qcp+QP37aaBqyCM65GDyQMUwp6sZo7TBM6XI+Q5HIAUGanQwq2m1cxBFOOT2/aXo2SlMpzWQBWppXGg7Nq//b7ZB05FCNYjlPMQjeXfgrfnafSYr67XvoPJDiLWirV8ylM2QqIFtH2qaTSkQufRc8cholNJy4TIPU6p7fQwjUpb7SmtWnNagz8beJ/vkUcmFkcxMHVPC13WLBJm6JX7+95tMDlHwuC5tMbTQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(366004)(44832011)(36756003)(5660300002)(64756008)(38070700005)(6486002)(4326008)(66446008)(186003)(66476007)(66556008)(66946007)(91956017)(86362001)(6506007)(83380400001)(38100700002)(2906002)(54906003)(110136005)(122000001)(71200400001)(316002)(508600001)(6512007)(8676002)(8936002)(76116006)(26005)(2616005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?PG8R03t4iiizvErPoUH9eRW?= =?iso-8859-1?q?RmGFe91uHklE2GHz06Huqvy2y+kmSC+m0UY0GYYFBZC6t4/CbAHl5RUimDu+?= =?iso-8859-1?q?JEa7ZOTC2gFB5WuCZuaWT+kFkhK0q9pwJUx7dWmNRxtSaLputB+PcfBnm7Lz?= =?iso-8859-1?q?6ygL7JQ0Bow8tRLNE/TNOZL9j3rcWSprMhbQ9TjNXy06Z/AYtBx+YsMohipA?= =?iso-8859-1?q?wQiXZdoy0VQVtXmBQ4AKAxSoJhgZ/p4ge5jqsfR+n7qpQhnOMiv3nb86SvUD?= =?iso-8859-1?q?NTyJEnyMAO0eR+gywP2p11IAZX/9csUGg7qqpCMi4jrTsKffwpRq5ms6I5Ws?= =?iso-8859-1?q?maDrTK3wl4GNqdmFtn5S1eU1ez7LXTgys4sKI2vhAsMUvKrErcKpGdjqjieg?= =?iso-8859-1?q?vg8Yq8U9ivrtJc2hrMWwLcSED8OT2TPt0uuW8UH70k8/Bn4AZ2xmJw61KoO8?= =?iso-8859-1?q?+bUFqQ2mm1slCwirINbhQCuG1fB/1Fbq3eYz+Bbpe0AG3gQmi7hBX/ysbC3g?= =?iso-8859-1?q?sGpJfPwb7HkTo1rmnKrpbgBEeryvJOn+UqzQOVO9wbTBvipNoIJA8+ky8iVT?= =?iso-8859-1?q?e/LH+7ABSjGDWuBy9ygHuty6Y13S/BWvnqPL+FxgNUPJ9wyeDZAmasEihjqS?= =?iso-8859-1?q?omlHVjjCaA62Ptmd1iNHyzk80txY46tbwlGdi4n/xtVDnaLFFrcQktcUly/C?= =?iso-8859-1?q?CzkltDNi8ufdP5leQCt4+Li/3tl9KKmwTI43XX+09wMHLbysqcDGCzMAzBoq?= =?iso-8859-1?q?OD11mNNxhzD8jWy6gMh8H5WZeipCja4c50yAQtuWiTgpZLBR1pVjpcuUIH6P?= =?iso-8859-1?q?rtXl/gaFKnD91tj5qHHWWSSaJqEXdWt+T6mwMrfn6opRj7tgO5HoTmnEopXw?= =?iso-8859-1?q?rViQBJgENYnmlglsUxDT+TVHUK1o5HehX5pnnlq1oXnRGVK/gNfYI76jO1zh?= =?iso-8859-1?q?3KA7LrC5hqpeisGER/zUAGTZWZGFczImX+x2o+pjOKaTeYQggzsyoG7jzcW5?= =?iso-8859-1?q?UFmhZlD4tqkP8xgNVeHF9nhSLPY8MLmaPtmm1pJaWGE5blg+yBSTad8qq/F0?= =?iso-8859-1?q?rj2U3gq5rqxrN0lXW/z3rtQ/G+8eWYBFszusgAx3lHr/M51e22elmdgxD9ir?= =?iso-8859-1?q?DGtuF5d5vgaVq7HviIgku0tJg6x4qcFQv6zvECKaf7CeE10bVhI8oHOKfcJW?= =?iso-8859-1?q?lD0il5tuspRScW0sXBuKlQ+YNZgalt1J0IYNpZXGaMJ5Lwhz2ohkajXpkhRn?= =?iso-8859-1?q?G3zQidExeYk6788dKoBvJvEXpzxgNDaeJsFiq/8a2a2zhhBYabJUgjm+5W50?= =?iso-8859-1?q?PWR7HdV8kxKyJJSVj8WCXDGXdRcxr1Ekx2sqiywCqVPQTqUcAn1dPWt56BCN?= =?iso-8859-1?q?QuIW5JeBYIqIHfJO6xw5NKkM8q/RPOxAzjJdjohCy6TCOczhgHb4IZ14FFTl?= =?iso-8859-1?q?HpXSNT3eyquS6/RQIeeRCV1vz6+o+brQPLMyTScjiwtpwURBHUySU5eZUglN?= =?iso-8859-1?q?pmVclZ4aaua8/NDDhk/avIcLLJp72uqyYE03/oKERLWDyAC3vYQRVhEO8u4m?= =?iso-8859-1?q?t6QwH3jXGL9+9JkuIwrWaKBsRvEXbIFoiEe/NfOYdg9+A+eB3QYfi1stRwhH?= =?iso-8859-1?q?fHeOt/yJrN29T2pOwT8tkZEKYTH/CNIiynnjAMSI1f8rhWuifecCHFuLbtb1?= =?iso-8859-1?q?13kCYQaHRHL29p/VjKvGP39OCyezbqbUNjiJ3rfW0TYqF53GuAUuDe/mZSEb?= =?iso-8859-1?q?PNus=3D?= MIME-Version: 1.0 X-OriginatorOrg: csgroup.eu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 0c612825-ed1d-4edd-1a81-08d9dcfb59c3 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2022 16:30:34.9715 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9914def7-b676-4fda-8815-5d49fb3b45c8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Bkk4TSf5fic2/0gtBI64AxNMxj3BXIFjV3BhIFAZr7GmP8hLGCZKytf0eMxWIre2QpoIt5frVk1sQ3NB84fel+uqVLhmsUL8uGLSBntnnFQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR0P264MB3436 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "linuxppc-dev@lists.ozlabs.org" , "linux-kernel@vger.kernel.org" Errors-To: linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" Now that gettimeofday.S is unique, move cvdso_call macro into that file which is the only user. Signed-off-by: Christophe Leroy --- arch/powerpc/include/asm/vdso/gettimeofday.h | 52 +------------------- arch/powerpc/kernel/vdso/gettimeofday.S | 44 ++++++++++++++++- 2 files changed, 45 insertions(+), 51 deletions(-) diff --git a/arch/powerpc/include/asm/vdso/gettimeofday.h b/arch/powerpc/include/asm/vdso/gettimeofday.h index df00e91c9a90..f0a4cf01e85c 100644 --- a/arch/powerpc/include/asm/vdso/gettimeofday.h +++ b/arch/powerpc/include/asm/vdso/gettimeofday.h @@ -2,57 +2,9 @@ #ifndef _ASM_POWERPC_VDSO_GETTIMEOFDAY_H #define _ASM_POWERPC_VDSO_GETTIMEOFDAY_H -#include - -#ifdef __ASSEMBLY__ - -#include - -/* - * The macro sets two stack frames, one for the caller and one for the callee - * because there are no requirement for the caller to set a stack frame when - * calling VDSO so it may have omitted to set one, especially on PPC64 - */ - -.macro cvdso_call funct call_time=0 - .cfi_startproc - PPC_STLU r1, -PPC_MIN_STKFRM(r1) - mflr r0 - .cfi_register lr, r0 - PPC_STLU r1, -PPC_MIN_STKFRM(r1) - PPC_STL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(r1) -#ifdef __powerpc64__ - PPC_STL r2, PPC_MIN_STKFRM + STK_GOT(r1) -#endif - get_datapage r5 - .ifeq \call_time - addi r5, r5, VDSO_DATA_OFFSET - .else - addi r4, r5, VDSO_DATA_OFFSET - .endif - bl DOTSYM(\funct) - PPC_LL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(r1) -#ifdef __powerpc64__ - PPC_LL r2, PPC_MIN_STKFRM + STK_GOT(r1) -#endif - .ifeq \call_time - cmpwi r3, 0 - .endif - mtlr r0 - .cfi_restore lr - addi r1, r1, 2 * PPC_MIN_STKFRM - crclr so - .ifeq \call_time - beqlr+ - crset so - neg r3, r3 - .endif - blr - .cfi_endproc -.endm - -#else +#ifndef __ASSEMBLY__ +#include #include #include #include diff --git a/arch/powerpc/kernel/vdso/gettimeofday.S b/arch/powerpc/kernel/vdso/gettimeofday.S index 397f290015bc..eb9c81e1c218 100644 --- a/arch/powerpc/kernel/vdso/gettimeofday.S +++ b/arch/powerpc/kernel/vdso/gettimeofday.S @@ -12,7 +12,49 @@ #include #include #include -#include + +/* + * The macro sets two stack frames, one for the caller and one for the callee + * because there are no requirement for the caller to set a stack frame when + * calling VDSO so it may have omitted to set one, especially on PPC64 + */ + +.macro cvdso_call funct call_time=0 + .cfi_startproc + PPC_STLU r1, -PPC_MIN_STKFRM(r1) + mflr r0 + .cfi_register lr, r0 + PPC_STLU r1, -PPC_MIN_STKFRM(r1) + PPC_STL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(r1) +#ifdef __powerpc64__ + PPC_STL r2, PPC_MIN_STKFRM + STK_GOT(r1) +#endif + get_datapage r5 + .ifeq \call_time + addi r5, r5, VDSO_DATA_OFFSET + .else + addi r4, r5, VDSO_DATA_OFFSET + .endif + bl DOTSYM(\funct) + PPC_LL r0, PPC_MIN_STKFRM + PPC_LR_STKOFF(r1) +#ifdef __powerpc64__ + PPC_LL r2, PPC_MIN_STKFRM + STK_GOT(r1) +#endif + .ifeq \call_time + cmpwi r3, 0 + .endif + mtlr r0 + .cfi_restore lr + addi r1, r1, 2 * PPC_MIN_STKFRM + crclr so + .ifeq \call_time + beqlr+ + crset so + neg r3, r3 + .endif + blr + .cfi_endproc +.endm .text /*