History

Merge tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd

Pull iommufd implementation from Jason Gunthorpe: "iommufd is the user API to control the IOMMU subsystem as it relates to managing IO page tables that point at user space memory. It takes over from drivers/vfio/vfio_iommu_type1.c (aka the VFIO container) which is the VFIO specific interface for a similar idea. We see a broad need for extended features, some being highly IOMMU device specific: - Binding iommu_domain's to PASID/SSID - Userspace IO page tables, for ARM, x86 and S390 - Kernel bypassed invalidation of user page tables - Re-use of the KVM page table in the IOMMU - Dirty page tracking in the IOMMU - Runtime Increase/Decrease of IOPTE size - PRI support with faults resolved in userspace Many of these HW features exist to support VM use cases - for instance the combination of PASID, PRI and Userspace IO Page Tables allows an implementation of DMA Shared Virtual Addressing (vSVA) within a guest. Dirty tracking enables VM live migration with SRIOV devices and PASID support allow creating "scalable IOV" devices, among other things. As these features are fundamental to a VM platform they need to be uniformly exposed to all the driver families that do DMA into VMs, which is currently VFIO and VDPA" For more background, see the extended explanations in Jason's pull request: https://lore.kernel.org/lkml/Y5dzTU8dlmXTbzoJ@nvidia.com/ * tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd: (62 commits) iommufd: Change the order of MSI setup iommufd: Improve a few unclear bits of code iommufd: Fix comment typos vfio: Move vfio group specific code into group.c vfio: Refactor dma APIs for emulated devices vfio: Wrap vfio group module init/clean code into helpers vfio: Refactor vfio_device open and close vfio: Make vfio_device_open() truly device specific vfio: Swap order of vfio_device_container_register() and open_device() vfio: Set device->group in helper function vfio: Create wrappers for group register/unregister vfio: Move the sanity check of the group to vfio_create_group() vfio: Simplify vfio_create_group() iommufd: Allow iommufd to supply /dev/vfio/vfio vfio: Make vfio_container optionally compiled vfio: Move container related MODULE_ALIAS statements into container.c vfio-iommufd: Support iommufd for emulated VFIO devices vfio-iommufd: Support iommufd for physical VFIO devices vfio-iommufd: Allow iommufd to be used in place of a container fd vfio: Use IOMMU_CAP_ENFORCE_CACHE_COHERENCY for vfio_file_enforced_coherent() ...

Linus Torvalds committed 3 years ago

Commit 08cdc212 parents aa5ad10 d6c55c083 files · +12804 −1466Browse files

Showing the changes to scripts (1 of 83 files). Show all

Unified · Split

scripts/kernel-doc+8−4
@@ -256,6 +256,7 @@ my $doc_inline_sect = '\s*\*\s*(@\s*[\w][\w\.]*\s*):(.*)'; · 255 unmodified lines
256256 my $doc_inline_end = '^\s*\*/\s*$';
257257 my $doc_inline_oneline = '^\s*/\*\*\s*(@[\w\s]+):\s*(.*)\s*\*/\s*$';
258258 my $export_symbol = '^\s*EXPORT_SYMBOL(_GPL)?\s*\(\s*(\w+)\s*\)\s*;';
259+my $export_symbol_ns = '^\s*EXPORT_SYMBOL_NS(_GPL)?\s*\(\s*(\w+)\s*,\s*\w+\)\s*;';
259260 my $function_pointer = qr{([^\(]*\(\*)\s*\)\s*\(([^\)]*)\)};
260261 my $attribute = qr{__attribute__\s*\(\([a-z0-9,_\*\s\(\)]*\)\)}i;
261262
@@ -1960,6 +1961,10 @@ sub process_export_file($) { · 1698 unmodified lines
19601961 next if (defined($nosymbol_table{$2}));
19611962 $function_table{$2} = 1;
19621963 }
1964+ if (/$export_symbol_ns/) {
1965+ next if (defined($nosymbol_table{$2}));
1966+ $function_table{$2} = 1;
1967+ }
19631968 }
19641969
19651970 close(IN);
@@ -2431,12 +2436,12 @@ found on PATH. · 465 unmodified lines
24312436 =item -export
24322437
24332438 Only output documentation for the symbols that have been exported using
2434−EXPORT_SYMBOL() or EXPORT_SYMBOL_GPL() in any input FILE or -export-file FILE.
2439+EXPORT_SYMBOL() and related macros in any input FILE or -export-file FILE.
24352440
24362441 =item -internal
24372442
24382443 Only output documentation for the symbols that have NOT been exported using
2439−EXPORT_SYMBOL() or EXPORT_SYMBOL_GPL() in any input FILE or -export-file FILE.
2444+EXPORT_SYMBOL() and related macros in any input FILE or -export-file FILE.
24402445
24412446 =item -function NAME
24422447
@@ -2463,8 +2468,7 @@ Do not output DOC: sections. · 20 unmodified lines
24632468
24642469 =item -export-file FILE
24652470
2466−Specify an additional FILE in which to look for EXPORT_SYMBOL() and
2467−EXPORT_SYMBOL_GPL().
2471+Specify an additional FILE in which to look for EXPORT_SYMBOL information.
24682472
24692473 To be used with -export or -internal.
24702474