diff --git a/drivers/virt/tegra/hvc_sysfs.c b/drivers/virt/tegra/hvc_sysfs.c
index 39152c1e..67ed37f5 100644
--- a/drivers/virt/tegra/hvc_sysfs.c
+++ b/drivers/virt/tegra/hvc_sysfs.c
@@ -1,5 +1,5 @@
/*
- * SPDX-FileCopyrightText: Copyright (c) 2022-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+ * SPDX-FileCopyrightText: Copyright (c) 2022-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-License-Identifier: GPL-2.0-only
*
* This program is free software; you can redistribute it and/or modify it
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+#include
+
#include
#include
#include
@@ -52,7 +54,12 @@ static struct hyp_shared_memory_info hyp_shared_memory_attrs[HYP_SHM_ID_NUM];
/* Map the HV trace buffer to the calling user process */
static int hvc_sysfs_mmap(struct file *fp, struct kobject *ko,
- struct bin_attribute *attr, struct vm_area_struct *vma)
+#if defined(NV_BIN_ATTRIBUTE_STRUCT_MMAP_HAS_CONST_BIN_ATTRIBUTE_ARG) /* Linux v6.13 */
+ const struct bin_attribute *attr,
+#else
+ struct bin_attribute *attr,
+#endif
+ struct vm_area_struct *vma)
{
struct hyp_shared_memory_info *hyp_shm_info =
container_of(attr, struct hyp_shared_memory_info, attr);
diff --git a/scripts/conftest/Makefile b/scripts/conftest/Makefile
index 0ce8355c..16335451 100644
--- a/scripts/conftest/Makefile
+++ b/scripts/conftest/Makefile
@@ -90,6 +90,7 @@ endef
NV_CONFTEST_FUNCTION_COMPILE_TESTS += __alloc_disk_node_has_lkclass_arg
NV_CONFTEST_FUNCTION_COMPILE_TESTS += __assign_str_has_no_src_arg
+NV_CONFTEST_FUNCTION_COMPILE_TESTS += bin_attribute_struct_mmap_has_const_bin_attribute_arg
NV_CONFTEST_FUNCTION_COMPILE_TESTS += blk_execute_rq_has_no_gendisk_arg
NV_CONFTEST_FUNCTION_COMPILE_TESTS += blk_mq_alloc_disk_for_queue
NV_CONFTEST_FUNCTION_COMPILE_TESTS += blk_mq_alloc_queue
diff --git a/scripts/conftest/conftest.sh b/scripts/conftest/conftest.sh
index 2631119c..231aa4a4 100755
--- a/scripts/conftest/conftest.sh
+++ b/scripts/conftest/conftest.sh
@@ -6502,6 +6502,27 @@ compile_test() {
compile_check_conftest "$CODE" "NV___ALLOC_DISK_NODE_HAS_LKCLASS_ARG" "" "types"
;;
+ bin_attribute_struct_mmap_has_const_bin_attribute_arg)
+ #
+ # Determine if the 'bin_attribute' structure 'mmap' function pointer
+ # has const 'struct bin_attribute' argument.
+ #
+ # Commit 94a20fb9af16 ("sysfs: treewide: constify attribute callback
+ # of bin_attribute::mmap()") updated the 'mmap' function pointer to
+ # take a const 'bin_attribute' structure in Linux v6.13.
+ #
+ CODE="
+ #include
+ void conftest(struct bin_attribute *attr) {
+ int (*fn)(struct file *, struct kobject *,
+ const struct bin_attribute *,
+ struct vm_area_struct *) = attr->mmap;
+ }"
+
+ compile_check_conftest "$CODE" \
+ "NV_BIN_ATTRIBUTE_STRUCT_MMAP_HAS_CONST_BIN_ATTRIBUTE_ARG" "" "types"
+ ;;
+
blk_execute_rq_has_no_gendisk_arg)
#
# Determine if the function blk_execute_rq() has an argument of