diff options
author | Michel Dänzer <michel@tungstengraphics.com> | 2007-11-05 10:30:23 +0100 |
---|---|---|
committer | Michel Dänzer <michel@tungstengraphics.com> | 2007-11-05 10:30:23 +0100 |
commit | d41d73f5f9d8baee7137e94da2c7852ea0412180 (patch) | |
tree | 9fcf7b4a4debeb80ac5fddfdaf4b6d372b6c2d50 | |
parent | aaafc6a8f33d4736c37c43d3fd5e43085a2590fb (diff) |
Revert "radeon: Reinstate sync in radeon_crtc_show/hide_cursor."
This reverts commit 0241cac643fa1c08a45ea44f5c670b290e760ad8.
Taking the DRI lock in paths called from the SIGIO handler isn't safe. For
example, the SIGIO handler may be called while the lock is held by an AIGLX
context, resulting in deadlock. See e.g.
https://bugs.freedesktop.org/show_bug.cgi?id=13005 .
-rw-r--r-- | src/radeon_cursor.c | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c index 3e60d23..f19f2bc 100644 --- a/src/radeon_cursor.c +++ b/src/radeon_cursor.c @@ -98,22 +98,12 @@ radeon_crtc_show_cursor (xf86CrtcPtr crtc) RADEONInfoPtr info = RADEONPTR(pScrn); unsigned char *RADEONMMIO = info->MMIO; -#ifdef XF86DRI - if (info->CPStarted && pScrn->pScreen) DRILock(pScrn->pScreen, 0); -#endif - - RADEON_SYNC(info, pScrn); - if (crtc_id == 0) OUTREGP(RADEON_CRTC_GEN_CNTL, RADEON_CRTC_CUR_EN | 2 << 20, ~(RADEON_CRTC_CUR_EN | RADEON_CRTC_CUR_MODE_MASK)); else if (crtc_id == 1) OUTREGP(RADEON_CRTC2_GEN_CNTL, RADEON_CRTC2_CUR_EN | 2 << 20, ~(RADEON_CRTC2_CUR_EN | RADEON_CRTC2_CUR_MODE_MASK)); - -#ifdef XF86DRI - if (info->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen); -#endif } void @@ -125,20 +115,12 @@ radeon_crtc_hide_cursor (xf86CrtcPtr crtc) RADEONInfoPtr info = RADEONPTR(pScrn); unsigned char *RADEONMMIO = info->MMIO; -#ifdef XF86DRI - if (info->CPStarted && pScrn->pScreen) DRILock(pScrn->pScreen, 0); -#endif - - RADEON_SYNC(info, pScrn); - if (crtc_id == 0) OUTREGP(RADEON_CRTC_GEN_CNTL, 0, ~RADEON_CRTC_CUR_EN); else if (crtc_id == 1) OUTREGP(RADEON_CRTC2_GEN_CNTL, 0, ~RADEON_CRTC2_CUR_EN); -#ifdef XF86DRI - if (info->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen); -#endif + } void |