• Oleksandr Andrushchenko's avatar
    xen/gntdev: Do not destroy context while dma-bufs are in use · 7273c2b1
    Oleksandr Andrushchenko authored
    [ Upstream commit fa13e665 ]
    
    If there are exported DMA buffers which are still in use and
    grant device is closed by either normal user-space close or by
    a signal this leads to the grant device context to be destroyed,
    thus making it not possible to correctly destroy those exported
    buffers when they are returned back to gntdev and makes the module
    crash:
    
    [  339.617540] [<ffff00000854c0d8>] dmabuf_exp_ops_release+0x40/0xa8
    [  339.617560] [<ffff00000867a6e8>] dma_buf_release+0x60/0x190
    [  339.617577] [<ffff0000082211f0>] __fput+0x88/0x1d0
    [  339.617589] [<ffff000008221394>] ____fput+0xc/0x18
    [  339.617607] [<ffff0000080ed4e4>] task_work_run+0x9c/0xc0
    [  339.617622] [<ffff000008089714>] do_notify_resume+0xfc/0x108
    
    Fix this by referencing gntdev on each DMA buffer export and
    unreferencing on buffer release.
    Signed-off-by: default avatarOleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
    Reviewed-by: Boris Ostrovsky@oracle.com>
    Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    7273c2b1
gntdev.c 29.6 KB