diff options
| author | Dave Airlie <airlied@linux.ie> | 2004-07-31 07:25:58 +0000 | 
|---|---|---|
| committer | Dave Airlie <airlied@linux.ie> | 2004-07-31 07:25:58 +0000 | 
| commit | dc4508c33845602e4c94c3e125536d01fe9110b1 (patch) | |
| tree | c847fcb9fca81917b0a8d2a07a856fb1573d6795 /linux-core/i830_dma.c | |
| parent | 1cec18a5cd3bcd37aab71c255d63fd394143bc5e (diff) | |
athe patch below optimises the drm code to not do put_user() on memory the
    kernel allocated and then mmap-installed to userspace, but instead
    makes it use the kernel virtual address directly instead.
From: Arjan van de Ven <arjanv@redhat.com>
Diffstat (limited to 'linux-core/i830_dma.c')
| -rw-r--r-- | linux-core/i830_dma.c | 12 | 
1 files changed, 6 insertions, 6 deletions
| diff --git a/linux-core/i830_dma.c b/linux-core/i830_dma.c index 519007f9..55bf1b72 100644 --- a/linux-core/i830_dma.c +++ b/linux-core/i830_dma.c @@ -1173,19 +1173,19 @@ static void i830_dma_dispatch_vertex(drm_device_t *dev,     	DRM_DEBUG(  "start + used - 4 : %ld\n", start + used - 4);  	if (buf_priv->currently_mapped == I830_BUF_MAPPED) { -		u32 __user *vp = buf_priv->virtual; +		u32 *vp = buf_priv->kernel_virtual; -		put_user( (GFX_OP_PRIMITIVE | -			 sarea_priv->vertex_prim | -			 ((used/4)-2)), &vp[0]); +		vp[0] = (GFX_OP_PRIMITIVE | +			sarea_priv->vertex_prim | +			((used/4)-2));  		if (dev_priv->use_mi_batchbuffer_start) { -			put_user(MI_BATCH_BUFFER_END, &vp[used/4]); +			vp[used/4] = MI_BATCH_BUFFER_END;  			used += 4;   		}  		if (used & 4) { -			put_user(0, &vp[used/4]); +			vp[used/4] = 0;  			used += 4;  		} | 
