Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
256 commits
Select commit Hold shift + click to select a range
204a89f
NVIDIA: SAUCE: Patch NFS driver to support GDS with 6.8 Kernel
sourabgupta3 Oct 30, 2023
6b11e97
NVIDIA: SAUCE: NVMe/MVMEeOF: Patch NVMe/NVMeOF driver to support GDS …
sourabgupta3 Oct 30, 2023
a31791d
NVIDIA: [Config] Add nvidia-fs build dependencies
nvidia-bfigg Mar 29, 2024
b48ad0e
NVIDIA: [Config] arm64: ARM64_CONTPTE=y
Mar 27, 2024
c1b5faf
UBUNTU: [Packaging] blacklist coresight_etm4x
ianmay81 Apr 25, 2024
4e19e85
NVIDIA: SAUCE: NFS: Export nvfs register and unregister functions as GPL
sourabgupta3 Jun 6, 2024
fc301a4
NVIDIA: SAUCE: NVMe/NVMeoF: Export nvfs register and unregister funct…
sourabgupta3 Jun 6, 2024
efbc80a
NVIDIA: [Config] EFI: set CAPSULE_LOADER=y for arm64
nvidia-bfigg Aug 7, 2024
59264e6
UBUNTU: [Config] nvidia-6.11: Enable MANA configs on x86 and arm64
jacobmartin0 Oct 16, 2024
22bc713
UBUNTU: [Packaging] nvidia-6.11: Include mana.ko in linux-modules-ABI…
jacobmartin0 Oct 16, 2024
1dd2bf7
UBUNTU: [Packaging] update variants
jacobmartin0 Oct 18, 2024
6eb923a
UBUNTU: [Packaging] update update.conf
jacobmartin0 Oct 18, 2024
365f4ce
UBUNTU: Start new release
jacobmartin0 Oct 18, 2024
a90a6fb
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Oct 18, 2024
cc14fa6
UBUNTU: [Packaging] debian.nvidia-6.11/dkms-versions -- update from k…
jacobmartin0 Oct 18, 2024
ed4874b
UBUNTU: Ubuntu-nvidia-6.11-6.11.0-1001.1
jacobmartin0 Oct 18, 2024
1b08ade
UBUNTU: [Packaging] Drop unbuilt architectures from -tools packages
jacobmartin0 Oct 23, 2024
e5b0e0d
UBUNTU: Start new release
jacobmartin0 Oct 23, 2024
e958048
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Oct 23, 2024
9a9a900
UBUNTU: Ubuntu-nvidia-6.11-6.11.0-1002.2
jacobmartin0 Oct 23, 2024
73df4a6
UBUNTU: [Config] nvidia-6.11: update configs for new GCC version
jacobmartin0 Dec 12, 2024
b0458e6
UBUNTU: SAUCE: Revert "UBUNTU: SAUCE: Revert "vfio/pci: Use unmap_map…
jacobmartin0 Mar 5, 2025
484303c
UBUNTU: SAUCE: Revert "UBUNTU: SAUCE: Revert "vfio/pci: Insert full v…
jacobmartin0 Mar 5, 2025
d838f8a
UBUNTU: SAUCE: Revert "UBUNTU: SAUCE: Revert "mm: use rwsem assertion…
jacobmartin0 Mar 5, 2025
6732275
UBUNTU: SAUCE: Revert "UBUNTU: SAUCE: Revert "mm: remove follow_pfn""
jacobmartin0 Dec 12, 2024
f83f708
mm: provide vm_normal_(page|folio)_pmd() with CONFIG_PGTABLE_HAS_HUGE…
davidhildenbrand Aug 2, 2024
c754ce1
mm/pagewalk: introduce folio_walk_start() + folio_walk_end()
davidhildenbrand Aug 2, 2024
e4b90a5
mm/migrate: convert do_pages_stat_array() from follow_page() to folio…
davidhildenbrand Aug 2, 2024
3e9aac6
mm/migrate: convert add_page_for_migration() from follow_page() to fo…
davidhildenbrand Aug 2, 2024
515f892
mm/ksm: convert get_mergeable_page() from follow_page() to folio_walk
davidhildenbrand Aug 2, 2024
b5a4d8c
mm/ksm: convert scan_get_next_rmap_item() from follow_page() to folio…
davidhildenbrand Aug 2, 2024
1ff9687
mm/huge_memory: convert split_huge_pages_pid() from follow_page() to …
davidhildenbrand Aug 2, 2024
643f00a
s390/uv: convert gmap_destroy_page() from follow_page() to folio_walk
davidhildenbrand Aug 2, 2024
95efaa1
s390/mm/fault: convert do_secure_storage_access() from follow_page() …
davidhildenbrand Aug 2, 2024
472f646
mm: remove follow_page()
davidhildenbrand Aug 2, 2024
3616216
mm/ksm: convert break_ksm() from walk_page_range_vma() to folio_walk
davidhildenbrand Aug 2, 2024
ac36261
mm: introduce ARCH_SUPPORTS_HUGE_PFNMAP and special bits to pmd/pud
xzpeter Aug 26, 2024
b730163
mm: drop is_huge_zero_pud()
xzpeter Aug 26, 2024
2899c4d
mm: mark special bits for huge pfn mappings when inject
xzpeter Aug 26, 2024
2b66226
mm: allow THP orders for PFNMAPs
xzpeter Aug 26, 2024
afb24c5
mm/gup: detect huge pfnmap entries in gup-fast
xzpeter Aug 26, 2024
123a561
mm/pagewalk: check pfnmap for folio_walk_start()
xzpeter Aug 26, 2024
4bd3b1d
mm/fork: accept huge pfnmap entries
xzpeter Aug 26, 2024
7cfe3fb
mm: always define pxx_pgprot()
xzpeter Aug 26, 2024
89016bd
mm: new follow_pfnmap API
xzpeter Aug 26, 2024
24f45da
KVM: use follow_pfnmap API
xzpeter Aug 26, 2024
2da397c
s390/pci_mmio: use follow_pfnmap API
xzpeter Aug 26, 2024
ec02bdf
mm/x86/pat: use the new follow_pfnmap API
xzpeter Aug 26, 2024
b4ec38b
vfio: use the new follow_pfnmap API
xzpeter Aug 26, 2024
dc754b3
acrn: use the new follow_pfnmap API
xzpeter Aug 26, 2024
75aac42
mm/access_process_vm: use the new follow_pfnmap API
xzpeter Aug 26, 2024
38a4ca2
mm: remove follow_pte()
xzpeter Aug 26, 2024
6b510f8
mm/x86: support large pfn mappings
xzpeter Aug 26, 2024
4737b76
mm/arm64: support large pfn mappings
xzpeter Aug 26, 2024
4f9e764
vfio/pci: implement huge_fault support
Aug 26, 2024
b6eac37
UBUNTU: [Config] nvidia-6.11: update configs for huge pfnmap support
jacobmartin0 Dec 12, 2024
5bc92b0
mm/pagewalk: fix usage of pmd_leaf()/pud_leaf() without present check
davidhildenbrand Oct 15, 2024
8b18eb2
mm/huge_memory: check pmd_special() only after pmd_present()
davidhildenbrand Sep 26, 2024
94ce669
mm: fix follow_pfnmap API lockdep assert
torvalds Oct 18, 2024
23826ba
NVIDIA: [Config]: Add PREEMPT and CPU_FREQ_DEFAULT annotations
jamieNguyenNVIDIA Jan 13, 2025
ff57b86
cppc_cpufreq: Remove HiSilicon CPPC workaround
Sep 29, 2024
c2a89e7
NVIDIA: SAUCE: ACPI/HMAT: Move HMAT messages to pr_debug()
djbw Jan 31, 2024
e0311e6
perf cs-etm: Create decoders after both AUX and HW_ID search passes
James-A-Clark Jul 22, 2024
7872a86
perf: cs-etm: Allocate queues for all CPUs
James-A-Clark Jul 22, 2024
70e685e
perf: cs-etm: Move traceid_list to each queue
James-A-Clark Jul 22, 2024
ec6377a
perf: cs-etm: Create decoders based on the trace ID mappings
James-A-Clark Jul 22, 2024
9b6688f
perf: cs-etm: Only save valid trace IDs into files
James-A-Clark Jul 22, 2024
5b88a31
perf: cs-etm: Support version 0.1 of HW_ID packets
James-A-Clark Jul 22, 2024
e9c1fd3
perf: cs-etm: Print queue number in raw trace dump
James-A-Clark Jul 22, 2024
33deec7
coresight: Remove unused ETM Perf stubs
James-A-Clark Jul 22, 2024
6fdde75
coresight: Clarify comments around the PID of the sink owner
James-A-Clark Jul 22, 2024
5555ef5
coresight: Move struct coresight_trace_id_map to common header
James-A-Clark Jul 22, 2024
960c3cd
coresight: Expose map arguments in trace ID API
James-A-Clark Jul 22, 2024
a2eae25
coresight: Make CPU id map a property of a trace ID map
James-A-Clark Jul 22, 2024
eface1e
coresight: Use per-sink trace ID maps for Perf sessions
James-A-Clark Jul 22, 2024
55042b1
coresight: Remove pending trace ID release mechanism
James-A-Clark Jul 22, 2024
f591c15
coresight: Emit sink ID in the HW_ID packets
James-A-Clark Jul 22, 2024
da12980
coresight: Make trace ID map spinlock local to the map
James-A-Clark Jul 22, 2024
9aca2bb
mm/gup: Add folio_add_pins()
Oct 25, 2024
8fa7e9c
iommufd: Rename uptr in iopt_alloc_iova()
Oct 25, 2024
04a1e44
iommufd: Generalize iopt_pages address
Oct 25, 2024
38b28d6
iommufd: pfn_reader local variables
Oct 25, 2024
566a7df
iommufd: Folio subroutines
Oct 25, 2024
b7b0c9b
iommufd: pfn_reader for file mappings
Oct 25, 2024
ae2a795
iommufd: Add IOMMU_IOAS_MAP_FILE
Oct 25, 2024
ba0a63c
iommufd: File mappings for mdev
Oct 25, 2024
a79becf
iommufd: Selftest coverage for IOMMU_IOAS_MAP_FILE
Oct 25, 2024
6cb7bd9
iommufd: Move struct iommufd_object to public iommufd header
nicolinc Nov 5, 2024
cd91e65
iommufd: Move _iommufd_object_alloc helper to a sharable file
nicolinc Nov 5, 2024
57cb1c6
iommufd: Introduce IOMMUFD_OBJ_VIOMMU and its related struct
nicolinc Nov 5, 2024
be301cb
iommufd: Verify object in iommufd_object_finalize/abort()
nicolinc Nov 5, 2024
7020e46
iommufd/viommu: Add IOMMU_VIOMMU_ALLOC ioctl
nicolinc Nov 5, 2024
6ba2c73
iommufd: Add alloc_domain_nested op to iommufd_viommu_ops
nicolinc Nov 5, 2024
7ce53c6
iommufd: Allow pt_id to carry viommu_id for IOMMU_HWPT_ALLOC
nicolinc Nov 5, 2024
e53a613
iommufd/selftest: Add container_of helpers
nicolinc Nov 5, 2024
c4fde2b
iommufd/selftest: Prepare for mock_viommu_alloc_domain_nested()
nicolinc Nov 5, 2024
dfe3ce8
iommufd/selftest: Add refcount to mock_iommu_device
nicolinc Nov 5, 2024
9b231b0
iommufd/selftest: Add IOMMU_VIOMMU_TYPE_SELFTEST
nicolinc Nov 5, 2024
7432e2d
iommufd/selftest: Add IOMMU_VIOMMU_ALLOC test coverage
nicolinc Nov 5, 2024
12db554
Documentation: userspace-api: iommufd: Update vIOMMU
nicolinc Nov 5, 2024
4a10f04
iommufd/viommu: Add IOMMUFD_OBJ_VDEVICE and IOMMU_VDEVICE_ALLOC ioctl
nicolinc Nov 5, 2024
81b5153
iommufd/selftest: Add IOMMU_VDEVICE_ALLOC test coverage
nicolinc Nov 5, 2024
ffde0ab
iommu/viommu: Add cache_invalidate to iommufd_viommu_ops
nicolinc Nov 5, 2024
e878c29
iommufd: Allow hwpt_id to carry viommu_id for IOMMU_HWPT_INVALIDATE
nicolinc Nov 5, 2024
118b3d4
iommu: Add iommu_copy_struct_from_full_user_array helper
jgunthorpe Nov 5, 2024
d389aad
iommufd/viommu: Add iommufd_viommu_find_dev helper
nicolinc Nov 5, 2024
12cd955
iommufd/selftest: Add mock_viommu_cache_invalidate
nicolinc Nov 5, 2024
887262c
iommufd/selftest: Add IOMMU_TEST_OP_DEV_CHECK_CACHE test command
nicolinc Nov 5, 2024
98792a7
iommufd/selftest: Add vIOMMU coverage for IOMMU_HWPT_INVALIDATE ioctl
nicolinc Nov 5, 2024
a5764f3
Documentation: userspace-api: iommufd: Update vDEVICE
nicolinc Nov 5, 2024
704e6b9
iommu/arm-smmu-v3: Add arm_smmu_strtab_l1/2_idx()
jgunthorpe Sep 6, 2024
5b96b42
iommu/arm-smmu-v3: Add types for each level of the 2 level stream table
jgunthorpe Sep 6, 2024
cdcc2a3
iommu/arm-smmu-v3: Reorganize struct arm_smmu_strtab_cfg
jgunthorpe Sep 6, 2024
c92d6b4
iommu/arm-smmu-v3: Remove strtab_base/cfg
jgunthorpe Sep 6, 2024
d326454
iommu/arm-smmu-v3: Shrink the cdtab l1_desc array
jgunthorpe Sep 6, 2024
6c5ead5
iommu/arm-smmu-v3: Add types for each level of the CD table
jgunthorpe Sep 6, 2024
84be4b3
iommu/arm-smmu-v3: Reorganize struct arm_smmu_ctx_desc_cfg
jgunthorpe Sep 6, 2024
bf13d3d
iommufd/device: Enforce reserved IOVA also when attached to hwpt_nested
nicolinc Aug 7, 2024
17b15bf
iommu/arm-smmu-v3: Issue a batch of commands to the same cmdq
nicolinc Aug 29, 2024
baeddc4
iommu/arm-smmu-v3: Pass in cmdq pointer to arm_smmu_cmdq_build_sync_cmd
nicolinc Aug 29, 2024
ee7fdf5
iommu/arm-smmu-v3: Pass in cmdq pointer to arm_smmu_cmdq_init
nicolinc Aug 29, 2024
01b2338
iommu/arm-smmu-v3: Make symbols public for CONFIG_TEGRA241_CMDQV
nicolinc Aug 29, 2024
518c14b
iommu/arm-smmu-v3: Add ARM_SMMU_OPT_TEGRA241_CMDQV
nicolinc Aug 29, 2024
d93ce80
iommu/arm-smmu-v3: Add acpi_smmu_iort_probe_model for impl
nicolinc Aug 29, 2024
b66dc93
iommu/arm-smmu-v3: Add struct arm_smmu_impl_ops
jgunthorpe Aug 29, 2024
2d62b5f
iommu/arm-smmu-v3: Add in-kernel support for NVIDIA Tegra241 (Grace) …
nwatterson Aug 29, 2024
fb25695
iommu/arm-smmu-v3: Start a new batch if new command is not supported
nicolinc Aug 29, 2024
db03669
iommu/tegra241-cmdqv: Limit CMDs for VCMDQs of a guest owned VINTF
nicolinc Aug 29, 2024
1bf2a25
vfio: Remove VFIO_TYPE1_NESTING_IOMMU
jgunthorpe Oct 31, 2024
88dca7e
ACPICA: IORT: Update for revision E.f
nicolinc Oct 31, 2024
d48c05d
ACPI/IORT: Support CANWBS memory access flag
nicolinc Oct 31, 2024
48334b4
iommu/arm-smmu-v3: Report IOMMU_CAP_ENFORCE_CACHE_COHERENCY for CANWBS
jgunthorpe Oct 31, 2024
8d02159
iommu/arm-smmu-v3: Support IOMMU_GET_HW_INFO via struct arm_smmu_hw_info
nicolinc Oct 31, 2024
12f4a00
iommu/arm-smmu-v3: Implement IOMMU_HWPT_ALLOC_NEST_PARENT
jgunthorpe Oct 31, 2024
467d417
iommu/arm-smmu-v3: Expose the arm_smmu_attach interface
jgunthorpe Oct 31, 2024
2c4d82a
iommu/arm-smmu-v3: Support IOMMU_VIOMMU_ALLOC
nicolinc Oct 31, 2024
6246041
iommu/arm-smmu-v3: Support IOMMU_DOMAIN_NESTED
jgunthorpe Oct 31, 2024
b6e89fc
iommu/arm-smmu-v3: Use S2FWB for NESTED domains
jgunthorpe Oct 31, 2024
f6ccb74
iommu/arm-smmu-v3: Allow ATS for IOMMU_DOMAIN_NESTED
jgunthorpe Oct 31, 2024
4a9722f
iommu/arm-smmu-v3: Support IOMMU_HWPT_INVALIDATE using a VIOMMU object
nicolinc Oct 31, 2024
32e76ac
NVIDIA: SAUCE: iommu/arm-smmu-v3: Implement arm_smmu_get_msi_mapping_…
nicolinc Jul 7, 2022
b07bf74
NVIDIA: SAUCE: iommu/dma: Support MSIs through nested domains
rmurphy-arm Mar 16, 2023
b588dba
NVIDIA: SAUCE: KVM: arm64: determine memory type from VMA
ankita-nv Feb 26, 2024
1eb0541
NVIDIA: SAUCE: WAR: Expose PCI PASID capability to userspace
ankita-nv Nov 15, 2023
15e066a
NVIDIA: SAUCE: WAR: iommufd/pages: Bypass PFNMAP
ankita-nv Nov 15, 2023
d610c0d
iommufd: Fix typos in kernel-doc comments
rddunlap Nov 28, 2024
13d1360
iommu/arm-smmu-v3: Import IOMMUFD module namespace
nathanchance Nov 14, 2024
020712d
iommu/arm-smmu-v3: Convert comma to semicolon
Sep 23, 2024
58ccd06
iommu/arm-smmu-v3: Fix last_sid_idx calculation for sid_bits==32
danielmentzgoogle Oct 2, 2024
4d81f55
iommu/tegra241-cmdqv: do not use smp_processor_id in preemptible context
lclaudio Dec 6, 2024
d14811a
iommu/tegra241-cmdqv: Fix alignment failure at max_n_shift
nicolinc Nov 11, 2024
7519355
iommu/tegra241-cmdqv: Staticize cmdqv_debugfs_dir
nicolinc Oct 21, 2024
c26ab33
iommu/tegra241-cmdqv: Do not allocate vcmdq until dma_set_mask_and_co…
nicolinc Sep 5, 2024
4db8570
iommu/tegra241-cmdqv: Drop static at local variable
nicolinc Sep 5, 2024
8d3e265
iommu/tegra241-cmdqv: Fix ioremap() error handling in probe()
Sep 4, 2024
8fec8db
iommu/tegra241-cmdqv: Fix -Wformat-truncation warnings in lvcmdq_erro…
nicolinc Sep 2, 2024
55b5731
vfio/nvgrace-gpu: Add a new GH200 SKU to the devid table
ankita-nv Oct 13, 2024
283e470
NVIDIA: SAUCE: vfio/nvgrace-gpu: Read dvsec register to determine nee…
ankita-nv Jan 5, 2025
42147da
NVIDIA: SAUCE: vfio/nvgrace-gpu: Expose the blackwell device PF BAR1 …
ankita-nv Jan 5, 2025
d03808f
NVIDIA: SAUCE: vfio/nvgrace-gpu: Check the HBM training and C2C link …
ankita-nv Jan 5, 2025
1314cf0
NVIDIA: SAUCE: [Config] nvidia-6.11: Update annotations for Grace I/O…
nvmochs Jul 16, 2024
ebecbc6
NVIDIA: SAUCE: PCI: Use downstream bridges for distributing resources
Dec 4, 2024
0a63d41
UBUNTU: Start new release
jacobmartin0 Jan 17, 2025
735209c
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Jan 17, 2025
897aa5c
UBUNTU: [Config] nvidia-6.11: update annotations
jacobmartin0 Jan 17, 2025
6f5f8aa
UBUNTU: Ubuntu-nvidia-6.11-6.11.0-1003.3
jacobmartin0 Jan 17, 2025
781f702
NVIDIA: SAUCE: Revert "iommu/tegra241-cmdqv: Do not allocate vcmdq un…
KobaKoNvidia Feb 11, 2025
31458b2
iommu/tegra241-cmdqv: Do not allocate vcmdq until dma_set_mask_and_co…
nicolinc Sep 5, 2024
e72cc3a
iommu/tegra241-cmdqv: Fix unused variable warning
willdeacon Oct 29, 2024
812200d
arch_topology: init capacity_freq_ref to 0
ionela-voinescu Aug 27, 2024
d289520
arm64: amu: Delay allocating cpumask for AMU FIE support
bea-arm Jan 31, 2025
ac92d68
cpufreq: Allow arch_freq_get_on_cpu to return an error
bea-arm Jan 31, 2025
5934e98
cpufreq: Introduce an optional cpuinfo_avg_freq sysfs entry
bea-arm Jan 31, 2025
cd1dc68
arm64: Provide an AMU-based version of arch_freq_get_on_cpu
bea-arm Jan 31, 2025
bdf1978
arm64: Update AMU-based freq scale factor on entering idle
bea-arm Jan 31, 2025
e108044
arm64: Utilize for_each_cpu_wrap for reference lookup
bea-arm Feb 20, 2025
520d535
NVIDIA: [Config] set CONFIG_CPUFREQ_ARCH_CUR_FREQ=y for x86
jamieNguyenNVIDIA Feb 25, 2025
ccc29f5
usb: host: xhci-plat: add support compatible ID PNP0D15
Jan 16, 2025
4647186
NVIDIA: SAUCE: serial: 8250_mtk: Add ACPI support
yenchia-chen Feb 11, 2025
8e6a54f
Bluetooth: btusb: Add Mediatek MT7925 support ID 0x13d3:0x3608
Aug 21, 2024
21365d1
firmware: arm_ffa: Some coding style fixes
sudeep-holla Aug 20, 2024
d4ee4a3
firmware: arm_ffa: Update the FF-A command list with v1.2 additions
sudeep-holla Aug 20, 2024
b27d5c3
firmware: arm_ffa: Move the function ffa_features() earlier
sudeep-holla Aug 20, 2024
681ae2a
firmware: arm_ffa: Add support for FFA_PARTITION_INFO_GET_REGS
sudeep-holla Aug 20, 2024
af47e2e
firmware: arm_ffa: Add support for FFA_MSG_SEND_DIRECT_{REQ,RESP}2
sudeep-holla Aug 20, 2024
b604641
firmware: arm_ffa: Add support for FFA_YIELD in direct messaging
sudeep-holla Aug 20, 2024
4f7d2d4
firmware: arm_ffa: Fetch the Rx/Tx buffer size using ffa_features()
sudeep-holla Aug 20, 2024
ec0c206
firmware: arm_ffa: Avoid string-fortify warning in export_uuid()
arndb Sep 9, 2024
756d124
firmware: arm_ffa: Avoid string-fortify warning caused by memcpy()
Oct 14, 2024
f513b59
NVIDIA: SAUCE: Adds MT7925 BT devices
nvidia-bfigg Feb 11, 2025
24141ec
NVIDIA: SAUCE: Fixes the kernel boot issues due to xhci mem errors
nvidia-bfigg Feb 11, 2025
eb89fc8
UBUNTU: Start new release
jacobmartin0 Mar 5, 2025
ac05fdc
UBUNTU: [Packaging] nvidia-6.11: Add list of used source files to bui…
juergh Nov 5, 2024
c1c41bf
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Mar 5, 2025
a9b1634
UBUNTU: [Config] nvidia-6.11: updateconfigs for annotations reordering
jacobmartin0 Mar 5, 2025
9b527ba
UBUNTU: Ubuntu-nvidia-6.11-6.11.0-1004.4
jacobmartin0 Mar 5, 2025
aa5cf24
Revert "UBUNTU: SAUCE: efi: efi_get_memory_map -- increase map headroom"
clsotog Mar 17, 2025
c058ab1
efi/libstub: Bump up EFI_MMAP_NR_SLACK_SLOTS to 32
effective-light Dec 9, 2024
3a86d34
Fix mmu notifiers for range-based invalidates
pjaroszynski Mar 4, 2025
b3f5cfe
NVIDIA: SAUCE: ACPI: CPPC: rename cppc_perf apis
Mar 13, 2025
4b491e4
NVIDIA: SAUCE: ACPI: CPPC: add read perf ctrls api
Mar 13, 2025
6363e4d
NVIDIA: SAUCE: ACPI: CPPC: expand macro to create store acpi_cppc sys…
Feb 4, 2025
3431225
NVIDIA: SAUCE: ACPI: CPPC: support updating epp, auto_sel and {min|ma…
Feb 4, 2025
0c80596
NVIDIA: SAUCE: Documentation: ACPI: add autonomous mode ctrls info in…
Feb 7, 2025
45e80f3
NVIDIA: SAUCE: cpufreq: CPPC: Add cppc_cpufreq_epp instance for Auton…
Aug 22, 2024
5c9b347
UBUNTU: Start new release
jacobmartin0 Mar 25, 2025
8c3436c
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Mar 25, 2025
9c8346b
UBUNTU: Ubuntu-nvidia-6.11-6.11.0-1005.5
jacobmartin0 Mar 25, 2025
40bad57
NVIDIA: SAUCE:Revert "NVIDIA: SAUCE: vfio/nvgrace-gpu: Check the HBM …
nvmochs Mar 24, 2025
b61399b
NVIDIA: SAUCE:Revert "NVIDIA: SAUCE: vfio/nvgrace-gpu: Expose the bla…
nvmochs Mar 24, 2025
9b83928
NVIDIA: SAUCE:Revert "NVIDIA: SAUCE: vfio/nvgrace-gpu: Read dvsec reg…
nvmochs Mar 24, 2025
f2a13aa
vfio/nvgrace-gpu: Add GB200 SKU to the devid table
ankita-nv Jan 24, 2025
6698a58
vfio/nvgrace-gpu: Read dvsec register to determine need for uncached …
ankita-nv Jan 24, 2025
47a89c0
vfio/nvgrace-gpu: Expose the blackwell device PF BAR1 to the VM
ankita-nv Jan 24, 2025
168adc1
vfio/nvgrace-gpu: Check the HBM training and C2C link status
ankita-nv Jan 24, 2025
07399e8
NVIDIA: SAUCE: MEDIATEK: usb: host: xhci-plat: support usb3 bulks str…
Apr 12, 2025
37019a1
NVIDIA: SAUCE: MEDIATEK: PCI: disable SBR on Gen5 ports
Apr 11, 2025
2ba137c
UBUNTU: Start new release
jacobmartin0 Apr 18, 2025
040f144
UBUNTU: link-to-tracker: update tracking bug
jacobmartin0 Apr 18, 2025
ea88150
UBUNTU: [Packaging] debian.nvidia-6.11/dkms-versions -- update from k…
jacobmartin0 Apr 18, 2025
cf9538f
UBUNTU: Ubuntu-nvidia-6.11-6.11.0-1006.6
jacobmartin0 Apr 18, 2025
99e9084
RDMA/mlx5: Fix a WARN during dereg_mr for DM type
yishaih Feb 3, 2025
74ccd85
NVIDIA: SAUCE: Bluetooth: btusb: Add new VID/PID 13d3/3630
abhsahu Apr 24, 2025
419f7d0
firmware: arm_ffa: Replace SCMI by FF-A in the macro
sudeep-holla Feb 17, 2025
56f494e
firmware: arm_ffa: Replace UUID buffer to standard UUID format
sudeep-holla Feb 17, 2025
2aa25eb
firmware: arm_ffa: Align sync_send_receive{,2} function prototypes
sudeep-holla Feb 17, 2025
6870f91
firmware: arm_ffa: Fix big-endian support in __ffa_partition_info_get()
sudeep-holla Feb 17, 2025
b300cb6
firmware: arm_ffa: Fix big-endian support in __ffa_partition_info_reg…
sudeep-holla Feb 17, 2025
27a017a
firmware: arm_ffa: Refactor addition of partition information into XA…
vireshk Feb 17, 2025
a044451
firmware: arm_ffa: Handle the presence of host partition in the parti…
sudeep-holla Feb 17, 2025
0b9c729
firmware: arm_ffa: Unregister the FF-A devices when cleaning up the p…
sudeep-holla Feb 17, 2025
045a2d4
firmware: arm_ffa: Add support for passing UUID in FFA_MSG_SEND2
sudeep-holla Feb 17, 2025
063e59c
firmware: arm_ffa: Upgrade FF-A version to v1.2 in the driver
sudeep-holla Feb 17, 2025
586d121
firmware: arm_ffa: Reject higher major version as incompatible
sudeep-holla Feb 17, 2025
478557f
firmware: arm_ffa: Remove unnecessary declaration of ffa_partitions_c…
sudeep-holla Feb 17, 2025
b484281
firmware: arm_ffa: Refactoring to prepare for framework notification …
sudeep-holla Feb 17, 2025
0565fd6
firmware: arm_ffa: Stash ffa_device instead of notify_type in notifie…
sudeep-holla Feb 17, 2025
9185fdf
firmware: arm_ffa: Add support for {un,}registration of framework not…
sudeep-holla Feb 17, 2025
627f176
firmware: arm_ffa: Add support for handling framework notifications
sudeep-holla Feb 17, 2025
5399fcf
firmware: arm_ffa: Allow multiple UUIDs per partition to register SRI…
sudeep-holla Feb 17, 2025
a2a4f03
firmware: arm_ffa: Handle ffa_notification_get correctly at virtual F…
sudeep-holla Feb 17, 2025
7d4a49d
firmware: arm_ffa: Explicitly cast return value from FFA_VERSION befo…
sudeep-holla Feb 21, 2025
fde5cab
firmware: arm_ffa: Explicitly cast return value from NOTIFICATION_INF…
sudeep-holla Feb 21, 2025
aaeade9
firmware: arm_ffa: Skip the first/partition ID when parsing vCPU list
sudeep-holla Feb 23, 2025
cc323a0
firmware: arm_ffa: Set dma_mask for ffa devices
vireshk Jan 17, 2025
38719c5
NVIDIA: SAUCE: r8127: Add Realtek r8127 ethernet driver
abhsahu Apr 28, 2025
a999bc8
NVIDIA: SAUCE: r8127: Remove Realtek r8127 non required files
abhsahu Apr 28, 2025
c423b9f
NVIDIA: SAUCE: r8127: Moved files from r8127/src to r8127 folder
abhsahu Apr 28, 2025
5b9eb90
NVIDIA: SAUCE: Add r8127 in kernel build
terjebergstrom Apr 22, 2025
bdd2e14
UBUNTU: [Config] nvidia-6.11: Update annotations to enable realtek R8…
abhsahu Apr 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions Documentation/admin-guide/acpi/cppc_sysfs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,36 +27,64 @@ for each cpu X::
$ ls -lR /sys/devices/system/cpu/cpu0/acpi_cppc/
/sys/devices/system/cpu/cpu0/acpi_cppc/:
total 0
-r--r--r-- 1 root root 65536 Mar 5 19:38 auto_activity_window
-rw-r--r-- 1 root root 65536 Mar 5 19:38 auto_sel
-rw-r--r-- 1 root root 65536 Mar 5 19:38 energy_perf
-r--r--r-- 1 root root 65536 Mar 5 19:38 feedback_ctrs
-r--r--r-- 1 root root 65536 Mar 5 19:38 guaranteed_perf
-r--r--r-- 1 root root 65536 Mar 5 19:38 highest_perf
-r--r--r-- 1 root root 65536 Mar 5 19:38 lowest_freq
-r--r--r-- 1 root root 65536 Mar 5 19:38 lowest_nonlinear_perf
-r--r--r-- 1 root root 65536 Mar 5 19:38 lowest_perf
-rw-r--r-- 1 root root 65536 Mar 5 19:38 max_perf
-rw-r--r-- 1 root root 65536 Mar 5 19:38 min_perf
-r--r--r-- 1 root root 65536 Mar 5 19:38 nominal_freq
-r--r--r-- 1 root root 65536 Mar 5 19:38 nominal_perf
-r--r--r-- 1 root root 65536 Mar 5 19:38 per_limited
-r--r--r-- 1 root root 65536 Mar 5 19:38 reference_perf
-r--r--r-- 1 root root 65536 Mar 5 19:38 wraparound_time

Performance Capabilities / Thresholds:
* highest_perf : Highest performance of this processor (abstract scale).
* nominal_perf : Highest sustained performance of this processor
(abstract scale).
* lowest_nonlinear_perf : Lowest performance of this processor with nonlinear
power savings (abstract scale).
* lowest_perf : Lowest performance of this processor (abstract scale).
* guaranteed_perf : Current maximum sustained performance level of a processor,
taking into account all known external constraints. All processors are expected
to be able to sustain their guaranteed performance levels simultaneously.

* lowest_freq : CPU frequency corresponding to lowest_perf (in MHz).
* nominal_freq : CPU frequency corresponding to nominal_perf (in MHz).
The above frequencies should only be used to report processor performance in
frequency instead of abstract scale. These values should not be used for any
functional decisions.

Performance Feedback:
* feedback_ctrs : Includes both Reference and delivered performance counter.
Reference counter ticks up proportional to processor's reference performance.
Delivered counter ticks up proportional to processor's delivered performance.
* wraparound_time: Minimum time for the feedback counters to wraparound
(seconds).
* reference_perf : Performance level at which reference performance counter
accumulates (abstract scale).
* perf_limited : Set when Delivered Performance has been constrained due to an
unpredictable event. It is not utilized when Autonomous Selection is enabled.

Performance Controls:
* max_perf : Maximum performance level at which the platform may run in the
range [Lowest Performance, Highest Performance], inclusive.
* min_perf : Minimum performance level at which the platform may run in the
range [Lowest Performance, Highest Performance], inclusive but must be set
to a value that is less than or equal to that specified by the max_perf.
* auto_sel : Enable Autonomous Performance Level Selection on this processor.
* auto_activity_window : Indicates a moving utilization sensitivity window to
the platform’s autonomous selection policy.
* energy_perf: Provides a value ranging from 0 (performance preference) to
0xFF (energy efficiency preference) that influences the rate of performance
increase / decrease and the result of the hardware's energy efficiency and
performance optimization policies.


Computing Average Delivered Performance
Expand Down
12 changes: 12 additions & 0 deletions Documentation/admin-guide/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -878,6 +878,18 @@
to register. Example: cpufreq_driver=powernow-k8
Format: { none | STRING }

cppc_cpufreq.auto_sel_mode=
[CPU_FREQ] Autonomous Performance Level Selection.
When Autonomous selection is enabled, then the hardware is
allowed to autonomously select the CPU frequency.
In Autonomous mode, Engergy Performance Preference(EPP)
provides input to the hardware to favour performance (0x0)
or energy efficiency (0xff).
Format: <bool>
Default: disabled.
0: force disabled
1: force enabled

cpuidle.off=1 [CPU_IDLE]
disable the cpuidle sub-system

Expand Down
17 changes: 16 additions & 1 deletion Documentation/admin-guide/pm/cpufreq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,20 @@ are the following:
If that frequency cannot be determined, this attribute should not
be present.

``cpuinfo_avg_freq``
An average frequency (in KHz) of all CPUs belonging to a given policy,
derived from a hardware provided feedback and reported on a time frame
spanning at most few milliseconds.

This is expected to be based on the frequency the hardware actually runs
at and, as such, might require specialised hardware support (such as AMU
extension on ARM). If one cannot be determined, this attribute should
not be present.

Note, that failed attempt to retrieve current frequency for a given
CPU(s) will result in an appropriate error, i.e: EAGAIN for CPU that
remains idle (raised on ARM).

``cpuinfo_max_freq``
Maximum possible operating frequency the CPUs belonging to this policy
can run at (in kHz).
Expand Down Expand Up @@ -293,7 +307,8 @@ are the following:
Some architectures (e.g. ``x86``) may attempt to provide information
more precisely reflecting the current CPU frequency through this
attribute, but that still may not be the exact current CPU frequency as
seen by the hardware at the moment.
seen by the hardware at the moment. This behavior though, is only
available via c:macro:``CPUFREQ_ARCH_CUR_FREQ`` option.

``scaling_driver``
The scaling driver currently in use.
Expand Down
6 changes: 3 additions & 3 deletions Documentation/mm/transhuge.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ Design principles
feature that applies to all dynamic high order allocations in the
kernel)

