diff options
| -rw-r--r-- | linux-core/drm_bufs.c | 16 | ||||
| -rw-r--r-- | linux/drm_bufs.h | 16 | 
2 files changed, 32 insertions, 0 deletions
| diff --git a/linux-core/drm_bufs.c b/linux-core/drm_bufs.c index f310eced..d3ca48b4 100644 --- a/linux-core/drm_bufs.c +++ b/linux-core/drm_bufs.c @@ -768,18 +768,34 @@ int DRM(mapbufs)( struct inode *inode, struct file *filp,  				goto done;  			} +#if LINUX_VERSION_CODE < 0x020402 +			down( ¤t->mm->mmap_sem ); +#else  			down_write( ¤t->mm->mmap_sem ); +#endif  			virtual = do_mmap( filp, 0, map->size,  					   PROT_READ | PROT_WRITE,  					   MAP_SHARED,  					   (unsigned long)map->offset ); +#if LINUX_VERSION_CODE < 0x020402 +			up( ¤t->mm->mmap_sem ); +#else  			up_write( ¤t->mm->mmap_sem ); +#endif  		} else { +#if LINUX_VERSION_CODE < 0x020402 +			down( ¤t->mm->mmap_sem ); +#else  			down_write( ¤t->mm->mmap_sem ); +#endif  			virtual = do_mmap( filp, 0, dma->byte_count,  					   PROT_READ | PROT_WRITE,  					   MAP_SHARED, 0 ); +#if LINUX_VERSION_CODE < 0x020402 +			up( ¤t->mm->mmap_sem ); +#else  			up_write( ¤t->mm->mmap_sem ); +#endif  		}  		if ( virtual > -1024UL ) {  			/* Real error */ diff --git a/linux/drm_bufs.h b/linux/drm_bufs.h index f310eced..d3ca48b4 100644 --- a/linux/drm_bufs.h +++ b/linux/drm_bufs.h @@ -768,18 +768,34 @@ int DRM(mapbufs)( struct inode *inode, struct file *filp,  				goto done;  			} +#if LINUX_VERSION_CODE < 0x020402 +			down( ¤t->mm->mmap_sem ); +#else  			down_write( ¤t->mm->mmap_sem ); +#endif  			virtual = do_mmap( filp, 0, map->size,  					   PROT_READ | PROT_WRITE,  					   MAP_SHARED,  					   (unsigned long)map->offset ); +#if LINUX_VERSION_CODE < 0x020402 +			up( ¤t->mm->mmap_sem ); +#else  			up_write( ¤t->mm->mmap_sem ); +#endif  		} else { +#if LINUX_VERSION_CODE < 0x020402 +			down( ¤t->mm->mmap_sem ); +#else  			down_write( ¤t->mm->mmap_sem ); +#endif  			virtual = do_mmap( filp, 0, dma->byte_count,  					   PROT_READ | PROT_WRITE,  					   MAP_SHARED, 0 ); +#if LINUX_VERSION_CODE < 0x020402 +			up( ¤t->mm->mmap_sem ); +#else  			up_write( ¤t->mm->mmap_sem ); +#endif  		}  		if ( virtual > -1024UL ) {  			/* Real error */ | 
