Re: linux-next: manual merge of the tip tree with the iommu tree

From: Borislav Petkov
Date: Thu Oct 21 2021 - 11:29:18 EST


On Thu, Oct 21, 2021 at 12:35:27PM +1100, Stephen Rothwell wrote:
> Hi all,
>
> Today's linux-next merge of the tip tree got a conflict in:
>
> arch/x86/include/asm/fpu/api.h
>
> between commit:
>
> 00ecd5401349 ("iommu/vt-d: Clean up unused PASID updating functions")
>
> from the iommu tree and commits:
>
> a0ff0611c2fb ("x86/fpu: Move KVMs FPU swapping to FPU core")
> ea4d6938d4c0 ("x86/fpu: Replace KVMs home brewed FPU copy from user")
> 90489f1dee8b ("x86/fpu: Move fpstate functions to api.h")
> 0ae67cc34f76 ("x86/fpu: Remove internal.h dependency from fpu/signal.h")
> 6415bb809263 ("x86/fpu: Mop up the internal.h leftovers")
>
> from the tip tree.
>
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging. You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
>
> --
> Cheers,
> Stephen Rothwell
>
> diff --cc arch/x86/include/asm/fpu/api.h
> index ca4d0dee1ecd,9263d708dff9..000000000000
> --- a/arch/x86/include/asm/fpu/api.h
> +++ b/arch/x86/include/asm/fpu/api.h
> @@@ -106,4 -108,34 +108,32 @@@ 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);
> +
> + /* fpstate-related functions which are exported to KVM */
> + extern void fpu_init_fpstate_user(struct fpu *fpu);
> +
> + /* KVM specific functions */
> + extern void fpu_swap_kvm_fpu(struct fpu *save, struct fpu *rstor, u64 restore_mask);
> +
> + extern int fpu_copy_kvm_uabi_to_fpstate(struct fpu *fpu, const void *buf, u64 xcr0, u32 *pkru);
> +
> #endif /* _ASM_X86_FPU_API_H */

LGTM, thx!

--
Regards/Gruss,
Boris.

SUSE Software Solutions Germany GmbH, GF: Felix Imendörffer, HRB 36809, AG Nürnberg