mirror of
https://github.com/NVIDIA/open-gpu-kernel-modules.git
synced 2026-02-04 15:19:59 +00:00
560.35.03
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
Copyright (c) 2013-2023 NVIDIA Corporation
|
||||
Copyright (c) 2013-2024 NVIDIA Corporation
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to
|
||||
@@ -423,7 +423,9 @@ static void uvm_get_unaddressable_range(NvU32 num_va_bits, NvU64 *first, NvU64 *
|
||||
UVM_ASSERT(first);
|
||||
UVM_ASSERT(outer);
|
||||
|
||||
if (uvm_platform_uses_canonical_form_address()) {
|
||||
// Maxwell GPUs (num_va_bits == 40b) do not support canonical form address
|
||||
// even when plugged into platforms using it.
|
||||
if (uvm_platform_uses_canonical_form_address() && num_va_bits > 40) {
|
||||
*first = 1ULL << (num_va_bits - 1);
|
||||
*outer = (NvU64)((NvS64)(1ULL << 63) >> (64 - num_va_bits));
|
||||
}
|
||||
|
||||
@@ -137,6 +137,15 @@ NV_STATUS uvm_populate_pageable_vma(struct vm_area_struct *vma,
|
||||
if (status != NV_OK)
|
||||
goto out;
|
||||
|
||||
// Kernel v6.6 introduced a bug in set_pte_range() around the handling of AF
|
||||
// bit. Instead of setting the AF bit, the bit is incorrectly being cleared
|
||||
// in set_pte_range() during first-touch fault handling. Calling
|
||||
// handle_mm_fault() again takes a different code path which correctly sets
|
||||
// the AF bit.
|
||||
status = handle_fault(vma, start, vma_num_pages, !!(gup_flags & FOLL_WRITE));
|
||||
if (status != NV_OK)
|
||||
goto out;
|
||||
|
||||
if (touch)
|
||||
ret = NV_PIN_USER_PAGES_REMOTE(mm, start, vma_num_pages, gup_flags, pages, NULL);
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user