git: f48a68874bf4 - main - linux(4): Retire linux_semop implementation.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 06 May 2022 17:03:37 UTC
The branch main has been updated by dchagin: URL: https://cgit.FreeBSD.org/src/commit/?id=f48a68874bf4503a18c0c55887a028dab0a4600f commit f48a68874bf4503a18c0c55887a028dab0a4600f Author: Dmitry Chagin <dchagin@FreeBSD.org> AuthorDate: 2022-05-06 17:00:13 +0000 Commit: Dmitry Chagin <dchagin@FreeBSD.org> CommitDate: 2022-05-06 17:00:13 +0000 linux(4): Retire linux_semop implementation. In i386 Linux semop called via ipc() multiplexor, so use kern_semop directly from multiplexor. MFC after: 2 weeks --- sys/amd64/linux32/linux32_machdep.c | 7 ++----- sys/compat/linux/linux_ipc.c | 17 ----------------- sys/compat/linux/linux_ipc.h | 12 ------------ sys/i386/linux/linux_machdep.c | 7 ++----- 4 files changed, 4 insertions(+), 39 deletions(-) diff --git a/sys/amd64/linux32/linux32_machdep.c b/sys/amd64/linux32/linux32_machdep.c index 9dd988452a1c..baa567339689 100644 --- a/sys/amd64/linux32/linux32_machdep.c +++ b/sys/amd64/linux32/linux32_machdep.c @@ -255,12 +255,9 @@ linux_ipc(struct thread *td, struct linux_ipc_args *args) switch (args->what & 0xFFFF) { case LINUX_SEMOP: { - struct linux_semop_args a; - a.semid = args->arg1; - a.tsops = PTRIN(args->ptr); - a.nsops = args->arg2; - return (linux_semop(td, &a)); + return (kern_semop(td, args->arg1, PTRIN(args->ptr), + args->arg2, NULL)); } case LINUX_SEMGET: { struct linux_semget_args a; diff --git a/sys/compat/linux/linux_ipc.c b/sys/compat/linux/linux_ipc.c index 82fe54fae65e..3e810c303a2c 100644 --- a/sys/compat/linux/linux_ipc.c +++ b/sys/compat/linux/linux_ipc.c @@ -504,23 +504,6 @@ linux_shminfo_pushdown(l_int ver, struct l_shminfo64 *linux_shminfo64, } } -int -linux_semop(struct thread *td, struct linux_semop_args *args) -{ - struct semop_args /* { - int semid; - struct sembuf *sops; - int nsops; - } */ bsd_args; - - if (args->nsops < 1 || args->semid < 0) - return (EINVAL); - bsd_args.semid = args->semid; - bsd_args.sops = PTRIN(args->tsops); - bsd_args.nsops = args->nsops; - return (sys_semop(td, &bsd_args)); -} - int linux_semget(struct thread *td, struct linux_semget_args *args) { diff --git a/sys/compat/linux/linux_ipc.h b/sys/compat/linux/linux_ipc.h index b1bd3fffa4d6..beef18a09507 100644 --- a/sys/compat/linux/linux_ipc.h +++ b/sys/compat/linux/linux_ipc.h @@ -82,16 +82,4 @@ #define LINUX_IPC_64 0x0100 /* New version (support 32-bit UIDs, bigger message sizes, etc. */ -#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32)) - -struct linux_semop_args -{ - l_int semid; - struct l_sembuf *tsops; - l_uint nsops; -}; - -int linux_semop(struct thread *, struct linux_semop_args *); -#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */ - #endif /* _LINUX_IPC_H_ */ diff --git a/sys/i386/linux/linux_machdep.c b/sys/i386/linux/linux_machdep.c index dde11f22d4fe..09d4eb42c772 100644 --- a/sys/i386/linux/linux_machdep.c +++ b/sys/i386/linux/linux_machdep.c @@ -130,12 +130,9 @@ linux_ipc(struct thread *td, struct linux_ipc_args *args) switch (args->what & 0xFFFF) { case LINUX_SEMOP: { - struct linux_semop_args a; - a.semid = args->arg1; - a.tsops = PTRIN(args->ptr); - a.nsops = args->arg2; - return (linux_semop(td, &a)); + return (kern_semop(td, args->arg1, PTRIN(args->ptr), + args->arg2, NULL)); } case LINUX_SEMGET: { struct linux_semget_args a;