OSDN Git Service

* sysv_msg.cc: Add fix from upstream version 1.65.
[pf3gnuchains/pf3gnuchains4x.git] / winsup / cygserver / sysv_shm.cc
index c3cf730..700dbe2 100644 (file)
@@ -729,7 +729,7 @@ shmget_allocate_segment(struct thread *td, struct shmget_args *uap, int mode)
        if (shm_nused >= shminfo.shmmni) /* Any shmids left? */
                return (ENOSPC);
        size = round_page(uap->size);
-       if (shm_committed + btoc(size) > (unsigned long) shminfo.shmall)
+       if (shm_committed + btoc(size) > shminfo.shmall)
                return (ENOMEM);
        if (shm_last_free < 0) {
                shmrealloc();   /* Maybe expand the shmsegs[] array. */
@@ -952,6 +952,7 @@ void
 shminit(void)
 {
        int i;
+       tun_bool_t shm_ar;
 
        TUNABLE_INT_FETCH("kern.ipc.shmmaxpgs", &shminfo.shmall);
        for (i = PAGE_SIZE; i > 0; i--) {
@@ -962,8 +963,9 @@ shminit(void)
        TUNABLE_INT_FETCH("kern.ipc.shmmin", &shminfo.shmmin);
        TUNABLE_INT_FETCH("kern.ipc.shmmni", &shminfo.shmmni);
        TUNABLE_INT_FETCH("kern.ipc.shmseg", &shminfo.shmseg);
-       TUNABLE_INT_FETCH("kern.ipc.shm_use_phys", &shm_use_phys);
-
+       TUNABLE_BOOL_FETCH("kern.ipc.shm_allow_removed", &shm_ar);
+       if (shm_ar == TUN_TRUE)
+         shm_allow_removed = 1;
        shmalloced = shminfo.shmmni;
        shmsegs = (struct shmid_ds *) sys_malloc(shmalloced * sizeof(shmsegs[0]), M_SHM, M_WAITOK);
        if (shmsegs == NULL)