patch-2.4.0-test2 linux/drivers/sgi/char/shmiq.c
Next file: linux/drivers/sound/724hwmcode.h
Previous file: linux/drivers/sgi/char/graphics.c
Back to the patch index
Back to the overall index
- Lines: 37
- Date:
Wed Jun 21 22:31:02 2000
- Orig file:
v2.4.0-test1/linux/drivers/sgi/char/shmiq.c
- Orig date:
Sat Feb 26 22:31:49 2000
diff -u --recursive --new-file v2.4.0-test1/linux/drivers/sgi/char/shmiq.c linux/drivers/sgi/char/shmiq.c
@@ -118,8 +118,7 @@
e->data.device, e->data.which, e->data.type, e->data.flags);
s->tail = tail_next;
shmiqs [device].tail = tail_next;
- if (shmiqs [device].fasync)
- kill_fasync (shmiqs [device].fasync, SIGIO, POLL_IN);
+ kill_fasync (&shmiqs [device].fasync, SIGIO, POLL_IN);
wake_up_interruptible (&shmiqs [device].proc_list);
}
@@ -279,8 +278,10 @@
return -EINVAL;
}
s = req.arg * sizeof (struct shmqevent) + sizeof (struct sharedMemoryInputQueue);
- v = sys_munmap (vaddr, s);
+ down(¤t->mm->mmap_sem);
+ do_munmap (current->mm, vaddr, s);
do_mmap (filp, vaddr, s, PROT_READ | PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 0);
+ up(¤t->mm->mmap_sem);
shmiqs [minor].events = req.arg;
shmiqs [minor].mapped = 1;
return 0;
@@ -445,11 +446,11 @@
{
printk ("SHMIQ setup\n");
devfs_register_chrdev(SHMIQ_MAJOR, "shmiq", &shmiq_fops);
- devfs_register (NULL, "shmiq", 0, DEVFS_FL_DEFAULT,
- SHMIQ_MAJOR, 0, S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+ devfs_register (NULL, "shmiq", DEVFS_FL_DEFAULT,
+ SHMIQ_MAJOR, 0, S_IFCHR | S_IRUSR | S_IWUSR,
&shmiq_fops, NULL);
devfs_register_series (NULL, "qcntl%u", 2, DEVFS_FL_DEFAULT,
SHMIQ_MAJOR, 1,
- S_IFCHR | S_IRUSR | S_IWUSR, 0, 0,
+ S_IFCHR | S_IRUSR | S_IWUSR,
&shmiq_fops, NULL);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)