get_user_pages and follow_page
==============================
get_user_pages and pin_user_pages
=================================

get_user_pages and follow_page if run on a hugepage, will return the
get_user_pages and pin_user_pages if run on a hugepage, will return the
head or tail pages as usual (exactly as they would do on
hugetlbfs). Most GUP users will only care about the actual physical
address of the page and its temporary pinning to release after the I/O
Expand Down
131 changes: 120 additions & 11 deletions Documentation/userspace-api/iommufd.rst
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,52 @@ Following IOMMUFD objects are exposed to userspace:
The IOAS has a list of HW_PAGETABLES that share the same IOVA mapping and
it will synchronize its mapping with each member HW_PAGETABLE.

- IOMMUFD_OBJ_VIOMMU, representing a slice of the physical IOMMU instance,
passed to or shared with a VM. It may be some HW-accelerated virtualization
features and some SW resources used by the VM. For examples:

* Security namespace for guest owned ID, e.g. guest-controlled cache tags
* Non-device-affiliated event reporting, e.g. invalidation queue errors
* Access to a sharable nesting parent pagetable across physical IOMMUs
* Virtualization of various platforms IDs, e.g. RIDs and others
* Delivery of paravirtualized invalidation
* Direct assigned invalidation queues
* Direct assigned interrupts

