mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 17:36:20 +03:00
- As part of mmap call handler mmap_sem is being acquired which is causing an BUG: scheduling while atomic:. This is happening because mmap callback gets called with mmap_sem held. The mmap file handler is called via call_mmap() via mmap_region() via do_mmap(), and the caller of do_mmap() must hold down_write(¤t->mm->mmap_sem). To fix this issue removing the mmap_sem locking from nvs mmap handler. - If remap_vmalloc_range() is used to map the pages to userspace then allocated pages should be mapped into virtually contiguous space by passing VM_USERMAP flag to vmap(). Passing VM_USERMAP to vmap() call if API nvgpu_dma_alloc_flags_sys() is called with flag NVGPU_DMA_VM_USERMAP_ADDRESS. Bug 3884011 Change-Id: I64264f6f6e0dd75b1f828dc58355d740e6ef5ccb Signed-off-by: prsethi <prsethi@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2820781 Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
17 KiB
17 KiB