2005-04-26 19:58:44

by Mikael Pettersson

[permalink] [raw]
Subject: [PATCH 2.4.31-pre1] x86_64 breakage on UP_IOAPIC

The

o x86_64: Resend lost APIC IRQs on Uniprocessor too

change in 2.4.31-pre1 causes linkage errors: on UP_IOAPIC systems it
creates references to send_IPI_self() which is only defined on SMP.

The patch below reverts this change.

Alternatively, x86_64 could implement a send_IPI_self() fallback for !SMP,
just like i386 does.

/Mikael

--- linux-2.4.31-pre1/include/asm-x86_64/hw_irq.h.~1~ 2005-04-26 20:57:43.000000000 +0200
+++ linux-2.4.31-pre1/include/asm-x86_64/hw_irq.h 2005-04-26 21:09:31.000000000 +0200
@@ -156,7 +156,7 @@ static inline void x86_do_profile (unsig
atomic_inc((atomic_t *)&prof_buffer[eip]);
}

-#ifdef CONFIG_X86_IO_APIC
+#ifdef CONFIG_SMP /*more of this file should probably be ifdefed SMP */
static inline void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i) {
if (IO_APIC_IRQ(i))
send_IPI_self(IO_APIC_VECTOR(i));


2005-04-26 22:16:10

by Jesper Juhl

[permalink] [raw]
Subject: Re: [PATCH 2.4.31-pre1] x86_64 breakage on UP_IOAPIC

Tiny, trivial, pedantic whitespace nit :

On Tue, 26 Apr 2005, Mikael Pettersson wrote:

> The
>
> o x86_64: Resend lost APIC IRQs on Uniprocessor too
>
> change in 2.4.31-pre1 causes linkage errors: on UP_IOAPIC systems it
> creates references to send_IPI_self() which is only defined on SMP.
>
> The patch below reverts this change.
>
> Alternatively, x86_64 could implement a send_IPI_self() fallback for !SMP,
> just like i386 does.
>
> /Mikael
>
> --- linux-2.4.31-pre1/include/asm-x86_64/hw_irq.h.~1~ 2005-04-26 20:57:43.000000000 +0200
> +++ linux-2.4.31-pre1/include/asm-x86_64/hw_irq.h 2005-04-26 21:09:31.000000000 +0200
> @@ -156,7 +156,7 @@ static inline void x86_do_profile (unsig
> atomic_inc((atomic_t *)&prof_buffer[eip]);
> }
>
> -#ifdef CONFIG_X86_IO_APIC
> +#ifdef CONFIG_SMP /*more of this file should probably be ifdefed SMP */
^^^
Space here?


--
Jesper

2005-04-26 22:20:39

by Mikael Pettersson

[permalink] [raw]
Subject: Re: [PATCH 2.4.31-pre1] x86_64 breakage on UP_IOAPIC

Jesper Juhl writes:
> Tiny, trivial, pedantic whitespace nit :
>
> On Tue, 26 Apr 2005, Mikael Pettersson wrote:
>
> > The
> >
> > o x86_64: Resend lost APIC IRQs on Uniprocessor too
> >
> > change in 2.4.31-pre1 causes linkage errors: on UP_IOAPIC systems it
> > creates references to send_IPI_self() which is only defined on SMP.
> >
> > The patch below reverts this change.
> >
> > Alternatively, x86_64 could implement a send_IPI_self() fallback for !SMP,
> > just like i386 does.
> >
> > /Mikael
> >
> > --- linux-2.4.31-pre1/include/asm-x86_64/hw_irq.h.~1~ 2005-04-26 20:57:43.000000000 +0200
> > +++ linux-2.4.31-pre1/include/asm-x86_64/hw_irq.h 2005-04-26 21:09:31.000000000 +0200
> > @@ -156,7 +156,7 @@ static inline void x86_do_profile (unsig
> > atomic_inc((atomic_t *)&prof_buffer[eip]);
> > }
> >
> > -#ifdef CONFIG_X86_IO_APIC
> > +#ifdef CONFIG_SMP /*more of this file should probably be ifdefed SMP */
> ^^^
> Space here?

I did a cut-n-paste from the 2.4.30 original.

/Mikael