static void top_off_fp (struct fs_dev *dev, struct freepool *fp, int gfp_flags) 
static void top_off_fp (struct fs_dev *dev, struct freepool *fp, unsigned int __nocast gfp_flags) 
static void top_off_fp (struct fs_dev *dev, struct freepool *fp, int gfp_flags){	struct FS_BPENTRY *qe, *ne;	struct sk_buff *skb;	int n = 0;	fs_dprintk (FS_DEBUG_QUEUE, "Topping off queue at %x (%d-%d/%d)\n", 		    fp->offset, read_fs (dev, FP_CNT (fp->offset)), fp->n, 		    fp->nr_buffers);	while (nr_buffers_in_freepool(dev, fp) < fp->nr_buffers) {		skb = alloc_skb (fp->bufsize, gfp_flags);		fs_dprintk (FS_DEBUG_ALLOC, "Alloc rec-skb: %p(%d)\n", skb, fp->bufsize);		if (!skb) break;		ne = kmalloc (sizeof (struct FS_BPENTRY), gfp_flags);		fs_dprintk (FS_DEBUG_ALLOC, "Alloc rec-d: %p(%Zd)\n", ne, sizeof (struct FS_BPENTRY));		if (!ne) {			fs_dprintk (FS_DEBUG_ALLOC, "Free rec-skb: %p\n", skb);			dev_kfree_skb_any (skb);			break;		}		fs_dprintk (FS_DEBUG_QUEUE, "Adding skb %p desc %p -> %p(%p) ", 			    skb, ne, skb->data, skb->head);		n++;		ne->flags = FP_FLAGS_EPI | fp->bufsize;		ne->next  = virt_to_bus (NULL);		ne->bsa   = virt_to_bus (skb->data);		ne->aal_bufsize = fp->bufsize;		ne->skb = skb;		ne->fp = fp;		qe = (struct FS_BPENTRY *) (read_fs (dev, FP_EA(fp->offset)));		fs_dprintk (FS_DEBUG_QUEUE, "link at %p\n", qe);		if (qe) {			qe = bus_to_virt ((long) qe);			qe->next = virt_to_bus(ne);			qe->flags &= ~FP_FLAGS_EPI;		} else			write_fs (dev, FP_SA(fp->offset), virt_to_bus(ne));		write_fs (dev, FP_EA(fp->offset), virt_to_bus (ne));		fp->n++;   /* XXX Atomic_inc? */		write_fs (dev, FP_CTU(fp->offset), 1);	}	fs_dprintk (FS_DEBUG_QUEUE, "Added %d entries. \n", n);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/c9e42614585dddd544a56907ff5fd5ca55411967/firestream.c/clean/drivers/atm/firestream.c