2013-08-07 07:45:20

by Lothar Waßmann

[permalink] [raw]
Subject: [BUG linux-next] watchdog: build breakage for non-SMP builds

Hi,

commit 0ce6966b "watchdog: update watchdog_tresh properly" breaks
build on non-SMP systems (more specifically: on systems where
CONFIG_USE_GENERIC_SMP_HELPERS is not set):
linux-next/kernel/watchdog.c: In function 'update_timers':
linux-next/kernel/watchdog.c:522:2: error: implicit declaration of function '__smp_call_function_single' [-Werror=implicit-function-declaration]

I guess the offending code should be guarded by an
'#ifdef CONFIG_USE_GENERIC_SMP_HELPERS'
like in kernel/softirq.c:
#ifdef CONFIG_USE_GENERIC_SMP_HELPERS
[...]
static int __try_remote_softirq(struct call_single_data *cp, int cpu, int softirq)
{
if (cpu_online(cpu)) {
cp->func = remote_softirq_receive;
cp->info = &softirq;
cp->flags = 0;

__smp_call_function_single(cpu, cp, 0);
return 0;
}
return 1;
}
#else /* CONFIG_USE_GENERIC_SMP_HELPERS */
static int __try_remote_softirq(struct call_single_data *cp, int cpu, int softirq)
{
return 1;
}
#endif


Lothar Waßmann
--
___________________________________________________________

Ka-Ro electronics GmbH | Pascalstraße 22 | D - 52076 Aachen
Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10
Geschäftsführer: Matthias Kaussen
Handelsregistereintrag: Amtsgericht Aachen, HRB 4996

http://www.karo-electronics.de | [email protected]
___________________________________________________________


2013-08-07 08:47:24

by Michal Hocko

[permalink] [raw]
Subject: Re: [BUG linux-next] watchdog: build breakage for non-SMP builds

On Wed 07-08-13 09:44:42, Lothar Wa?mann wrote:
> Hi,
>
> commit 0ce6966b "watchdog: update watchdog_tresh properly" breaks
> build on non-SMP systems (more specifically: on systems where
> CONFIG_USE_GENERIC_SMP_HELPERS is not set):
> linux-next/kernel/watchdog.c: In function 'update_timers':
> linux-next/kernel/watchdog.c:522:2: error: implicit declaration of function '__smp_call_function_single' [-Werror=implicit-function-declaration]

The fix is already in the Andrew's tree so it should show up in
linux-next sometimes soon.

Sorry about the hassles.

> I guess the offending code should be guarded by an
> '#ifdef CONFIG_USE_GENERIC_SMP_HELPERS'
> like in kernel/softirq.c:
> #ifdef CONFIG_USE_GENERIC_SMP_HELPERS
> [...]
> static int __try_remote_softirq(struct call_single_data *cp, int cpu, int softirq)
> {
> if (cpu_online(cpu)) {
> cp->func = remote_softirq_receive;
> cp->info = &softirq;
> cp->flags = 0;
>
> __smp_call_function_single(cpu, cp, 0);
> return 0;
> }
> return 1;
> }
> #else /* CONFIG_USE_GENERIC_SMP_HELPERS */
> static int __try_remote_softirq(struct call_single_data *cp, int cpu, int softirq)
> {
> return 1;
> }
> #endif
>
>
> Lothar Wa?mann
> --
> ___________________________________________________________
>
> Ka-Ro electronics GmbH | Pascalstra?e 22 | D - 52076 Aachen
> Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10
> Gesch?ftsf?hrer: Matthias Kaussen
> Handelsregistereintrag: Amtsgericht Aachen, HRB 4996
>
> http://www.karo-electronics.de | [email protected]
> ___________________________________________________________

--
Michal Hocko
SUSE Labs