From 6f07e1ff6bec8f306e8aa1d59b8bcaa93ffa776e Mon Sep 17 00:00:00 2001 From: Rik Faith Date: Sat, 26 Aug 2000 10:36:44 +0000 Subject: Sync with Linux 2.4.0-test7 Add signal blocking support to all drivers (using control-z on a running direct-rendering client should work now) --- linux/sis_drv.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'linux/sis_drv.c') diff --git a/linux/sis_drv.c b/linux/sis_drv.c index 5dda149a..434a1ccd 100644 --- a/linux/sis_drv.c +++ b/linux/sis_drv.c @@ -626,6 +626,16 @@ int sis_lock(struct inode *inode, struct file *filp, unsigned int cmd, #endif if (!ret) { +#if LINUX_VERSION_CODE >= 0x020400 /* KERNEL_VERSION(2,4,0) */ + sigemptyset(&dev->sigmask); + sigaddset(&dev->sigmask, SIGSTOP); + sigaddset(&dev->sigmask, SIGTSTP); + sigaddset(&dev->sigmask, SIGTTIN); + sigaddset(&dev->sigmask, SIGTTOU); + dev->sigdata.context = lock.context; + dev->sigdata.lock = dev->lock.hw_lock; + block_all_signals(drm_notifier, &dev->sigdata, &dev->sigmask); +#endif if (lock.flags & _DRM_LOCK_READY) { /* Wait for space in DMA/FIFO */ } @@ -676,7 +686,10 @@ int sis_unlock(struct inode *inode, struct file *filp, unsigned int cmd, DRM_ERROR("\n"); } } - + +#if LINUX_VERSION_CODE >= 0x020400 /* KERNEL_VERSION(2,4,0) */ + unblock_all_signals(); +#endif return 0; } -- cgit v1.2.3