diff options
| -rw-r--r-- | linux-core/drm_irq.c | 4 | ||||
| -rw-r--r-- | linux-core/drm_stub.c | 1 | 
2 files changed, 3 insertions, 2 deletions
diff --git a/linux-core/drm_irq.c b/linux-core/drm_irq.c index d1a6a6b1..41038fd7 100644 --- a/linux-core/drm_irq.c +++ b/linux-core/drm_irq.c @@ -118,7 +118,6 @@ static int drm_irq_install(drm_device_t * dev)  		init_waitqueue_head(&dev->vbl_queue);  		spin_lock_init(&dev->vbl_lock); -		spin_lock_init(&dev->tasklet_lock);  		INIT_LIST_HEAD(&dev->vbl_sigs.head);  		INIT_LIST_HEAD(&dev->vbl_sigs2.head); @@ -458,7 +457,8 @@ void drm_locked_tasklet(drm_device_t *dev, void (*func)(drm_device_t*))  	unsigned int irqflags;  	static DECLARE_TASKLET(drm_tasklet, drm_locked_tasklet_func, 0); -	if (test_bit(TASKLET_STATE_SCHED, &drm_tasklet.state)) +	if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ) || +	    test_bit(TASKLET_STATE_SCHED, &drm_tasklet.state))  		return;  	spin_lock_irqsave(&dev->tasklet_lock, irqflags); diff --git a/linux-core/drm_stub.c b/linux-core/drm_stub.c index ad78dcf7..839cf441 100644 --- a/linux-core/drm_stub.c +++ b/linux-core/drm_stub.c @@ -62,6 +62,7 @@ static int drm_fill_in_dev(drm_device_t * dev, struct pci_dev *pdev,  	spin_lock_init(&dev->count_lock);  	spin_lock_init(&dev->drw_lock); +	spin_lock_init(&dev->tasklet_lock);  	init_timer(&dev->timer);  	mutex_init(&dev->struct_mutex);  	mutex_init(&dev->ctxlist_mutex);  | 
