On 8/13/19 5:42 AM, Hayes Wang wrote:
> Use skb_add_rx_frag() to reduce the memory copy for rx data.
> 
> Use a new list of rx_used to store the rx buffer which couldn't be
> reused yet.
> 
> Besides, the total number of rx buffer may be increased or decreased
> dynamically. And it is limited by RTL8152_MAX_RX_AGG.
> 
> Signed-off-by: Hayes Wang <hayesw...@realtek.com>
>

...

>                       skb->protocol = eth_type_trans(skb, netdev);
>                       rtl_rx_vlan_tag(rx_desc, skb);
>                       if (work_done < budget) {
>                               napi_gro_receive(napi, skb);
>                               work_done++;
>                               stats->rx_packets++;
> -                             stats->rx_bytes += pkt_len;
> +                             stats->rx_bytes += skb->len;

use-after-free. skb is no longer in your hands after napi_gro_receive()

Reply via email to