|
@@ -426,10 +426,10 @@ static void receive_buf(struct receive_queue *rq, void *buf, unsigned int len)
|
|
|
if (unlikely(len < sizeof(struct virtio_net_hdr) + ETH_HLEN)) {
|
|
|
pr_debug("%s: short packet %i\n", dev->name, len);
|
|
|
dev->stats.rx_length_errors++;
|
|
|
- if (vi->big_packets)
|
|
|
- give_pages(rq, buf);
|
|
|
- else if (vi->mergeable_rx_bufs)
|
|
|
+ if (vi->mergeable_rx_bufs)
|
|
|
put_page(virt_to_head_page(buf));
|
|
|
+ else if (vi->big_packets)
|
|
|
+ give_pages(rq, buf);
|
|
|
else
|
|
|
dev_kfree_skb(buf);
|
|
|
return;
|