Hi Linus,
there is a merge conflict this time between the IOMMU tree and FPU
changes which came from the tip tree. My conflict resolution is
attached. With that in mind:
The following changes since commit 8bb7eca972ad531c9b149c0a51ab43a417385813:
Linux 5.15 (2021-10-31 13:53:10 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git tags/iommu-updates-v5.16
for you to fetch changes up to 52d96919d6a846aace5841cd23055927c6e6ec2c:
Merge branches 'apple/dart', 'arm/mediatek', 'arm/renesas', 'arm/smmu', 'arm/tegra', 'iommu/fixes', 'x86/amd', 'x86/vt-d' and 'core' into next (2021-10-31 22:26:53 +0100)
----------------------------------------------------------------
IOMMU Updates for Linux v5.16:
Including:
- Intel IOMMU Updates fro Lu Baolu:
- Dump DMAR translation structure when DMA fault occurs
- An optimization in the page table manipulation code
- Use second level for GPA->HPA translation
- Various cleanups
- Arm SMMU Updates from Will
- Minor optimisations to SMMUv3 command creation and submission
- Numerous new compatible string for Qualcomm SMMUv2 implementations
- Fixes for the SWIOTLB based implemenation of dma-iommu code for
untrusted devices
- Add support for r8a779a0 to the Renesas IOMMU driver and DT matching
code for r8a77980
- A couple of cleanups and fixes for the Apple DART IOMMU driver
- Make use of generic report_iommu_fault() interface in the AMD IOMMU
driver
- Various smaller fixes and cleanups
----------------------------------------------------------------
Arnd Bergmann (1):
iommu/mediatek: Fix out-of-range warning with clang
Christophe JAILLET (1):
iommu/tegra-smmu: Use devm_bitmap_zalloc when applicable
David Stevens (7):
iommu/dma: Fix sync_sg with swiotlb
iommu/dma: Fix arch_sync_dma for map
iommu/dma: Skip extra sync during unmap w/swiotlb
iommu/dma: Fold _swiotlb helpers into callers
iommu/dma: Check CONFIG_SWIOTLB more broadly
swiotlb: Support aligned swiotlb buffers
iommu/dma: Account for min_align_mask w/swiotlb
Fenghua Yu (1):
iommu/vt-d: Clean up unused PASID updating functions
Gustavo A. R. Silva (1):
iommu/dma: Use kvcalloc() instead of kvzalloc()
Joerg Roedel (2):
Merge tag 'arm-smmu-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into arm/smmu
Merge branches 'apple/dart', 'arm/mediatek', 'arm/renesas', 'arm/smmu', 'arm/tegra', 'iommu/fixes', 'x86/amd', 'x86/vt-d' and 'core' into next
Konrad Dybcio (2):
dt-bindings: arm-smmu: Add compatible for SM6350 SoC
iommu/arm-smmu-qcom: Add SM6350 SMMU compatible
Kyung Min Park (1):
iommu/vt-d: Dump DMAR translation structure when DMA fault occurs
Lennert Buytenhek (1):
iommu/amd: Use report_iommu_fault()
Logan Gunthorpe (1):
iommu/dma: Fix incorrect error return on iommu deferred attach
Loic Poulain (2):
dt-bindings: arm-smmu: Add compatible for QCM2290 SoC
iommu: arm-smmu-qcom: Add compatible for QCM2290
Longpeng(Mike) (2):
iommu/vt-d: Convert the return type of first_pte_in_page to bool
iommu/vt-d: Avoid duplicate removing in __domain_mapping()
Lu Baolu (4):
iommu/vt-d: Remove duplicate identity domain flag
iommu/vt-d: Check FL and SL capability sanity in scalable mode
iommu/vt-d: Use second level for GPA->HPA translation
iommu/vt-d: Delete dev_has_feat callback
Nikita Yushchenko (1):
iommu/ipmmu-vmsa: Hook up r8a77980 DT matching code
Robin Murphy (2):
iommu/dart: Clean up IOVA cookie crumbs
iommu/dma: Unexport IOVA cookie management
Sibi Sankar (1):
iommu/arm-smmu-qcom: Request direct mapping for modem device
Sven Peter (1):
iommu/dart: Initialize DART_STREAMS_ENABLE
Tvrtko Ursulin (1):
iommu/vt-d: Do not falsely log intel_iommu is unsupported kernel option
Wan Jiabing (1):
iommu/dart: Use kmemdup instead of kzalloc and memcpy
Yoshihiro Shimoda (2):
dt-bindings: iommu: renesas,ipmmu-vmsa: add r8a779a0 support
iommu/ipmmu-vmsa: Add support for r8a779a0
Zhen Lei (2):
iommu/arm-smmu-v3: Stop pre-zeroing batch commands in arm_smmu_atc_inv_master()
iommu/arm-smmu-v3: Properly handle the return value of arm_smmu_cmdq_build_cmd()
.../devicetree/bindings/iommu/arm,smmu.yaml | 2 +
.../bindings/iommu/renesas,ipmmu-vmsa.yaml | 1 +
arch/x86/include/asm/fpu/api.h | 2 -
drivers/iommu/amd/amd_iommu_types.h | 2 +
drivers/iommu/amd/iommu.c | 21 ++
drivers/iommu/apple-dart.c | 10 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 21 +-
drivers/iommu/arm/arm-smmu/arm-smmu-qcom.c | 3 +
drivers/iommu/dma-iommu.c | 200 +++++++++----------
drivers/iommu/intel/Kconfig | 4 +
drivers/iommu/intel/cap_audit.c | 13 ++
drivers/iommu/intel/cap_audit.h | 1 +
drivers/iommu/intel/dmar.c | 10 +-
drivers/iommu/intel/iommu.c | 213 ++++++++++++++-------
drivers/iommu/intel/svm.c | 24 +--
drivers/iommu/iommu.c | 3 +-
drivers/iommu/ipmmu-vmsa.c | 32 +++-
drivers/iommu/mtk_iommu.c | 4 +-
drivers/iommu/tegra-smmu.c | 5 +-
drivers/xen/swiotlb-xen.c | 2 +-
include/linux/dmar.h | 8 +
include/linux/intel-iommu.h | 13 +-
include/linux/swiotlb.h | 3 +-
kernel/dma/swiotlb.c | 13 +-
24 files changed, 367 insertions(+), 243 deletions(-)
Please pull.
Thanks,
Joerg
diff --cc arch/x86/include/asm/fpu/api.h
index b7267b9e452f,ca4d0dee1ecd..6053674f9132
--- a/arch/x86/include/asm/fpu/api.h
+++ b/arch/x86/include/asm/fpu/api.h
@@@ -108,58 -106,4 +108,56 @@@ extern int cpu_has_xfeatures(u64 xfeatu
*/
#define PASID_DISABLED 0
- static inline void update_pasid(void) { }
-
+/* Trap handling */
+extern int fpu__exception_code(struct fpu *fpu, int trap_nr);
+extern void fpu_sync_fpstate(struct fpu *fpu);
+extern void fpu_reset_from_exception_fixup(void);
+
+/* Boot, hotplug and resume */
+extern void fpu__init_cpu(void);
+extern void fpu__init_system(struct cpuinfo_x86 *c);
+extern void fpu__init_check_bugs(void);
+extern void fpu__resume_cpu(void);
+
+#ifdef CONFIG_MATH_EMULATION
+extern void fpstate_init_soft(struct swregs_state *soft);
+#else
+static inline void fpstate_init_soft(struct swregs_state *soft) {}
+#endif
+
+/* State tracking */
+DECLARE_PER_CPU(struct fpu *, fpu_fpregs_owner_ctx);
+
+/* Process cleanup */
+#ifdef CONFIG_X86_64
+extern void fpstate_free(struct fpu *fpu);
+#else
+static inline void fpstate_free(struct fpu *fpu) { }
+#endif
+
+/* fpstate-related functions which are exported to KVM */
+extern void fpstate_clear_xstate_component(struct fpstate *fps, unsigned int xfeature);
+
+/* KVM specific functions */
+extern bool fpu_alloc_guest_fpstate(struct fpu_guest *gfpu);
+extern void fpu_free_guest_fpstate(struct fpu_guest *gfpu);
+extern int fpu_swap_kvm_fpstate(struct fpu_guest *gfpu, bool enter_guest);
+
+extern void fpu_copy_guest_fpstate_to_uabi(struct fpu_guest *gfpu, void *buf, unsigned int size, u32 pkru);
+extern int fpu_copy_uabi_to_guest_fpstate(struct fpu_guest *gfpu, const void *buf, u64 xcr0, u32 *vpkru);
+
+static inline void fpstate_set_confidential(struct fpu_guest *gfpu)
+{
+ gfpu->fpstate->is_confidential = true;
+}
+
+static inline bool fpstate_is_confidential(struct fpu_guest *gfpu)
+{
+ return gfpu->fpstate->is_confidential;
+}
+
+/* prctl */
+struct task_struct;
+extern long fpu_xstate_prctl(struct task_struct *tsk, int option, unsigned long arg2);
+
#endif /* _ASM_X86_FPU_API_H */
On Thu, Nov 4, 2021 at 7:16 AM Joerg Roedel <[email protected]> wrote:
>
> there is a merge conflict this time between the IOMMU tree and FPU
> changes which came from the tip tree. My conflict resolution is
> attached.
The conflict is trivial, no worries. But as I was resolving it, I
looked at that PASID_DISABLED define..
That too seems to be stale and unused since commit 9bfecd058339
("x86/cpufeatures: Force disable X86_FEATURE_ENQCMD and remove
update_pasid()")
I left it alone because I didn't want to do any extra development in
the merge commit itself, but it looks to me like there's some room for
more cleanips. No?
Linus
The pull request you sent on Thu, 4 Nov 2021 15:16:22 +0100:
> git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git tags/iommu-updates-v5.16
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/7e113d01f5f9fe6ad018d8289239d0bbb41311d7
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
On 2021/11/5 15:35, Joerg Roedel wrote:
> On Thu, Nov 04, 2021 at 11:10:53AM -0700, Linus Torvalds wrote:
>> That too seems to be stale and unused since commit 9bfecd058339
>> ("x86/cpufeatures: Force disable X86_FEATURE_ENQCMD and remove
>> update_pasid()")
>>
>> I left it alone because I didn't want to do any extra development in
>> the merge commit itself, but it looks to me like there's some room for
>> more cleanips. No?
>
> Yes, looks like this define is unused now. I talk to Baolu whether this
> can be cleaned up too, Baolu?
Yes.
PASID_DISABLED is unused after
commit 9bfecd058339 ("x86/cpufeatures: Force disable X86_FEATURE_ENQCMD
and remove update_pasid()").
and
commit 00ecd5401349a ("iommu/vt-d: Clean up unused PASID updating
functions")
Best regards,
baolu
On Thu, Nov 04, 2021 at 11:10:53AM -0700, Linus Torvalds wrote:
> That too seems to be stale and unused since commit 9bfecd058339
> ("x86/cpufeatures: Force disable X86_FEATURE_ENQCMD and remove
> update_pasid()")
>
> I left it alone because I didn't want to do any extra development in
> the merge commit itself, but it looks to me like there's some room for
> more cleanips. No?
Yes, looks like this define is unused now. I talk to Baolu whether this
can be cleaned up too, Baolu?
Thanks,
Joerg