diff options
author | fjoe <fjoe@FreeBSD.org> | 2003-11-05 01:53:10 +0000 |
---|---|---|
committer | fjoe <fjoe@FreeBSD.org> | 2003-11-05 01:53:10 +0000 |
commit | 160f13825c77e0a8eb8370ae72eab3622174cb60 (patch) | |
tree | 13633d0f8603d472f72de0c33cea5d7cd406e7e2 /sys/compat/linux | |
parent | 039b0cb0daac4bfacb0c1e95792c29e9df4300d6 (diff) | |
download | FreeBSD-src-160f13825c77e0a8eb8370ae72eab3622174cb60.zip FreeBSD-src-160f13825c77e0a8eb8370ae72eab3622174cb60.tar.gz |
Back out the following revisions:
1.36 +73 -60 src/sys/compat/linux/linux_ipc.c
1.83 +102 -48 src/sys/kern/sysv_shm.c
1.8 +4 -0 src/sys/sys/syscallsubr.h
That change was intended to support vmware3, but
wantrem parameter is useless because vmware3 uses SYSV shared memory
to talk with X server and X server is native application.
The patch worked because check for wantrem was not valid
(wantrem and SHMSEG_REMOVED was never checked for SHMSEG_ALLOCATED segments).
Add kern.ipc.shm_allow_removed (integer, rw) sysctl (default 0) which when set
to 1 allows to return removed segments in
shm_find_segment_by_shmid() and shm_find_segment_by_shmidx().
MFC after: 1 week
Diffstat (limited to 'sys/compat/linux')
-rw-r--r-- | sys/compat/linux/linux_ipc.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/compat/linux/linux_ipc.c b/sys/compat/linux/linux_ipc.c index 2799229..71b6d60 100644 --- a/sys/compat/linux/linux_ipc.c +++ b/sys/compat/linux/linux_ipc.c @@ -716,7 +716,7 @@ linux_shmctl(struct thread *td, struct linux_shmctl_args *args) /* Perform shmctl wanting removed segments lookup */ error = kern_shmctl(td, args->shmid, IPC_INFO, - (void *)&bsd_shminfo, &bufsz, 1); + (void *)&bsd_shminfo, &bufsz); if (error) return error; @@ -731,7 +731,7 @@ linux_shmctl(struct thread *td, struct linux_shmctl_args *args) /* Perform shmctl wanting removed segments lookup */ error = kern_shmctl(td, args->shmid, SHM_INFO, - (void *)&bsd_shm_info, &bufsz, 1); + (void *)&bsd_shm_info, &bufsz); if (error) return error; @@ -744,7 +744,7 @@ linux_shmctl(struct thread *td, struct linux_shmctl_args *args) case LINUX_IPC_STAT: /* Perform shmctl wanting removed segments lookup */ error = kern_shmctl(td, args->shmid, IPC_STAT, - (void *)&bsd_shmid, &bufsz, 1); + (void *)&bsd_shmid, &bufsz); if (error) return error; @@ -756,7 +756,7 @@ linux_shmctl(struct thread *td, struct linux_shmctl_args *args) case LINUX_SHM_STAT: /* Perform shmctl wanting removed segments lookup */ error = kern_shmctl(td, args->shmid, IPC_STAT, - (void *)&bsd_shmid, &bufsz, 1); + (void *)&bsd_shmid, &bufsz); if (error) return error; @@ -775,7 +775,7 @@ linux_shmctl(struct thread *td, struct linux_shmctl_args *args) /* Perform shmctl wanting removed segments lookup */ return kern_shmctl(td, args->shmid, IPC_SET, - (void *)&bsd_shmid, &bufsz, 1); + (void *)&bsd_shmid, &bufsz); case LINUX_IPC_RMID: { void *buf; @@ -790,7 +790,7 @@ linux_shmctl(struct thread *td, struct linux_shmctl_args *args) linux_to_bsd_shmid_ds(&linux_shmid, &bsd_shmid); buf = (void *)&bsd_shmid; } - return kern_shmctl(td, args->shmid, IPC_RMID, buf, &bufsz, 1); + return kern_shmctl(td, args->shmid, IPC_RMID, buf, &bufsz); } case LINUX_SHM_LOCK: |