drm_radeon_cmd_buffer_t * cmdbuf, 
drm_radeon_kcmd_buffer_t *cmdbuf, 
static int radeon_emit_packet3_cliprect(drm_device_t * dev,					drm_file_t * filp_priv,					drm_radeon_cmd_buffer_t * cmdbuf,					int orig_nbox){	drm_radeon_private_t *dev_priv = dev->dev_private;	drm_clip_rect_t box;	unsigned int cmdsz;	int ret;	drm_clip_rect_t __user *boxes = cmdbuf->boxes;	int i = 0;	RING_LOCALS;	DRM_DEBUG("\n");	if ((ret = radeon_check_and_fixup_packet3(dev_priv, filp_priv,						  cmdbuf, &cmdsz))) {		DRM_ERROR("Packet verification failed\n");		return ret;	}	if (!orig_nbox)		goto out;	do {		if (i < cmdbuf->nbox) {			if (DRM_COPY_FROM_USER(&box, &boxes[i], sizeof(box)))				return DRM_ERR(EFAULT);			/* FIXME The second and subsequent times round			 * this loop, send a WAIT_UNTIL_3D_IDLE before			 * calling emit_clip_rect(). This fixes a			 * lockup on fast machines when sending			 * several cliprects with a cmdbuf, as when			 * waving a 2D window over a 3D			 * window. Something in the commands from user			 * space seems to hang the card when they're			 * sent several times in a row. That would be			 * the correct place to fix it but this works			 * around it until I can figure that out - Tim			 * Smith */			if (i) {				BEGIN_RING(2);				RADEON_WAIT_UNTIL_3D_IDLE();				ADVANCE_RING();			}			radeon_emit_clip_rect(dev_priv, &box);		}		BEGIN_RING(cmdsz);		OUT_RING_TABLE(cmdbuf->buf, cmdsz);		ADVANCE_RING();	} while (++i < cmdbuf->nbox);	if (cmdbuf->nbox == 1)		cmdbuf->nbox = 0;      out:	cmdbuf->buf += cmdsz * 4;	cmdbuf->bufsz -= cmdsz * 4;	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/b3a83639895a422b25f72eec0a5d1d88c3ac4e9e/radeon_state.c/buggy/drivers/char/drm/radeon_state.c