shmdt fix

Paul Larson (plars@austin.ibm.com)
15 Mar 2002 15:31:44 -0600


Marcelo, in 2.4.19-pre1 the changelog said that the shmdt fix was
included, but it is still failing the LTP testcase that found this
problem. There is a small, but important set of {}'s that got missed,
so it is still always returning 0 even if there is nothing to detach.
The attached diff will clean this up on 2.4.19-pre3.

Thanks,
Paul Larson

diff -Naur linux/ipc/shm.c linux-shmdt/ipc/shm.c
--- linux/ipc/shm.c Fri Mar 15 15:13:07 2002
+++ linux-shmdt/ipc/shm.c Fri Mar 15 15:16:21 2002
@@ -678,9 +678,10 @@
for (shmd = mm->mmap; shmd; shmd = shmdnext) {
shmdnext = shmd->vm_next;
if (shmd->vm_ops == &shm_vm_ops
- && shmd->vm_start - (shmd->vm_pgoff << PAGE_SHIFT) == (ulong) shmaddr)
+ && shmd->vm_start - (shmd->vm_pgoff << PAGE_SHIFT) == (ulong) shmaddr) {
do_munmap(mm, shmd->vm_start, shmd->vm_end - shmd->vm_start);
retval = 0;
+ }
}
up_write(&mm->mmap_sem);
return retval;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/