From nobody Thu Dec 11 17:32:54 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4dS06G4JmZz6K5Z8 for ; Thu, 11 Dec 2025 17:32:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (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 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dS06G3NrGz42xp for ; Thu, 11 Dec 2025 17:32:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1765474374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wwb1gW0jS2zxA/AcRjzgMvCpiAGicofHcDywq427QiA=; b=gVjyTbPl4DpfL77pB7HFuCd2qQvuSK0u1/rmqqQxZhLRGdzyWalU00uTdhIEg3NzTsOfNL T2ch7dIPIh1zXzEVGahyFrfkyicVMCxtsqtEO2MIpuq5zpFIoJ7+omM/qfYYi4h0PudOBq 6dSl6EASsT9WVhGhwvFiD+x5uD4htSVcx+ST7p3FXEEYAmE8yo29jJseZj2P1Eg9qPw1k2 wltQoBQwRhvnPfoa0z0tPWWT+fqN/njiFXBbGOi7nSAhLDA/l3H6dw4QWvqk65bfC1pwst ho0O95/g/2R7+KJo5Q4EjshS5qDrc+q7ZcjCJ3Ifsbya5HRo0Pk5TfaddALq/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1765474374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wwb1gW0jS2zxA/AcRjzgMvCpiAGicofHcDywq427QiA=; b=QbXyW7k8ziw1hBAJ2TUy0l/JMLQDDfWxW3pu49md7TnhX85qN57yCTFsCJgRQyb8TzBKqu ABKlfQRKm2tq75/oR4GKtjJvY9c5TVhnLJFRgb4J2fdIq98cmyeT4hfwn65q759qoZmIMs AAIOo3SnWXHk1dXx9bAsJgl/blZ0Nc39BJNpkwFqcwgKXP85HiArmW2mPfMFraUtNbeLya hrBzdBazQw860qib0K3hYE9vWN43mJj4HpYDORhhaCu1Xnz3iIf8kr879aBdjT9u0PDfCn gd8gjzw3YxYwdWqEdogcNOalA9bq0jHBO69mLVMB/HWeQ1BljaSsrFO4Zx/+5A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1765474374; a=rsa-sha256; cv=none; b=WePfJKqOZjFzaxIL5n/5q4f6ZuthK4i0vopkMZKDQt8SIrzVpdn3HlhHfC23yOJIjQS4wH s2GG34YreACJ2SIvDkyPi8GjvdNTTv0nLKC/cM2oFMqMiblJlKQX2QMmpsqYB9ZH33P+xc hrtXE22lh0+LdXYs1nGEDjjEg5ymIaZRuFijPn1hHwqMLNhXoE3vDYezVlWmQsjbCkdbKi wd1czRZjmeVfDJbiWrSFSEhVTo3/fKkopziNYCCj9D4J0wxbYs0V51lLiP4ujrhVaIAWTa MFmtQGjszuzPXudyPTBbvVqs3A3/5kpGxbx4fjlZqAUHelERTaWJc2jk0QjoQg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dS06G2wzkzhSH for ; Thu, 11 Dec 2025 17:32:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id c44f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 11 Dec 2025 17:32:54 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Ricardo Branco From: Ed Maste Subject: git: dbac191956f9 - main - linux: Add support for kcmp(2) system call List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: dbac191956f9b51069617b09fd0a24ca0e7bfc12 Auto-Submitted: auto-generated Date: Thu, 11 Dec 2025 17:32:54 +0000 Message-Id: <693b0046.c44f.420319d4@gitrepo.freebsd.org> The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=dbac191956f9b51069617b09fd0a24ca0e7bfc12 commit dbac191956f9b51069617b09fd0a24ca0e7bfc12 Author: Ricardo Branco AuthorDate: 2025-12-08 21:27:07 +0000 Commit: Ed Maste CommitDate: 2025-12-11 17:31:47 +0000 linux: Add support for kcmp(2) system call Signed-off-by: Ricardo Branco Reviewed by: kib Pull Request: https://github.com/freebsd/freebsd-src/pull/1920 --- sys/compat/linux/linux_dummy.c | 2 -- sys/compat/linux/linux_misc.c | 27 +++++++++++++++++++++++++++ sys/compat/linux/linux_misc.h | 11 +++++++++++ 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/sys/compat/linux/linux_dummy.c b/sys/compat/linux/linux_dummy.c index 19cd55849f65..46f98f4da1eb 100644 --- a/sys/compat/linux/linux_dummy.c +++ b/sys/compat/linux/linux_dummy.c @@ -96,8 +96,6 @@ DUMMY(setns); /* Linux 3.2: */ DUMMY(process_vm_readv); DUMMY(process_vm_writev); -/* Linux 3.5: */ -DUMMY(kcmp); /* Linux 3.8: */ DUMMY(finit_module); DUMMY(sched_setattr); diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c index 0925ffb64480..69fb9935a9ae 100644 --- a/sys/compat/linux/linux_misc.c +++ b/sys/compat/linux/linux_misc.c @@ -54,6 +54,7 @@ #include #include #include +#include #include #include @@ -3067,4 +3068,30 @@ linux_mq_getsetattr(struct thread *td, struct linux_mq_getsetattr_args *args) return (error); } +int +linux_kcmp(struct thread *td, struct linux_kcmp_args *args) +{ + int type; + + switch (args->type) { + case LINUX_KCMP_FILE: + type = KCMP_FILE; + break; + case LINUX_KCMP_FILES: + type = KCMP_FILES; + break; + case LINUX_KCMP_SIGHAND: + type = KCMP_SIGHAND; + break; + case LINUX_KCMP_VM: + type = KCMP_VM; + break; + default: + return (EINVAL); + } + + return (kern_kcmp(td, args->pid1, args->pid2, type, args->idx1, + args->idx)); +} + MODULE_DEPEND(linux, mqueuefs, 1, 1, 1); diff --git a/sys/compat/linux/linux_misc.h b/sys/compat/linux/linux_misc.h index 2d2b12ef0127..63ed914afc63 100644 --- a/sys/compat/linux/linux_misc.h +++ b/sys/compat/linux/linux_misc.h @@ -216,4 +216,15 @@ struct syscall_info { #define LINUX_IOPRIO_WHO_PGRP 2 #define LINUX_IOPRIO_WHO_USER 3 +/* Linux kcmp types from */ +#define LINUX_KCMP_FILE 0 +#define LINUX_KCMP_VM 1 +#define LINUX_KCMP_FILES 2 +#define LINUX_KCMP_FS 3 +#define LINUX_KCMP_SIGHAND 4 +#define LINUX_KCMP_IO 5 +#define LINUX_KCMP_SYSVSEM 6 +#define LINUX_KCMP_EPOLL_TFD 7 +#define LINUX_KCMP_TYPES 8 + #endif /* _LINUX_MISC_H_ */