mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2025-12-20 04:40:09 +01:00
Leif's macros from DRM and Manuel fixes for the locking
This commit is contained in:
parent
67cae4cf1e
commit
5746763035
2 changed files with 19 additions and 10 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue