On Sun, Nov 06, 2016 at 08:08:29PM -0800, Hugh Dickins wrote: > If shmem_alloc_page() does not set PageLocked and PageSwapBacked, then > shmem_replace_page() needs to do so for itself. Without this, it puts > newpage on the wrong lru, re-unlocks the unlocked newpage, and system > descends into "Bad page" reports and freeze; or if CONFIG_DEBUG_VM=y, > it hits an earlier VM_BUG_ON_PAGE(!PageLocked), depending on config. > > But shmem_replace_page() is not a common path: it's only called when > swapin (or swapoff) finds the page was already read into an unsuitable > zone: usually all zones are suitable, but gem objects for a few drm > devices (gma500, omapdrm, crestline, broadwater) require zone DMA32 > if there's more than 4GB of ram. > > Fixes: 800d8c63b2e9 ("shmem: add huge pages support") > Cc: stable@xxxxxxxxxxxxxxx # v4.8 > Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx> Sorry for that. Acked-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> -- Kirill A. Shutemov -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>