• Michal Hocko's avatar
    xen/gntdev: fix up blockable calls to mn_invl_range_start · 58a57569
    Michal Hocko authored
    Patch series "mmu_notifiers follow ups".
    
    Tetsuo has noticed some fallouts from 93065ac7 ("mm, oom: distinguish
    blockable mode for mmu notifiers").  One of them has been fixed and picked
    up by AMD/DRM maintainer [1].  XEN issue is fixed by patch 1.  I have also
    clarified expectations about blockable semantic of invalidate_range_end.
    Finally the last patch removes MMU_INVALIDATE_DOES_NOT_BLOCK which is no
    longer used nor needed.
    
    [1] http://lkml.kernel.org/r/20180824135257.GU29735@dhcp22.suse.cz
    
    This patch (of 3):
    
    93065ac7 ("mm, oom: distinguish blockable mode for mmu notifiers") has
    introduced blockable parameter to all mmu_notifiers and the notifier has
    to back off when called in !blockable case and it could block down the
    road.
    
    The above commit implemented that for mn_invl_range_start but both
    in_range checks are done unconditionally regardless of the blockable mode
    and as such they would fail all the time for regular calls.  Fix this by
    checking blockable parameter as well.
    
    Once we are there we can remove the stale TODO.  The lock has to be
    sleepable because we wait for completion down in gnttab_unmap_refs_sync.
    
    Link: http://lkml.kernel.org/r/20180827112623.8992-2-mhocko@kernel.org
    Fixes: 93065ac7 ("mm, oom: distinguish blockable mode for mmu notifiers")
    Signed-off-by: 's avatarMichal Hocko <mhocko@suse.com>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Jerome Glisse <jglisse@redhat.com>
    Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Reviewed-by: Juergen Gross's avatarJuergen Gross <jgross@suse.com>
    Signed-off-by: 's avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
    58a57569
gntdev.c 29.6 KB