diff options
Diffstat (limited to 'drivers/infiniband/hw/nes')
| -rw-r--r-- | drivers/infiniband/hw/nes/nes_mgt.c | 8 | 
1 files changed, 3 insertions, 5 deletions
| diff --git a/drivers/infiniband/hw/nes/nes_mgt.c b/drivers/infiniband/hw/nes/nes_mgt.c index 9bdb84dc225c..e96ffff61c3a 100644 --- a/drivers/infiniband/hw/nes/nes_mgt.c +++ b/drivers/infiniband/hw/nes/nes_mgt.c @@ -198,9 +198,9 @@ static struct sk_buff *nes_get_next_skb(struct nes_device *nesdev, struct nes_qp  	if (skb) {  		/* Continue processing fpdu */ -		if (skb->next == (struct sk_buff *)&nesqp->pau_list) +		skb = skb_peek_next(skb, &nesqp->pau_list); +		if (!skb)  			goto out; -		skb = skb->next;  		processacks = false;  	} else {  		/* Starting a new one */ @@ -553,12 +553,10 @@ static void queue_fpdus(struct sk_buff *skb, struct nes_vnic *nesvnic, struct ne  	if (skb_queue_len(&nesqp->pau_list) == 0) {  		skb_queue_head(&nesqp->pau_list, skb);  	} else { -		tmpskb = nesqp->pau_list.next; -		while (tmpskb != (struct sk_buff *)&nesqp->pau_list) { +		skb_queue_walk(&nesqp->pau_list, tmpskb) {  			cb = (struct nes_rskb_cb *)&tmpskb->cb[0];  			if (before(seqnum, cb->seqnum))  				break; -			tmpskb = tmpskb->next;  		}  		skb_insert(tmpskb, skb, &nesqp->pau_list);  	} |