• Lucas Stach's avatar
    drm/etnaviv: get rid of userptr worker · b2295c24
    Lucas Stach authored
    All code paths which populate userptr BOs are fine with the get_pages
    function taking the mmap_sem lock. This allows to get rid of the pretty
    involved architecture with a worker being scheduled if the mmap_sem
    needs to be taken, but instead call GUP directly and allow it to take
    the lock if necessary.
    
    This simplifies the code a lot and removes the possibility of this
    function returning -EAGAIN, which complicates object population
    handling at the callers.
    
    A notable change in behavior is that we don't allow a process to populate
    objects with user pages from a foreign MM anymore. This would have been an
    invalid use before, as it breaks the assumptions made in the etnaviv kernel
    driver to enfore cache coherence. We now disallow this by rejecting the
    request to populate those objects. Well behaving userspace is unaffected by
    this change.
    Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
    b2295c24
etnaviv_gem.c 19.7 KB