Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > I'm not seeing where we skip the unpin of the zero page, as commented > in patch 1 (but maybe I'm not reviewing carefully enough as I'm at a > conference right now). It's done by unpin_user_page{,s}(), hidden away in gup.c. See the commit message for patch 1: Make pin_user_pages*() leave a ZERO_PAGE unpinned if it extracts a pointer to it from the page tables and make unpin_user_page*() correspondingly ignore a ZERO_PAGE when unpinning. David