> diff --git a/net/xdp/xdp_umem.c b/net/xdp/xdp_umem.c > index 83de74ca729a..9cbbb96c2a32 100644 > --- a/net/xdp/xdp_umem.c > +++ b/net/xdp/xdp_umem.c > @@ -171,8 +171,7 @@ static void xdp_umem_unpin_pages(struct xdp_umem *umem) > for (i = 0; i < umem->npgs; i++) { > struct page *page = umem->pgs[i]; > > - set_page_dirty_lock(page); > - put_page(page); > + put_user_pages_dirty_lock(&page, 1); Same here, we really should avoid the need for the loop here and do the looping inside the helper.