Such a vIOMMU object generally has the access to a nesting parent pagetable
to support some HW-accelerated virtualization features. So, a vIOMMU object
must be created given a nesting parent HWPT_PAGING object, and then it would
encapsulate that HWPT_PAGING object. Therefore, a vIOMMU object can be used
to allocate an HWPT_NESTED object in place of the encapsulated HWPT_PAGING.

.. note::

The name "vIOMMU" isn't necessarily identical to a virtualized IOMMU in a
VM. A VM can have one giant virtualized IOMMU running on a machine having
multiple physical IOMMUs, in which case the VMM will dispatch the requests
or configurations from this single virtualized IOMMU instance to multiple
vIOMMU objects created for individual slices of different physical IOMMUs.
In other words, a vIOMMU object is always a representation of one physical
IOMMU, not necessarily of a virtualized IOMMU. For VMMs that want the full
virtualization features from physical IOMMUs, it is suggested to build the
same number of virtualized IOMMUs as the number of physical IOMMUs, so the
passed-through devices would be connected to their own virtualized IOMMUs
backed by corresponding vIOMMU objects, in which case a guest OS would do
the "dispatch" naturally instead of VMM trappings.

- IOMMUFD_OBJ_VDEVICE, representing a virtual device for an IOMMUFD_OBJ_DEVICE
against an IOMMUFD_OBJ_VIOMMU. This virtual device holds the device's virtual
information or attributes (related to the vIOMMU) in a VM. An immediate vDATA
example can be the virtual ID of the device on a vIOMMU, which is a unique ID
that VMM assigns to the device for a translation channel/port of the vIOMMU,
e.g. vSID of ARM SMMUv3, vDeviceID of AMD IOMMU, and vRID of Intel VT-d to a
Context Table. Potential use cases of some advanced security information can
be forwarded via this object too, such as security level or realm information
in a Confidential Compute Architecture. A VMM should create a vDEVICE object
to forward all the device information in a VM, when it connects a device to a
vIOMMU, which is a separate ioctl call from attaching the same device to an
HWPT_PAGING that the vIOMMU holds.

