mirror of
https://github.com/NVIDIA/open-gpu-kernel-modules.git
synced 2026-01-30 21:19:49 +00:00
580.94.13
This commit is contained in:
@@ -468,9 +468,28 @@ nv_dma_buf_dup_mem_handles(
|
||||
return NV_OK;
|
||||
|
||||
failed:
|
||||
nv_dma_buf_undup_mem_handles_unlocked(sp, params->index, count, priv);
|
||||
if (!priv->acquire_release_all_gpu_lock_on_dup)
|
||||
{
|
||||
//
|
||||
// Undup requires taking all-GPUs lock.
|
||||
// So if single GPU lock was taken,
|
||||
// release it first so all-GPUs lock can be taken in
|
||||
// nv_dma_buf_undup_mem_handles().
|
||||
//
|
||||
nv_dma_buf_release_gpu_lock(sp, priv);
|
||||
|
||||
nv_dma_buf_release_gpu_lock(sp, priv);
|
||||
nv_dma_buf_undup_mem_handles(sp, params->index, count, priv);
|
||||
}
|
||||
else
|
||||
{
|
||||
//
|
||||
// Here, all-GPUs lock is already taken, so undup the handles under
|
||||
// the unlocked version of the function and then release the locks.
|
||||
//
|
||||
nv_dma_buf_undup_mem_handles_unlocked(sp, params->index, count, priv);
|
||||
|
||||
nv_dma_buf_release_gpu_lock(sp, priv);
|
||||
}
|
||||
|
||||
unlock_api_lock:
|
||||
rm_release_api_lock(sp);
|
||||
|
||||
@@ -1310,11 +1310,6 @@ nv_pci_probe
|
||||
nv_printf(NV_DBG_SETUP, "NVRM: probing 0x%x 0x%x, class 0x%x\n",
|
||||
pci_dev->vendor, pci_dev->device, pci_dev->class);
|
||||
|
||||
if (nv_kmem_cache_alloc_stack(&sp) != 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
#ifdef NV_PCI_SRIOV_SUPPORT
|
||||
if (pci_dev->is_virtfn)
|
||||
{
|
||||
@@ -1330,21 +1325,25 @@ nv_pci_probe
|
||||
"since IOMMU is not present on the system.\n",
|
||||
NV_PCI_DOMAIN_NUMBER(pci_dev), NV_PCI_BUS_NUMBER(pci_dev),
|
||||
NV_PCI_SLOT_NUMBER(pci_dev), PCI_FUNC(pci_dev->devfn));
|
||||
goto failed;
|
||||
return -1;
|
||||
}
|
||||
|
||||
nv_kmem_cache_free_stack(sp);
|
||||
return 0;
|
||||
#else
|
||||
nv_printf(NV_DBG_ERRORS, "NVRM: Ignoring probe for VF %04x:%02x:%02x.%x ",
|
||||
NV_PCI_DOMAIN_NUMBER(pci_dev), NV_PCI_BUS_NUMBER(pci_dev),
|
||||
NV_PCI_SLOT_NUMBER(pci_dev), PCI_FUNC(pci_dev->devfn));
|
||||
|
||||
goto failed;
|
||||
return -1;
|
||||
#endif /* NV_VGPU_KVM_BUILD */
|
||||
}
|
||||
#endif /* NV_PCI_SRIOV_SUPPORT */
|
||||
|
||||
if (nv_kmem_cache_alloc_stack(&sp) != 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!rm_is_supported_pci_device(
|
||||
(pci_dev->class >> 16) & 0xFF,
|
||||
(pci_dev->class >> 8) & 0xFF,
|
||||
|
||||
@@ -1675,6 +1675,7 @@ static int nv_open_device(nv_state_t *nv, nvidia_stack_t *sp)
|
||||
nv_assert_not_in_gpu_exclusion_list(sp, nv);
|
||||
|
||||
NV_ATOMIC_INC(nvl->usage_count);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -371,7 +371,7 @@ NvBool NV_API_CALL os_semaphore_may_sleep(void)
|
||||
|
||||
NvBool NV_API_CALL os_is_isr(void)
|
||||
{
|
||||
return (in_irq());
|
||||
return (nv_in_hardirq());
|
||||
}
|
||||
|
||||
// return TRUE if the caller is the super-user
|
||||
|
||||
Reference in New Issue
Block a user