From patchwork Wed Dec 18 23:26:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Helge Deller X-Patchwork-Id: 103395 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0CCFC3858C98 for ; Wed, 18 Dec 2024 23:26:51 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0CCFC3858C98 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=sKiuS8yl X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by sourceware.org (Postfix) with ESMTPS id CDBFF3858D20 for ; Wed, 18 Dec 2024 23:26:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CDBFF3858D20 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=kernel.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=kernel.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org CDBFF3858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=147.75.193.91 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1734564373; cv=none; b=RJCRhMCC7FOsrZtUi59DVouOTM89Kz2n+kFl36UA1zxoPGy9MonapaRwuO3QwyFj0t9p3SMoKfnpYrmWXyE4cg0HGaI5cf0KEpotVYQdtvVETs0yDmPFCXqScvSX/XhaHRDq8khmuwEOE1ck4XId4lJVrJoiXoWQoVDqFi2NKJw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1734564373; c=relaxed/simple; bh=gmHKb+ysBgOen3S1SaYoWzEoCpbcqxaWst0I1KwE2nU=; h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version; b=xTuLlmyDZ8VvLzEWTIePkz6uBy3eHloQK6ZvCATuFWpXzs/rTgJNDwd4NhtI2WEtnM/2WZlTWtpz2nGF5GmK0XkNfVxZuxsHZxxeMp96wf0uwf0T4erbecC1MKduVJDQRxD0koYJM4xIfLCFJ8FvAODyI+On8NN4Q8556lsiVS4= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CDBFF3858D20 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id CD621A41377; Wed, 18 Dec 2024 23:24:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 17675C4CECD; Wed, 18 Dec 2024 23:26:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1734564372; bh=gmHKb+ysBgOen3S1SaYoWzEoCpbcqxaWst0I1KwE2nU=; h=Date:From:To:Cc:Subject:From; b=sKiuS8yltBt95/e5gPOkWXuSTJb6bRHwUXoCueigI+0wcTIS4wLjpQF1pP2W+0ga4 b0pn0diIvbC1HseiAj/4Y5uJWGnNIWLrmGrIhYYtMcyttTaFeKdDkJZyqkD/qIRlti DZcY6vpo4AmLFKzyQ/PAxCY/kJQhJ+WUNEfkE/kspeCxY5LZiNM3zfXoFRcSJM1CnR 9Et/j91NMZ8xWmsUXuv1z/EMr2QaS+aaeAlUX0BwbcEHwUhRPXod7GSFDMFLPg+G4P sao5H/ERhfFZdeQJDkVX0umF2jnhiCqoV/aDwhgsPYt8nCAvcYs86ziqUu4mHk0z8r ycMRcKgouzZeg== Date: Thu, 19 Dec 2024 00:26:08 +0100 From: Helge Deller To: libc-alpha@sourceware.org, John David Anglin Cc: linux-parisc@vger.kernel.org Subject: [PATCH v2] hppa: Wire up cacheflush syscall Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org The hppa Linux kernel supports the cacheflush() syscall since version 6.5. This adds the glibc syscall wrapper. Signed-off-by: Helge Deller --- v2: This patch was too late in release cycle for GLIBC_2.40, so Update now to GLIBC_2.41 instead. diff --git a/sysdeps/unix/sysv/linux/hppa/Makefile b/sysdeps/unix/sysv/linux/hppa/Makefile index 2e031e2f8a..9eebe8e0e7 100644 --- a/sysdeps/unix/sysv/linux/hppa/Makefile +++ b/sysdeps/unix/sysv/linux/hppa/Makefile @@ -15,6 +15,11 @@ test-xfail-check-wx-segment = * endif # $(subdir) == elf +ifeq ($(subdir),misc) +sysdep_routines += cacheflush +sysdep_headers += sys/cachectl.h +endif + ifeq ($(subdir),debug) test-xfail-tst-ssp-1 = $(have-ssp) endif # $(subdir) == debug diff --git a/sysdeps/unix/sysv/linux/hppa/Versions b/sysdeps/unix/sysv/linux/hppa/Versions index 78528e5fa2..1f83840d2f 100644 --- a/sysdeps/unix/sysv/linux/hppa/Versions +++ b/sysdeps/unix/sysv/linux/hppa/Versions @@ -23,4 +23,7 @@ libc { GLIBC_2.19 { fanotify_mark; } + GLIBC_2.41 { + cacheflush; + } } diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index 8de7644a59..306b90c8b5 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -2823,6 +2823,7 @@ GLIBC_2.4 unlinkat F GLIBC_2.4 unshare F GLIBC_2.41 sched_getattr F GLIBC_2.41 sched_setattr F +GLIBC_2.41 cacheflush F GLIBC_2.5 __readlinkat_chk F GLIBC_2.5 inet6_opt_append F GLIBC_2.5 inet6_opt_find F diff --git a/sysdeps/unix/sysv/linux/hppa/sys/cachectl.h b/sysdeps/unix/sysv/linux/hppa/sys/cachectl.h new file mode 100644 index 0000000000..16e47d1329 --- /dev/null +++ b/sysdeps/unix/sysv/linux/hppa/sys/cachectl.h @@ -0,0 +1,36 @@ +/* HPPA cache flushing interface. + Copyright (C) 2018-2024 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library. If not, see + . */ + +#ifndef _SYS_CACHECTL_H +#define _SYS_CACHECTL_H 1 + +#include + +/* Get the kernel definition for the op bits. */ +#include + +__BEGIN_DECLS + +#ifdef __USE_MISC +extern int cacheflush (void *__addr, const int __nbytes, + const int __op) __THROW; +#endif + +__END_DECLS + +#endif /* sys/cachectl.h */ diff --git a/sysdeps/unix/sysv/linux/hppa/syscalls.list b/sysdeps/unix/sysv/linux/hppa/syscalls.list index 12e4adeccc..b3020114d6 100644 --- a/sysdeps/unix/sysv/linux/hppa/syscalls.list +++ b/sysdeps/unix/sysv/linux/hppa/syscalls.list @@ -8,5 +8,6 @@ listen - listen i:ii __listen listen shutdown - shutdown i:ii __shutdown shutdown socket - socket i:iii __socket socket socketpair - socketpair i:iiif __socketpair socketpair +cacheflush - cacheflush i:pii _flush_cache cacheflush personality EXTRA personality Ei:i __personality personality