mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 09:12:24 +03:00
gpu: nvgpu: API updates for newer kernel
access_ok, totalram_pages and zap_vma_ptes are updated in the newer kernel. Update accordingly. Bug 2834141 Change-Id: I3097308740f1af3092ac0a5ac2f0146db8148e12 Signed-off-by: Sagar Kamble <skamble@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2294097 Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> Reviewed-by: Debarshi Dutta <ddutta@nvidia.com> Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
Alex Waterman
parent
d0d8ef79d1
commit
6c4a0bb6cd
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2019, NVIDIA CORPORATION. All rights reserved.
|
* Copyright (c) 2016-2020, NVIDIA CORPORATION. All rights reserved.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
* under the terms and conditions of the GNU General Public License,
|
* under the terms and conditions of the GNU General Public License,
|
||||||
@@ -112,7 +112,11 @@ static void nvgpu_init_gr_vars(struct gk20a *g)
|
|||||||
{
|
{
|
||||||
nvgpu_gr_init(g);
|
nvgpu_gr_init(g);
|
||||||
|
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)
|
||||||
|
nvgpu_log_info(g, "total ram pages : %lu", totalram_pages());
|
||||||
|
#else
|
||||||
nvgpu_log_info(g, "total ram pages : %lu", totalram_pages);
|
nvgpu_log_info(g, "total ram pages : %lu", totalram_pages);
|
||||||
|
#endif
|
||||||
g->max_comptag_mem = totalram_size_in_mb;
|
g->max_comptag_mem = totalram_size_in_mb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1633,8 +1633,13 @@ static int nvgpu_gpu_set_deterministic_opts(struct gk20a *g,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Trivial sanity check first */
|
/* Trivial sanity check first */
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)
|
||||||
|
if (!access_ok(user_channels,
|
||||||
|
args->num_channels * sizeof(int))) {
|
||||||
|
#else
|
||||||
if (!access_ok(VERIFY_READ, user_channels,
|
if (!access_ok(VERIFY_READ, user_channels,
|
||||||
args->num_channels * sizeof(int))) {
|
args->num_channels * sizeof(int))) {
|
||||||
|
#endif
|
||||||
err = -EFAULT;
|
err = -EFAULT;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@@ -2095,8 +2100,13 @@ static void alter_usermode_mapping(struct gk20a *g,
|
|||||||
* b) !poweroff and vmap_mapped -> do nothing as already mapped
|
* b) !poweroff and vmap_mapped -> do nothing as already mapped
|
||||||
*/
|
*/
|
||||||
if (poweroff && vma_mapped) {
|
if (poweroff && vma_mapped) {
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 18, 0)
|
||||||
|
zap_vma_ptes(vma, vma->vm_start, vma->vm_end - vma->vm_start);
|
||||||
|
err = 0;
|
||||||
|
#else
|
||||||
err = zap_vma_ptes(vma, vma->vm_start,
|
err = zap_vma_ptes(vma, vma->vm_start,
|
||||||
vma->vm_end - vma->vm_start);
|
vma->vm_end - vma->vm_start);
|
||||||
|
#endif
|
||||||
if (err == 0) {
|
if (err == 0) {
|
||||||
vma->vm_flags = VM_NONE;
|
vma->vm_flags = VM_NONE;
|
||||||
priv->usermode_vma.vma_mapped = false;
|
priv->usermode_vma.vma_mapped = false;
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
#include <linux/iommu.h>
|
#include <linux/iommu.h>
|
||||||
#include <linux/hashtable.h>
|
#include <linux/hashtable.h>
|
||||||
#include <linux/notifier.h>
|
#include <linux/notifier.h>
|
||||||
|
#include <linux/version.h>
|
||||||
|
|
||||||
#include <nvgpu/gk20a.h>
|
#include <nvgpu/gk20a.h>
|
||||||
|
|
||||||
@@ -188,6 +189,10 @@ static inline struct device *dev_from_gk20a(struct gk20a *g)
|
|||||||
|
|
||||||
#define INTERFACE_NAME "nvhost%s-gpu"
|
#define INTERFACE_NAME "nvhost%s-gpu"
|
||||||
|
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)
|
||||||
|
#define totalram_size_in_mb (totalram_pages() >> (10 - (PAGE_SHIFT - 10)))
|
||||||
|
#else
|
||||||
#define totalram_size_in_mb (totalram_pages >> (10 - (PAGE_SHIFT - 10)))
|
#define totalram_size_in_mb (totalram_pages >> (10 - (PAGE_SHIFT - 10)))
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Virtualized GPU for Linux
|
* Virtualized GPU for Linux
|
||||||
*
|
*
|
||||||
* Copyright (c) 2018-2019, NVIDIA CORPORATION. All rights reserved.
|
* Copyright (c) 2018-2020, NVIDIA CORPORATION. All rights reserved.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
* under the terms and conditions of the GNU General Public License,
|
* under the terms and conditions of the GNU General Public License,
|
||||||
@@ -470,7 +470,11 @@ int vgpu_probe(struct platform_device *pdev)
|
|||||||
vgpu_create_sysfs(dev);
|
vgpu_create_sysfs(dev);
|
||||||
nvgpu_gr_init(gk20a);
|
nvgpu_gr_init(gk20a);
|
||||||
|
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)
|
||||||
|
nvgpu_log_info(gk20a, "total ram pages : %lu", totalram_pages());
|
||||||
|
#else
|
||||||
nvgpu_log_info(gk20a, "total ram pages : %lu", totalram_pages);
|
nvgpu_log_info(gk20a, "total ram pages : %lu", totalram_pages);
|
||||||
|
#endif
|
||||||
gk20a->max_comptag_mem = totalram_size_in_mb;
|
gk20a->max_comptag_mem = totalram_size_in_mb;
|
||||||
|
|
||||||
nvgpu_ref_init(&gk20a->refcount);
|
nvgpu_ref_init(&gk20a->refcount);
|
||||||
|
|||||||
Reference in New Issue
Block a user