# git rev-parse -q --verify 341d041daae52cd5f014f68c1c7d9039db818fca^{commit} 341d041daae52cd5f014f68c1c7d9039db818fca already have revision, skipping fetch # git checkout -q -f -B kisskb 341d041daae52cd5f014f68c1c7d9039db818fca # git clean -qxdf # < git log -1 # commit 341d041daae52cd5f014f68c1c7d9039db818fca # Merge: 51ae62a12c24 6d026e6d48cd # Author: Linus Torvalds # Date: Thu Nov 21 12:40:50 2024 -0800 # # Merge tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd # # Pull iommufd updates from Jason Gunthorpe: # "Several new features and uAPI for iommufd: # # - IOMMU_IOAS_MAP_FILE allows passing in a file descriptor as the # backing memory for an iommu mapping. To date VFIO/iommufd have used # VMA's and pin_user_pages(), this now allows using memfds and # memfd_pin_folios(). Notably this creates a pure folio path from the # memfd to the iommu page table where memory is never broken down to # PAGE_SIZE. # # - IOMMU_IOAS_CHANGE_PROCESS moves the pinned page accounting between # two processes. Combined with the above this allows iommufd to # support a VMM re-start using exec() where something like qemu would # exec() a new version of itself and fd pass the memfds/iommufd/etc # to the new process. The memfd allows DMA access to the memory to # continue while the new process is getting setup, and the # CHANGE_PROCESS updates all the accounting. # # - Support for fault reporting to userspace on non-PRI HW, such as ARM # stall-mode embedded devices. # # - IOMMU_VIOMMU_ALLOC introduces the concept of a HW/driver backed # virtual iommu. This will be used by VMMs to access hardware # features that are contained with in a VM. The first use is to # inform the kernel of the virtual SID to physical SID mapping when # issuing SID based invalidation on ARM. Further uses will tie HW # features that are directly accessed by the VM, such as invalidation # queue assignment and others. # # - IOMMU_VDEVICE_ALLOC informs the kernel about the mapping of virtual # device to physical device within a VIOMMU. Minimially this is used # to translate VM issued cache invalidation commands from virtual to # physical device IDs. # # - Enhancements to IOMMU_HWPT_INVALIDATE and IOMMU_HWPT_ALLOC to work # with the VIOMMU # # - ARM SMMuv3 support for nested translation. Using the VIOMMU and # VDEVICE the driver can model this HW's behavior for nested # translation. This includes a shared branch from Will" # # * tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd: (51 commits) # iommu/arm-smmu-v3: Import IOMMUFD module namespace # iommufd: IOMMU_IOAS_CHANGE_PROCESS selftest # iommufd: Add IOMMU_IOAS_CHANGE_PROCESS # iommufd: Lock all IOAS objects # iommufd: Export do_update_pinned # iommu/arm-smmu-v3: Support IOMMU_HWPT_INVALIDATE using a VIOMMU object # iommu/arm-smmu-v3: Allow ATS for IOMMU_DOMAIN_NESTED # iommu/arm-smmu-v3: Use S2FWB for NESTED domains # iommu/arm-smmu-v3: Support IOMMU_DOMAIN_NESTED # iommu/arm-smmu-v3: Support IOMMU_VIOMMU_ALLOC # Documentation: userspace-api: iommufd: Update vDEVICE # iommufd/selftest: Add vIOMMU coverage for IOMMU_HWPT_INVALIDATE ioctl # iommufd/selftest: Add IOMMU_TEST_OP_DEV_CHECK_CACHE test command # iommufd/selftest: Add mock_viommu_cache_invalidate # iommufd/viommu: Add iommufd_viommu_find_dev helper # iommu: Add iommu_copy_struct_from_full_user_array helper # iommufd: Allow hwpt_id to carry viommu_id for IOMMU_HWPT_INVALIDATE # iommu/viommu: Add cache_invalidate to iommufd_viommu_ops # iommufd/selftest: Add IOMMU_VDEVICE_ALLOC test coverage # iommufd/viommu: Add IOMMUFD_OBJ_VDEVICE and IOMMU_VDEVICE_ALLOC ioctl # ... # < /opt/cross/kisskb/x86-64--glibc--bleeding-edge-2022.08-1/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/x86-64--glibc--bleeding-edge-2022.08-1/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 341d041daae52cd5f014f68c1c7d9039db818fca # make -s -j 32 ARCH=um O=/kisskb/build/linus_allyesconfig_um-x86_64-gcc12 CROSS_COMPILE=/opt/cross/kisskb/x86-64--glibc--bleeding-edge-2022.08-1/bin/x86_64-linux- SUBARCH=x86_64 allyesconfig # Added to kconfig CONFIG_STANDALONE=y # Added to kconfig CONFIG_KCOV=n # Added to kconfig CONFIG_GCC_PLUGINS=n # Added to kconfig CONFIG_GCC_PLUGIN_CYC_COMPLEXITY=n # Added to kconfig CONFIG_GCC_PLUGIN_SANCOV=n # Added to kconfig CONFIG_GCC_PLUGIN_LATENT_ENTROPY=n # Added to kconfig CONFIG_GCC_PLUGIN_STRUCTLEAK=n # Added to kconfig CONFIG_GCC_PLUGIN_RANDSTRUCT=n # Added to kconfig CONFIG_UML_NET=n # Added to kconfig CONFIG_UML_NET_ETHERTAP=n # Added to kconfig CONFIG_UML_NET_TUNTAP=n # Added to kconfig CONFIG_UML_NET_SLIP=n # Added to kconfig CONFIG_UML_NET_DAEMON=n # Added to kconfig CONFIG_UML_NET_VDE=n # Added to kconfig CONFIG_UML_NET_MCAST=n # Added to kconfig CONFIG_UML_NET_PCAP=n # Added to kconfig CONFIG_UML_NET_SLIRP=n # Added to kconfig CONFIG_GCOV_KERNEL=n # Added to kconfig CONFIG_DEBUG_INFO_BTF=n # Added to kconfig CONFIG_BPF_PRELOAD=n # Added to kconfig CONFIG_SPI_STM32_QSPI=n # < make -s -j 32 ARCH=um O=/kisskb/build/linus_allyesconfig_um-x86_64-gcc12 CROSS_COMPILE=/opt/cross/kisskb/x86-64--glibc--bleeding-edge-2022.08-1/bin/x86_64-linux- SUBARCH=x86_64 help # make -s -j 32 ARCH=um O=/kisskb/build/linus_allyesconfig_um-x86_64-gcc12 CROSS_COMPILE=/opt/cross/kisskb/x86-64--glibc--bleeding-edge-2022.08-1/bin/x86_64-linux- SUBARCH=x86_64 olddefconfig .config:15133:warning: override: reassigning to symbol GCC_PLUGIN_LATENT_ENTROPY .config:15137:warning: override: reassigning to symbol UML_NET_ETHERTAP .config:15139:warning: override: reassigning to symbol UML_NET_SLIP .config:15142:warning: override: reassigning to symbol UML_NET_MCAST # make -s -j 32 ARCH=um O=/kisskb/build/linus_allyesconfig_um-x86_64-gcc12 CROSS_COMPILE=/opt/cross/kisskb/x86-64--glibc--bleeding-edge-2022.08-1/bin/x86_64-linux- SUBARCH=x86_64 /kisskb/src/lib/iomap.c:156:5: error: no previous prototype for ‘ioread64_lo_hi’ [-Werror=missing-prototypes] 156 | u64 ioread64_lo_hi(const void __iomem *addr) | ^~~~~~~~~~~~~~ /kisskb/src/lib/iomap.c:163:5: error: no previous prototype for ‘ioread64_hi_lo’ [-Werror=missing-prototypes] 163 | u64 ioread64_hi_lo(const void __iomem *addr) | ^~~~~~~~~~~~~~ /kisskb/src/lib/iomap.c:170:5: error: no previous prototype for ‘ioread64be_lo_hi’ [-Werror=missing-prototypes] 170 | u64 ioread64be_lo_hi(const void __iomem *addr) | ^~~~~~~~~~~~~~~~ /kisskb/src/lib/iomap.c:178:5: error: no previous prototype for ‘ioread64be_hi_lo’ [-Werror=missing-prototypes] 178 | u64 ioread64be_hi_lo(const void __iomem *addr) | ^~~~~~~~~~~~~~~~ /kisskb/src/lib/iomap.c:264:6: error: no previous prototype for ‘iowrite64_lo_hi’ [-Werror=missing-prototypes] 264 | void iowrite64_lo_hi(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~ /kisskb/src/lib/iomap.c:272:6: error: no previous prototype for ‘iowrite64_hi_lo’ [-Werror=missing-prototypes] 272 | void iowrite64_hi_lo(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~ /kisskb/src/lib/iomap.c:280:6: error: no previous prototype for ‘iowrite64be_lo_hi’ [-Werror=missing-prototypes] 280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~~~ /kisskb/src/lib/iomap.c:288:6: error: no previous prototype for ‘iowrite64be_hi_lo’ [-Werror=missing-prototypes] 288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr) | ^~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[4]: *** [/kisskb/src/scripts/Makefile.build:229: lib/iomap.o] Error 1 make[4]: *** Waiting for unfinished jobs.... make[3]: *** [/kisskb/src/scripts/Makefile.build:478: lib] Error 2 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [/kisskb/src/Makefile:1936: .] Error 2 make[1]: *** [/kisskb/src/Makefile:224: __sub-make] Error 2 make: *** [Makefile:224: __sub-make] Error 2 Command 'make -s -j 32 ARCH=um O=/kisskb/build/linus_allyesconfig_um-x86_64-gcc12 CROSS_COMPILE=/opt/cross/kisskb/x86-64--glibc--bleeding-edge-2022.08-1/bin/x86_64-linux- SUBARCH=x86_64 ' returned non-zero exit status 2. # rm -rf /kisskb/build/linus_allyesconfig_um-x86_64-gcc12 # Build took: 0:17:44.999365