int dma_get_rx_frame_size(pc300_t * card, int ch) 
static int dma_get_rx_frame_size(pc300_t * card, int ch) 
int dma_get_rx_frame_size(pc300_t * card, int ch){	volatile pcsca_bd_t __iomem *ptdescr;	ucshort first_bd = card->chan[ch].rx_first_bd;	int rcvd = 0;	volatile ucchar status;	ptdescr = (card->hw.rambase + RX_BD_ADDR(ch, first_bd));	while ((status = cpc_readb(&ptdescr->status)) & DST_OSB) {		rcvd += cpc_readw(&ptdescr->len);		first_bd = (first_bd + 1) & (N_DMA_RX_BUF - 1);		if ((status & DST_EOM) || (first_bd == card->chan[ch].rx_last_bd)) {			/* Return the size of a good frame or incomplete bad frame 			* (dma_buf_read will clean the buffer descriptors in this case). */			return (rcvd);		}		ptdescr = (card->hw.rambase + cpc_readl(&ptdescr->next));	}	return (-1);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/7665a08928f241247afe8c76865cdbe4ef5489bf/pc300_drv.c/buggy/drivers/net/wan/pc300_drv.c