On Mon, 2006-09-25 at 09:35 +0200, Jan Kiszka wrote:
This one won't work. We need to forcibly re-enable the hw IRQs upon root
unstall requests, regardless of the fact that interrupts are pending in
the log; some code rely on this. E.g. Adeos/ppc over 2.4 would remain
stuck in the delay calibration routine, but there are other more tricky
places where this would bite too.
> @@ -166,6 +158,7 @@ void __ipipe_unstall_root(void)
> {
> ipipe_declare_cpuid;
>
> +#ifdef CONFIG_SMP
> local_irq_disable_hw();
>
> ipipe_load_cpuid();
> @@ -176,6 +169,15 @@ void __ipipe_unstall_root(void)
> __ipipe_sync_pipeline(IPIPE_IRQMASK_ANY);
>
> local_irq_enable_hw();
> +#else /* !CONFIG_SMP */
> + __clear_bit(IPIPE_STALL_FLAG,
> &ipipe_root_domain->cpudata[cpuid].status);
> +
> + if
> (unlikely(ipipe_root_domain->cpudata[cpuid].irq_pending_hi != 0)) {
> + local_irq_disable_hw();
> + __ipipe_sync_pipeline(IPIPE_IRQMASK_ANY);
> + local_irq_enable_hw();
> + }
> +#endif /* CONFIG_SMP */
> }
>
--
Philippe.
_______________________________________________
Adeos-main mailing list
[email protected]
https://mail.gna.org/listinfo/adeos-main