All user-visible objects are destroyed via the IOMMU_DESTROY uAPI.

The diagram below shows relationship between user-visible objects and kernel
Expand Down Expand Up @@ -82,6 +128,28 @@ creating the objects and links::
|------------>|iommu_domain| |struct device|
|____________| |_____________|

_______________________________________________________________________
| iommufd (with vIOMMU/vDEVICE) |
| |
| [5] [6] |
| _____________ _____________ |
| | | | | |
| |----------------| vIOMMU |<---| vDEVICE |<----| |
| | | | |_____________| | |
| | | | | |
| | [1] | | [4] | [2] |
| | ______ | | _____________ _|______ |
| | | | | [3] | | | | | |
| | | IOAS |<---|(HWPT_PAGING)|<---| HWPT_NESTED |<--| DEVICE | |
| | |______| |_____________| |_____________| |________| |
| | | | | | |
|______|________|______________|__________________|_______________|_____|
| | | | |
______v_____ | ______v_____ ______v_____ ___v__
| struct | | PFN | (paging) | | (nested) | |struct|
|iommu_device| |------>|iommu_domain|<----|iommu_domain|<----|device|
|____________| storage|____________| |____________| |______|

1. IOMMUFD_OBJ_IOAS is created via the IOMMU_IOAS_ALLOC uAPI. An iommufd can
hold multiple IOAS objects. IOAS is the most generic object and does not
expose interfaces that are specific to single IOMMU drivers. All operations
Expand All @@ -94,22 +162,62 @@ creating the objects and links::
device. The driver must also set the driver_managed_dma flag and must not
touch the device until this operation succeeds.

