[dm-devel] dmsetup fails on latest kernel
H. Peter Anvin
hpa at linux.intel.com
Thu Jan 19 19:58:22 UTC 2012
On 01/19/2012 10:06 AM, Bryn M. Reeves wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 01/19/2012 04:10 PM, Kasatkin, Dmitry wrote:
>> It seems "semget" is missing from:
>> arch/x86/syscalls/syscall_32.tbl But it presents in:
>> arch/x86/syscalls/syscall_64.tbl
>>
>> Is it a bug then?
>
> Maybe; I noticed that too but it's also missing in the old x86
> unistd_32.h.
>
> I thought Linux only provided the ipc(2) call - glibc sources seem to
> confirm that (sysdeps/unix/sysv/linux/semget.c).
>
> sys_sem* and friends are present in include/asm-generic/unistd.h so
> maybe these values just need to be propagated to syscall_32.tbl?
>
> Actually there's a bunch of SysV IPC calls defined in syscall_64.tbl
> that are not present in syscall_32.tbl:
>
> $ egrep 'shm|sem|msg[a-z]' arch/x86/syscalls/syscall_32.tbl
> $ egrep 'shm|sem|msg[a-z]' arch/x86/syscalls/syscall_64.tbl
> 29 64 shmget sys_shmget
> 30 64 shmat sys_shmat
> 31 64 shmctl sys_shmctl
> 64 64 semget sys_semget
> 65 64 semop sys_semop
> 66 64 semctl sys_semctl
> 67 64 shmdt sys_shmdt
> 68 64 msgget sys_msgget
> 69 64 msgsnd sys_msgsnd
> 70 64 msgrcv sys_msgrcv
> 71 64 msgctl sys_msgctl
> 220 64 semtimedop sys_semtimedop
>
> But sys_ipc is there:
>
> $ grep sys_ipc arch/x86/syscalls/syscall_32.tbl
> 117 i386 ipc sys_ipc sys32_ipc
>
No, the i386 ABI uses several system call multiplexes (sys_ipc,
sys_socketcall) which are deprecated for new ABIs. x86-64 and other new
ABIs use plain system calls. Thus, this is all as one should expect;
the right thing to do is to compare against the old 32-bit system call
table.
-hpa
More information about the dm-devel
mailing list