Re: [2.6 patch] acpi/battery.c: make 2 functions static

Sam Ravnborg
2008-03-03T09:30:49Z

On Mon, Mar 03, 2008 at 10:17:14AM +0100, Ingo Molnar wrote:
>
> * Adrian Bunk <bunk@kernel.org> wrote:
>
> > On Mon, Mar 03, 2008 at 09:57:20AM +0100, Ingo Molnar wrote:
> > >
> > > * Adrian Bunk <bunk@kernel.org> wrote:
> > >
> > > > On Sat, Mar 01, 2008 at 09:26:41PM +0300, Alexey Starikovskiy wrote:
> > > > > May I keep them inline?
> > > >
> > > > The problem with such manual inlines is that we force gcc to always
> > > > inline them - and history has shown that functions grow without the
> > > > "inline" being removed.
> > >
> > > what do you mean by "we force gcc to always inline them"?
> >
> > #define inline inline __attribute__((always_inline))
> >
> > > gcc is free to decide whether to inline or to not inline.
> >
> > Not with __attribute__((always_inline)).
>
> but that wasnt used in the code you patched:
>
> -inline int acpi_battery_present(struct acpi_battery *battery)
> +static int acpi_battery_present(struct acpi_battery *battery)

>From compiler-gcc.h:

#define inline inline __attribute__((always_inline))

So unless I am missing something obvious then each time we
say inline to a function we require gcc to inline the function.

It is my impression that today we only say inline if really needed
and otherwise let gcc decide. So in almost all cases inlise should
just be nuked?

Sam