sl = d->skblist; d->skblist = NULL; 
sl = d->sendq_hd; d->sendq_hd = d->sendq_tl = NULL; 
rexmit_timer(ulong vp){	struct aoedev *d;	struct frame *f, *e;	struct sk_buff *sl;	register long timeout;	ulong flags, n;	d = (struct aoedev *) vp;	sl = NULL;	/* timeout is always ~150% of the moving average */	timeout = d->rttavg;	timeout += timeout >> 1;	spin_lock_irqsave(&d->lock, flags);	if (d->flags & DEVFL_TKILL) {tdie:		spin_unlock_irqrestore(&d->lock, flags);		return;	}	f = d->frames;	e = f + d->nframes;	for (; f<e; f++) {		if (f->tag != FREETAG && tsince(f->tag) >= timeout) {			n = f->waited += timeout;			n /= HZ;			if (n > MAXWAIT) { /* waited too long.  device failure. */				aoedev_downdev(d);				goto tdie;			}			rexmit(d, f);		}	}	sl = d->skblist;	d->skblist = NULL;	if (sl) {		n = d->rttavg <<= 1;		if (n > MAXTIMER)			d->rttavg = MAXTIMER;	}	d->timer.expires = jiffies + TIMERTICK;	add_timer(&d->timer);	spin_unlock_irqrestore(&d->lock, flags);	aoenet_xmit(sl);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/a4b38364093bf2094ff858ad45f490521bb87984/aoecmd.c/buggy/drivers/block/aoe/aoecmd.c