# 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-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux-ld --version # < git log --format=%s --max-count=1 341d041daae52cd5f014f68c1c7d9039db818fca # make -s -j 160 ARCH=sparc64 O=/kisskb/build/linus_allmodconfig_sparc64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux- allmodconfig # < make -s -j 160 ARCH=sparc64 O=/kisskb/build/linus_allmodconfig_sparc64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux- help # make -s -j 160 ARCH=sparc64 O=/kisskb/build/linus_allmodconfig_sparc64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux- olddefconfig # make -s -j 160 ARCH=sparc64 O=/kisskb/build/linus_allmodconfig_sparc64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux- :1519:2: warning: #warning syscall clone3 not implemented [-Wcpp] /kisskb/src/arch/sparc/vdso/vclock_gettime.c:254:1: error: no previous prototype for '__vdso_clock_gettime' [-Werror=missing-prototypes] 254 | __vdso_clock_gettime(clockid_t clock, struct __kernel_old_timespec *ts) | ^~~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/sparc/vdso/vclock_gettime.c:282:1: error: no previous prototype for '__vdso_clock_gettime_stick' [-Werror=missing-prototypes] 282 | __vdso_clock_gettime_stick(clockid_t clock, struct __kernel_old_timespec *ts) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/sparc/vdso/vclock_gettime.c:307:1: error: no previous prototype for '__vdso_gettimeofday' [-Werror=missing-prototypes] 307 | __vdso_gettimeofday(struct __kernel_old_timeval *tv, struct timezone *tz) | ^~~~~~~~~~~~~~~~~~~ /kisskb/src/arch/sparc/vdso/vclock_gettime.c:343:1: error: no previous prototype for '__vdso_gettimeofday_stick' [-Werror=missing-prototypes] 343 | __vdso_gettimeofday_stick(struct __kernel_old_timeval *tv, struct timezone *tz) | ^~~~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[5]: *** [/kisskb/src/scripts/Makefile.build:229: arch/sparc/vdso/vclock_gettime.o] Error 1 make[4]: *** [/kisskb/src/scripts/Makefile.build:478: arch/sparc/vdso] Error 2 make[4]: *** Waiting for unfinished jobs.... /kisskb/src/kernel/fork.c: In function '__do_sys_clone3': /kisskb/src/kernel/fork.c:3078:2: error: #warning clone3() entry point is missing, please fix [-Werror=cpp] 3078 | #warning clone3() entry point is missing, please fix | ^~~~~~~ cc1: all warnings being treated as errors make[4]: *** [/kisskb/src/scripts/Makefile.build:229: kernel/fork.o] Error 1 make[4]: *** Waiting for unfinished jobs.... make[3]: *** [/kisskb/src/scripts/Makefile.build:478: arch/sparc] Error 2 make[3]: *** Waiting for unfinished jobs.... make[3]: *** [/kisskb/src/scripts/Makefile.build:478: kernel] Error 2 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 160 ARCH=sparc64 O=/kisskb/build/linus_allmodconfig_sparc64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/sparc64-linux/bin/sparc64-linux- ' returned non-zero exit status 2. # rm -rf /kisskb/build/linus_allmodconfig_sparc64-gcc13 # Build took: 0:12:05.901459