printk("fail: invalid idx = %i/%i\n", idx, viadev->tbl_entries); 
printk(KERN_DEBUG "fail: invalid idx = %i/%i\n", idx, viadev->tbl_entries); 
static snd_pcm_uframes_t snd_via8233_pcm_pointer(snd_pcm_substream_t *substream){	via82xx_t *chip = snd_pcm_substream_chip(substream);	viadev_t *viadev = (viadev_t *)substream->runtime->private_data;	unsigned int idx, count, res;	int status;		snd_assert(viadev->tbl_entries, return 0);	spin_lock(&chip->reg_lock);	count = inl(VIADEV_REG(viadev, OFFSET_CURR_COUNT));	status = viadev->in_interrupt;	if (!status)		status = inb(VIADEV_REG(viadev, OFFSET_STATUS));	if (!(status & VIA_REG_STAT_ACTIVE)) {		res = 0;		goto unlock;	}	if (count & 0xffffff) {		idx = count >> 24;		if (idx >= viadev->tbl_entries) {#ifdef POINTER_DEBUG			printk("fail: invalid idx = %i/%i\n", idx, viadev->tbl_entries);#endif			res = viadev->lastpos;		} else {			count &= 0xffffff;			res = calc_linear_pos(viadev, idx, count);		}	} else {		res = viadev->hwptr_done;		if (!viadev->in_interrupt) {			if (status & VIA_REG_STAT_EOL) {				res = 0;			} else				if (status & VIA_REG_STAT_FLAG) {					res += viadev->fragsize;				}		}	}			    unlock:	viadev->lastpos = res;	spin_unlock(&chip->reg_lock);	return bytes_to_frames(substream->runtime, res);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/99b359ba10a582148c6725f428a33ba5356dd993/via82xx.c/clean/sound/pci/via82xx.c