On Thu, Sep 10, 2020 at 2:29 AM Loftus, Ciara <ciara.loftus@xxxxxxxxx> wrote: > > > > > From: Björn Töpel <bjorn.topel@xxxxxxxxx> > > > > For AF_XDP sockets, there was a discrepancy between the number of of > > pinned pages and the size of the umem region. > > > > The size of the umem region is used to validate the AF_XDP descriptor > > addresses. The logic that pinned the pages covered by the region only > > took whole pages into consideration, creating a mismatch between the > > size and pinned pages. A user could then pass AF_XDP addresses outside > > the range of pinned pages, but still within the size of the region, > > crashing the kernel. > > > > This change correctly calculates the number of pages to be > > pinned. Further, the size check for the aligned mode is > > simplified. Now the code simply checks if the size is divisible by the > > chunk size. > > > > Fixes: bbff2f321a86 ("xsk: new descriptor addressing scheme") > > Reported-by: Ciara Loftus <ciara.loftus@xxxxxxxxx> > > Signed-off-by: Björn Töpel <bjorn.topel@xxxxxxxxx> > > Thanks for the patch Björn. > > Tested-by: Ciara Loftus <ciara.loftus@xxxxxxxxx> Acked-by: Song Liu <songliubraving@xxxxxx>