Re: [PATCH] fix platform_rename_gsi related ia32 build breakage

From: Len Brown
Date: Thu Nov 11 2004 - 18:37:57 EST


On Thu, 2004-11-11 at 17:30, Linus Torvalds wrote:
>
> On Thu, 11 Nov 2004, Len Brown wrote:
> >
> > I used a function pointer here because the same kernel binary must
> be
> > able to run on an ES7000 or a non-ES7000, so the compile-time inline
> > idiom doesn't work.
>
> Sure it does. Do something like this in a header file
>
> static inline int translate_irq_number(...)
> {
> #ifdef CONFIG_ACPI_BOOT
> return fn_ptr_xxx();
> #else
> return irq;
> #endif
> }

sure, we could add a wrapper for the wrapper,
but the ifdefs are already gone without doing this --
platform_rename_gsi is present with or without ACPI.

I suppose I could shrink the kernel by 4-bytes by compiling out the
function pointer when IO_APIC is not defined. I'll be happy to optimize
for that case if you think it justifies the code; though if I were
optimizing for that case, this probably isn't where I'd start.

> which means that yes, it uses the function pointer when it is
> meaningful, but if there is no point, the code just goes away.
>
> > If you read this far and have suggestions for a more descriptive
> name than platform_rename_gsi(), just let me know.
>
> At _least_ write out what the hell "gsi" is.
>
> TLA's are bad. "gsi" apparently isn't the Geological Survey of
> Ireland, but that's all I can tell from google.

The _gsi in platform_rename_gsi was consistent with the surrounding use
in the ACPI case. I decided to re-use the same funtion for the MPS case
for simplicity, even though io_apic.c uses _irq. If you like, I can add
a synonym using an inline for _irq, but I thought we were moving away
from using _irq, not towards it.

GSI = Global System Interrupt
IRQ = overused so much it means nothing at all

While this fact may not win you over as a fan, GSI is actually
consistent with the language in the ACPI spec. I don't know if that is
where Bjorn came up with the name, but I do think it was a positive
change. The reason is that "global" actually means something -- and it
still has the same semantics no matter if your machine passes around cpu
interrupt vectors or if it passes around pin numbers.

cheers,
-Len


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/