OUT_RING_TABLE((int __user *)cmdbuf->buf, sz * 4); 
OUT_RING_TABLE((int *)cmdbuf->buf, sz * 4); 
static __inline__ int r300_emit_vpu(drm_radeon_private_t * dev_priv,				    drm_radeon_cmd_buffer_t * cmdbuf,				    drm_r300_cmd_header_t header){	int sz;	int addr;	RING_LOCALS;	sz = header.vpu.count;	addr = (header.vpu.adrhi << 8) | header.vpu.adrlo;	if (!sz)		return 0;	if (sz * 16 > cmdbuf->bufsz)		return DRM_ERR(EINVAL);	BEGIN_RING(5 + sz * 4);	/* Wait for VAP to come to senses.. */	/* there is no need to emit it multiple times, (only once before VAP is programmed,	   but this optimization is for later */	OUT_RING_REG(R300_VAP_PVS_WAITIDLE, 0);	OUT_RING_REG(R300_VAP_PVS_UPLOAD_ADDRESS, addr);	OUT_RING(CP_PACKET0_TABLE(R300_VAP_PVS_UPLOAD_DATA, sz * 4 - 1));	OUT_RING_TABLE((int __user *)cmdbuf->buf, sz * 4);	ADVANCE_RING();	cmdbuf->buf += sz * 16;	cmdbuf->bufsz -= sz * 16;	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/b3a83639895a422b25f72eec0a5d1d88c3ac4e9e/r300_cmdbuf.c/buggy/drivers/char/drm/r300_cmdbuf.c