Skip to content
  • Oleksandr Andrushchenko's avatar
    xen/gntdev: Do not destroy context while dma-bufs are in use · fa13e665
    Oleksandr Andrushchenko authored
    
    
    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: default avatarBoris <Ostrovsky@oracle.com>
    Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
    fa13e665