> +static struct sk_buff *am65_cpsw_alloc_skb(struct net_device *ndev, unsigned int len) > +{ > + struct page *page; > + struct sk_buff *skb; > + > + page = dev_alloc_pages(0); You are likely to get better performance if you use the page_pool. When FEC added XDP support, the first set of changes was to make use of page_pool. That improved the drivers performance. Then XDP was added on top. Maybe you can follow that pattern. Andrew