mirror of
https://github.com/NVIDIA/open-gpu-kernel-modules.git
synced 2026-01-26 19:19:47 +00:00
550.76
This commit is contained in:
@@ -72,7 +72,7 @@ EXTRA_CFLAGS += -I$(src)/common/inc
|
||||
EXTRA_CFLAGS += -I$(src)
|
||||
EXTRA_CFLAGS += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args
|
||||
EXTRA_CFLAGS += -D__KERNEL__ -DMODULE -DNVRM
|
||||
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"550.67\"
|
||||
EXTRA_CFLAGS += -DNV_VERSION_STRING=\"550.76\"
|
||||
|
||||
ifneq ($(SYSSRCHOST1X),)
|
||||
EXTRA_CFLAGS += -I$(SYSSRCHOST1X)
|
||||
|
||||
@@ -151,6 +151,7 @@ NV_STATUS_CODE(NV_ERR_RISCV_ERROR, 0x00000079, "Generic RISC
|
||||
NV_STATUS_CODE(NV_ERR_FABRIC_MANAGER_NOT_PRESENT, 0x0000007A, "Fabric Manager is not loaded")
|
||||
NV_STATUS_CODE(NV_ERR_ALREADY_SIGNALLED, 0x0000007B, "Semaphore Surface value already >= requested wait value")
|
||||
NV_STATUS_CODE(NV_ERR_QUEUE_TASK_SLOT_NOT_AVAILABLE, 0x0000007C, "PMU RPC error due to no queue slot available for this event")
|
||||
NV_STATUS_CODE(NV_ERR_KEY_ROTATION_IN_PROGRESS, 0x0000007D, "Operation not allowed as key rotation is in progress")
|
||||
|
||||
// Warnings:
|
||||
NV_STATUS_CODE(NV_WARN_HOT_SWITCH, 0x00010001, "WARNING Hot switch")
|
||||
|
||||
@@ -340,9 +340,9 @@ static NV_STATUS uvm_test_iommu_rc_for_gpu(uvm_gpu_t *gpu)
|
||||
if (!domain || !iommu_is_dma_domain(domain))
|
||||
return NV_OK;
|
||||
|
||||
// Only run if ATS is enabled. Otherwise the CE doesn't get response on
|
||||
// writing to unmapped location.
|
||||
if (!g_uvm_global.ats.enabled)
|
||||
// Only run if ATS is enabled with 64kB base page.
|
||||
// Otherwise the CE doesn't get response on writing to unmapped location.
|
||||
if (!g_uvm_global.ats.enabled || PAGE_SIZE != UVM_PAGE_SIZE_64K)
|
||||
return NV_OK;
|
||||
|
||||
status = uvm_mem_alloc_sysmem_and_map_cpu_kernel(data_size, NULL, &sysmem);
|
||||
|
||||
@@ -527,6 +527,15 @@ void uvm_va_space_destroy(uvm_va_space_t *va_space)
|
||||
nv_kthread_q_flush(&g_uvm_global.global_q);
|
||||
|
||||
for_each_gpu_in_mask(gpu, retained_gpus) {
|
||||
// Free the processor masks allocated in uvm_va_space_register_gpu().
|
||||
// The mask is also freed in uvm_va_space_unregister_gpu() but that
|
||||
// function won't be called in uvm_release() and uvm_release_deferred()
|
||||
// path.
|
||||
uvm_processor_mask_cache_free(va_space->peers_to_release[uvm_id_value(gpu->id)]);
|
||||
|
||||
// Set the pointer to NULL to avoid accidental re-use and double free.
|
||||
va_space->peers_to_release[uvm_id_value(gpu->id)] = NULL;
|
||||
|
||||
if (!gpu->parent->isr.replayable_faults.handling) {
|
||||
UVM_ASSERT(!gpu->parent->isr.non_replayable_faults.handling);
|
||||
continue;
|
||||
@@ -543,14 +552,6 @@ void uvm_va_space_destroy(uvm_va_space_t *va_space)
|
||||
if (gpu->parent->access_counters_supported)
|
||||
uvm_parent_gpu_access_counters_disable(gpu->parent, va_space);
|
||||
|
||||
// Free the processor masks allocated in uvm_va_space_register_gpu().
|
||||
// The mask is also freed in uvm_va_space_unregister_gpu() but that
|
||||
// function won't be called in uvm_release() and uvm_release_deferred()
|
||||
// path.
|
||||
uvm_processor_mask_cache_free(va_space->peers_to_release[uvm_id_value(gpu->id)]);
|
||||
|
||||
// Set the pointer to NULL to avoid accidental re-use and double free.
|
||||
va_space->peers_to_release[uvm_id_value(gpu->id)] = NULL;
|
||||
}
|
||||
|
||||
// Check that all CPU/GPU affinity masks are empty
|
||||
|
||||
@@ -998,6 +998,22 @@ nvswitch_os_get_supported_register_events_params
|
||||
NvBool *bUserSuppliesOsData
|
||||
);
|
||||
|
||||
/*
|
||||
* @Brief : Is TNVL mode enabled.
|
||||
*
|
||||
* @Description : Returns if TNVL is enabled for the device
|
||||
*
|
||||
* @param[in] device a reference to the device
|
||||
*
|
||||
* @returns NV_TRUE, if TNVL is enabled
|
||||
* NV_FALSE, if TNVL is disabled
|
||||
*/
|
||||
NvBool
|
||||
nvswitch_lib_is_tnvl_enabled
|
||||
(
|
||||
nvswitch_device *device
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2019 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2019-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2017-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-FileCopyrightText: Copyright (c) 2017-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
@@ -164,6 +164,7 @@ typedef struct
|
||||
NVSWITCH_DEVICE_FABRIC_STATE deviceState;
|
||||
NVSWITCH_DEVICE_BLACKLIST_REASON deviceReason;
|
||||
NvU32 physId;
|
||||
NvBool bTnvlEnabled;
|
||||
|
||||
/* See ctrl_dev_nvswitch.h for struct definition modification guidelines */
|
||||
} NVSWITCH_DEVICE_INSTANCE_INFO_V2;
|
||||
|
||||
@@ -159,7 +159,14 @@ static int lkca_aead_internal(struct crypto_aead *aead,
|
||||
}
|
||||
|
||||
if (rc != 0) {
|
||||
pr_info("Encryption FAILED\n");
|
||||
if (enc) {
|
||||
pr_info("aead.c: Encryption failed with error %i\n", rc);
|
||||
} else {
|
||||
pr_info("aead.c: Decryption failed with error %i\n", rc);
|
||||
if (rc == -EBADMSG) {
|
||||
pr_info("aead.c: Authentication tag mismatch!\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*data_out_size = data_in_size;
|
||||
|
||||
@@ -1000,6 +1000,8 @@ nvswitch_ctl_get_devices_v2(NVSWITCH_GET_DEVICES_V2_PARAMS *p)
|
||||
&p->info[index].deviceState,
|
||||
&p->info[index].deviceReason,
|
||||
&p->info[index].driverState);
|
||||
|
||||
p->info[index].bTnvlEnabled = nvswitch_lib_is_tnvl_enabled(nvswitch_dev->lib_device);
|
||||
mutex_unlock(&nvswitch_dev->device_mutex);
|
||||
}
|
||||
index++;
|
||||
|
||||
@@ -1061,7 +1061,15 @@ NV_STATUS NV_API_CALL os_flush_user_cache(void)
|
||||
|
||||
void NV_API_CALL os_flush_cpu_write_combine_buffer(void)
|
||||
{
|
||||
wmb();
|
||||
#if defined(NVCPU_X86_64)
|
||||
asm volatile("sfence" ::: "memory");
|
||||
#elif defined(NVCPU_PPC64LE)
|
||||
__asm__ __volatile__ ("sync" : : : "memory");
|
||||
#elif defined(NVCPU_AARCH64)
|
||||
asm volatile("dsb st" : : : "memory");
|
||||
#else
|
||||
mb();
|
||||
#endif
|
||||
}
|
||||
|
||||
// override initial debug level from registry
|
||||
|
||||
Reference in New Issue
Block a user