# 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/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 341d041daae52cd5f014f68c1c7d9039db818fca # make -s -j 160 ARCH=powerpc O=/kisskb/build/linus_skiroot_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- skiroot_defconfig # < make -s -j 160 ARCH=powerpc O=/kisskb/build/linus_skiroot_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 160 ARCH=powerpc O=/kisskb/build/linus_skiroot_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 160 ARCH=powerpc O=/kisskb/build/linus_skiroot_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- Completed OK # rm -rf /kisskb/build/linus_skiroot_defconfig_powerpc-gcc5 # Build took: 0:01:48.911010