3. IOMMUFD_OBJ_HW_PAGETABLE is created when an external driver calls the IOMMUFD
kAPI to attach a bound device to an IOAS. Similarly the external driver uAPI
allows userspace to initiate the attaching operation. If a compatible
pagetable already exists then it is reused for the attachment. Otherwise a
new pagetable object and iommu_domain is created. Successful completion of
this operation sets up the linkages among IOAS, device and iommu_domain. Once
this completes the device could do DMA.

Every iommu_domain inside the IOAS is also represented to userspace as a
HW_PAGETABLE object.
3. IOMMUFD_OBJ_HWPT_PAGING can be created in two ways:

* IOMMUFD_OBJ_HWPT_PAGING is automatically created when an external driver
calls the IOMMUFD kAPI to attach a bound device to an IOAS. Similarly the
external driver uAPI allows userspace to initiate the attaching operation.
If a compatible member HWPT_PAGING object exists in the IOAS's HWPT_PAGING
list, then it will be reused. Otherwise a new HWPT_PAGING that represents
an iommu_domain to userspace will be created, and then added to the list.
Successful completion of this operation sets up the linkages among IOAS,
device and iommu_domain. Once this completes the device could do DMA.
* IOMMUFD_OBJ_HWPT_PAGING can be manually created via the IOMMU_HWPT_ALLOC
uAPI, provided an ioas_id via @pt_id to associate the new HWPT_PAGING to
the corresponding IOAS object. The benefit of this manual allocation is to
allow allocation flags (defined in enum iommufd_hwpt_alloc_flags), e.g. it
allocates a nesting parent HWPT_PAGING if the IOMMU_HWPT_ALLOC_NEST_PARENT
flag is set.

