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

From: Stephen Rothwell <[email-masked]>
Date: Tue, 2 Nov 2021 13:57:19 +1100

Hi all,

On Thu, 21 Oct 2021 12:35:27 +1100 Stephen Rothwell <[email-masked]> wrote:
> 
> 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.
> 
> 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 */

This is now a conflict between Linus' tree and the iommu tree.

-- 
Cheers,
Stephen Rothwell