Re: linux-next: manual merge of the arm64 tree with the arm tree

From: Stephen Rothwell
Date: Mon Jun 28 2021 - 22:28:24 EST


Hi all,

On Tue, 15 Jun 2021 09:20:25 +1000 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> Hi all,
>
> Today's linux-next merge of the arm64 tree got a conflict in:
>
> arch/arm64/kernel/process.c
>
> between commit:
>
> ab6cef1d1447 ("ARM: 9095/1: ARM64: Remove arm_pm_restart()")
>
> from the arm tree and commit:
>
> b5df5b8307b1 ("arm64: idle: don't instrument idle code with KCOV")
>
> from the arm64 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/arm64/kernel/process.c
> index 5591725cebcc,161e8df31a0d..000000000000
> --- a/arch/arm64/kernel/process.c
> +++ b/arch/arm64/kernel/process.c
> @@@ -72,63 -71,8 +71,6 @@@ EXPORT_SYMBOL(__stack_chk_guard)
> void (*pm_power_off)(void);
> EXPORT_SYMBOL_GPL(pm_power_off);
>
> - static void noinstr __cpu_do_idle(void)
> - {
> - dsb(sy);
> - wfi();
> - }
> -
> - static void noinstr __cpu_do_idle_irqprio(void)
> - {
> - unsigned long pmr;
> - unsigned long daif_bits;
> -
> - daif_bits = read_sysreg(daif);
> - write_sysreg(daif_bits | PSR_I_BIT | PSR_F_BIT, daif);
> -
> - /*
> - * Unmask PMR before going idle to make sure interrupts can
> - * be raised.
> - */
> - pmr = gic_read_pmr();
> - gic_write_pmr(GIC_PRIO_IRQON | GIC_PRIO_PSR_I_SET);
> -
> - __cpu_do_idle();
> -
> - gic_write_pmr(pmr);
> - write_sysreg(daif_bits, daif);
> - }
> -
> - /*
> - * cpu_do_idle()
> - *
> - * Idle the processor (wait for interrupt).
> - *
> - * If the CPU supports priority masking we must do additional work to
> - * ensure that interrupts are not masked at the PMR (because the core will
> - * not wake up if we block the wake up signal in the interrupt controller).
> - */
> - void noinstr cpu_do_idle(void)
> - {
> - if (system_uses_irq_prio_masking())
> - __cpu_do_idle_irqprio();
> - else
> - __cpu_do_idle();
> - }
> -
> - /*
> - * This is our default idle handler.
> - */
> - void noinstr arch_cpu_idle(void)
> - {
> - /*
> - * This should do all the clock switching and wait for interrupt
> - * tricks
> - */
> - cpu_do_idle();
> - raw_local_irq_enable();
> - }
> -void (*arm_pm_restart)(enum reboot_mode reboot_mode, const char *cmd);
> --
> #ifdef CONFIG_HOTPLUG_CPU
> void arch_cpu_idle_dead(void)
> {

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

--
Cheers,
Stephen Rothwell

Attachment: pgpb6H8OjrzgW.pgp
Description: OpenPGP digital signature