4. IOMMUFD_OBJ_HWPT_NESTED can be only manually created via the IOMMU_HWPT_ALLOC
uAPI, provided an hwpt_id or a viommu_id of a vIOMMU object encapsulating a
nesting parent HWPT_PAGING via @pt_id to associate the new HWPT_NESTED object
to the corresponding HWPT_PAGING object. The associating HWPT_PAGING object
must be a nesting parent manually allocated via the same uAPI previously with
an IOMMU_HWPT_ALLOC_NEST_PARENT flag, otherwise the allocation will fail. The
allocation will be further validated by the IOMMU driver to ensure that the
nesting parent domain and the nested domain being allocated are compatible.
Successful completion of this operation sets up linkages among IOAS, device,
and iommu_domains. Once this completes the device could do DMA via a 2-stage
translation, a.k.a nested translation. Note that multiple HWPT_NESTED objects
can be allocated by (and then associated to) the same nesting parent.

.. note::

Future IOMMUFD updates will provide an API to create and manipulate the
HW_PAGETABLE directly.

5. IOMMUFD_OBJ_VIOMMU can be only manually created via the IOMMU_VIOMMU_ALLOC
uAPI, provided a dev_id (for the device's physical IOMMU to back the vIOMMU)
and an hwpt_id (to associate the vIOMMU to a nesting parent HWPT_PAGING). The
iommufd core will link the vIOMMU object to the struct iommu_device that the
struct device is behind. And an IOMMU driver can implement a viommu_alloc op
to allocate its own vIOMMU data structure embedding the core-level structure
iommufd_viommu and some driver-specific data. If necessary, the driver can
also configure its HW virtualization feature for that vIOMMU (and thus for
the VM). Successful completion of this operation sets up the linkages between
the vIOMMU object and the HWPT_PAGING, then this vIOMMU object can be used
as a nesting parent object to allocate an HWPT_NESTED object described above.

6. IOMMUFD_OBJ_VDEVICE can be only manually created via the IOMMU_VDEVICE_ALLOC
uAPI, provided a viommu_id for an iommufd_viommu object and a dev_id for an
iommufd_device object. The vDEVICE object will be the binding between these
two parent objects. Another @virt_id will be also set via the uAPI providing
the iommufd core an index to store the vDEVICE object to a vDEVICE array per
vIOMMU. If necessary, the IOMMU driver may choose to implement a vdevce_alloc
op to init its HW for virtualization feature related to a vDEVICE. Successful
completion of this operation sets up the linkages between vIOMMU and device.

A device can only bind to an iommufd due to DMA ownership claim and attach to at
most one IOAS object (no support of PASID yet).

Expand All @@ -120,7 +228,8 @@ User visible objects are backed by following datastructures:

- iommufd_ioas for IOMMUFD_OBJ_IOAS.
- iommufd_device for IOMMUFD_OBJ_DEVICE.
- iommufd_hw_pagetable for IOMMUFD_OBJ_HW_PAGETABLE.
- iommufd_viommu for IOMMUFD_OBJ_VIOMMU.
- iommufd_vdevice for IOMMUFD_OBJ_VDEVICE.

Several terminologies when looking at these datastructures:

Expand Down
1 change: 1 addition & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -22527,6 +22527,7 @@ M: Thierry Reding <thierry.reding@gmail.com>
R: Krishna Reddy <vdumpa@nvidia.com>
L: linux-tegra@vger.kernel.org
S: Supported
F: drivers/iommu/arm/arm-smmu-v3/tegra241-cmdqv.c
F: drivers/iommu/arm/arm-smmu/arm-smmu-nvidia.c
F: drivers/iommu/tegra*

Expand Down
8 changes: 4 additions & 4 deletions Ubuntu.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Name: linux
Name: linux-nvidia-6.11
Version: 6.11.0
Series: 24.10 (oracular)
Series: 24.04 (noble)
Description:
This is the source code for the Ubuntu linux kernel for the 24.10 series. This
source tree is used to produce the flavours: generic, generic-64k, generic-lpae.
This is the source code for the linux-nvidia-6.11 kernel for the 24.04 series. This
source tree is used to produce the flavours: nvidia, nvidia-64k.
This kernel is configured to support the widest range of desktop, laptop and
server configurations.
1 change: 1 addition & 0 deletions arch/arm64/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ config ARM64
select ARCH_SUPPORTS_NUMA_BALANCING
select ARCH_SUPPORTS_PAGE_TABLE_CHECK
select ARCH_SUPPORTS_PER_VMA_LOCK
select ARCH_SUPPORTS_HUGE_PFNMAP if TRANSPARENT_HUGEPAGE
select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
select ARCH_WANT_COMPAT_IPC_PARSE_VERSION if COMPAT
select ARCH_WANT_DEFAULT_BPF_JIT
Expand Down
8 changes: 8 additions & 0 deletions arch/arm64/include/asm/kvm_pgtable.h
Original file line number Diff line number Diff line change
Expand Up @@ -460,6 +460,14 @@ u64 kvm_pgtable_hyp_unmap(struct kvm_pgtable *pgt, u64 addr, u64 size);
*/
u64 kvm_get_vtcr(u64 mmfr0, u64 mmfr1, u32 phys_shift);

/**
* stage2_has_fwb() - Determine whether FWB is supported
* @pgt: Page-table structure initialised by kvm_pgtable_stage2_init*()
*
* Return: True if FWB is supported.
*/
bool stage2_has_fwb(struct kvm_pgtable *pgt);

/**
* kvm_pgtable_stage2_pgd_size() - Helper to compute size of a stage-2 PGD
* @vtcr: Content of the VTCR register.
Expand Down
30 changes: 30 additions & 0 deletions arch/arm64/include/asm/pgtable.h
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,7 @@ static inline void __sync_cache_and_tags(pte_t pte, unsigned int nr_pages)
/*
* Select all bits except the pfn
*/
#define pte_pgprot pte_pgprot
static inline pgprot_t pte_pgprot(pte_t pte)
{
unsigned long pfn = pte_pfn(pte);
Expand Down Expand Up @@ -577,6 +578,14 @@ static inline pmd_t pmd_mkdevmap(pmd_t pmd)
return pte_pmd(set_pte_bit(pmd_pte(pmd), __pgprot(PTE_DEVMAP)));
}

#ifdef CONFIG_ARCH_SUPPORTS_PMD_PFNMAP
#define pmd_special(pte) (!!((pmd_val(pte) & PTE_SPECIAL)))
static inline pmd_t pmd_mkspecial(pmd_t pmd)
{
return set_pmd_bit(pmd, __pgprot(PTE_SPECIAL));
}
#endif

#define __pmd_to_phys(pmd) __pte_to_phys(pmd_pte(pmd))
#define __phys_to_pmd_val(phys) __phys_to_pte_val(phys)
#define pmd_pfn(pmd) ((__pmd_to_phys(pmd) & PMD_MASK) >> PAGE_SHIFT)
Expand All @@ -594,6 +603,27 @@ static inline pmd_t pmd_mkdevmap(pmd_t pmd)
#define pud_pfn(pud) ((__pud_to_phys(pud) & PUD_MASK) >> PAGE_SHIFT)
#define pfn_pud(pfn,prot) __pud(__phys_to_pud_val((phys_addr_t)(pfn) << PAGE_SHIFT) | pgprot_val(prot))

#ifdef CONFIG_ARCH_SUPPORTS_PUD_PFNMAP
#define pud_special(pte) pte_special(pud_pte(pud))
#define pud_mkspecial(pte) pte_pud(pte_mkspecial(pud_pte(pud)))
#endif

#define pmd_pgprot pmd_pgprot
static inline pgprot_t pmd_pgprot(pmd_t pmd)
{
unsigned long pfn = pmd_pfn(pmd);

return __pgprot(pmd_val(pfn_pmd(pfn, __pgprot(0))) ^ pmd_val(pmd));
}

#define pud_pgprot pud_pgprot
static inline pgprot_t pud_pgprot(pud_t pud)
{
unsigned long pfn = pud_pfn(pud);

return __pgprot(pud_val(pfn_pud(pfn, __pgprot(0))) ^ pud_val(pud));
}

static inline void __set_pte_at(struct mm_struct *mm,
unsigned long __always_unused addr,
pte_t *ptep, pte_t pte, unsigned int nr)
Expand Down
Loading