Leif's macros from DRM and Manuel fixes for the locking

This commit is contained in:
Manuel Teira 2001-10-28 20:33:05 +00:00
parent 67cae4cf1e
commit 5746763035
2 changed files with 19 additions and 10 deletions

View file

@ -377,6 +377,23 @@ extern int mach64_dma_swap( struct inode *inode, struct file *filp,
#define MMSELECT1(r) (((((r) & 0xff) << 2) + DWMREG1))
#define MMSELECT(r) (ISMMREG0(r) ? MMSELECT0(r) : MMSELECT1(r))
/* ================================================================
* Misc helper macros
*/
#define LOCK_TEST_WITH_RETURN( dev ) \
do { \
if ( !_DRM_LOCK_IS_HELD( dev->lock.hw_lock->lock ) || \
dev->lock.pid != current->pid ) { \
DRM_ERROR( "%s called without lock held\n", \
__FUNCTION__ ); \
return -EINVAL; \
} \
} while (0)
/* ================================================================
* DMA macros
*/
#define DMA_FRAME_BUF_OFFSET 0
#define DMA_SYS_MEM_ADDR 1

View file

@ -298,11 +298,7 @@ int mach64_dma_clear( struct inode *inode, struct file *filp,
drm_mach64_clear_t clear;
DRM_DEBUG( "%s\n", __FUNCTION__ );
if ( !_DRM_LOCK_IS_HELD( dev->lock.hw_lock->lock ) ||
dev->lock.pid != current->pid ) {
DRM_ERROR( "mach64_cce_clear called without lock held\n" );
return -EINVAL;
}
LOCK_TEST_WITH_RETURN( dev );
if ( copy_from_user( &clear, (drm_mach64_clear_t *) arg,
sizeof(clear) ) )
@ -331,11 +327,7 @@ int mach64_dma_swap( struct inode *inode, struct file *filp,
drm_mach64_sarea_t *sarea_priv = dev_priv->sarea_priv;
DRM_DEBUG( "%s\n", __FUNCTION__ );
if ( !_DRM_LOCK_IS_HELD( dev->lock.hw_lock->lock ) ||
dev->lock.pid != current->pid ) {
DRM_ERROR( "mach64_cce_swap called without lock held\n" );
return -EINVAL;
}
LOCK_TEST_WITH_RETURN( dev );
if ( sarea_priv->nbox > MACH64_NR_SAREA_CLIPRECTS )
sarea_priv->nbox = MACH64_NR_SAREA_CLIPRECTS;