Eric Dumazet [mailto:eric.dumazet@xxxxxxxxx] > Sent: Wednesday, January 25, 2017 10:13 PM [...] > You also could use napi_complete_done() instead of napi_complete(), as > it allows users to tune the performance vs latency for GRO. > > Looking at this driver, I do not see any limitation on the number of > skbs that can be pushed into tp->rx_queue. > > I wonder if this queue can end up consuming all memory of a host under > stress. > > diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c > index > e1466b4d2b6c727148a884672bbd9593bf04b3ac..221df4a931b5c1073f1922d0fa0b > bff158c73b7d 100644 > --- a/drivers/net/usb/r8152.c > +++ b/drivers/net/usb/r8152.c > @@ -1840,7 +1840,10 @@ static int rx_bottom(struct r8152 *tp, int budget) > stats->rx_packets++; > stats->rx_bytes += pkt_len; > } else { > - __skb_queue_tail(&tp->rx_queue, skb); > + if (unlikely(skb_queue_len(&tp->rx_queue) >= 1000)) > + kfree_skb(skb); > + else > + __skb_queue_tail(&tp->rx_queue, skb); > } > > find_next_rx: Thanks for your suggestion. I would submit it later. Best Regards, Hayes ��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