Subject: Re: randconfig build error with next-20140515, in drivers/net/ethernet/mellanox/mlx4/eq.c

From: Or Gerlitz <[email-masked]>
Date: Thu, 15 May 2014 17:10:44 +0300

On 15/05/2014 16:48, Jim Davis wrote:
> Building with the attached random configuration file,
>
> drivers/net/ethernet/mellanox/mlx4/eq.c:58:29: error: field ‘notify’
> has incomplete type
>    struct irq_affinity_notify notify;
>                               ^
> In file included from include/linux/interrupt.h:5:0,
>                   from drivers/net/ethernet/mellanox/mlx4/eq.c:34:
> drivers/net/ethernet/mellanox/mlx4/eq.c: In function ‘mlx4_irq_notifier_notify’:
> include/linux/kernel.h:834:48: warning: initialization from
> incompatible pointer type [enabled by default]
>    const typeof( ((type *)0)->member ) *__mptr = (ptr); \
>                                                  ^
> drivers/net/ethernet/mellanox/mlx4/eq.c:1094:30: note: in expansion of
> macro ‘container_of’
>    struct mlx4_irq_notify *n = container_of(notify,
>                                ^
> include/linux/kernel.h:834:48: warning: (near initialization for ‘n’)
> [enabled by default]
>    const typeof( ((type *)0)->member ) *__mptr = (ptr); \
>                                                  ^
> drivers/net/ethernet/mellanox/mlx4/eq.c:1094:30: note: in expansion of
> macro ‘container_of’
>    struct mlx4_irq_notify *n = container_of(notify,
>                                ^
> drivers/net/ethernet/mellanox/mlx4/eq.c:1104:24: error: dereferencing
> pointer to incomplete type
>     if (cq->irq == notify->irq)
>                          ^
> In file included from include/linux/interrupt.h:5:0,
>                   from drivers/net/ethernet/mellanox/mlx4/eq.c:34:
> drivers/net/ethernet/mellanox/mlx4/eq.c: In function
> ‘mlx4_release_irq_notifier’:
> include/linux/kernel.h:834:48: warning: initialization from
> incompatible pointer type [enabled by default]
>    const typeof( ((type *)0)->member ) *__mptr = (ptr); \
>                                                  ^
> drivers/net/ethernet/mellanox/mlx4/eq.c:1111:30: note: in expansion of
> macro ‘container_of’
>    struct mlx4_irq_notify *n = container_of(ref, struct mlx4_irq_notify,
>                                ^
> include/linux/kernel.h:834:48: warning: (near initialization for ‘n’)
> [enabled by default]
>    const typeof( ((type *)0)->member ) *__mptr = (ptr); \
>                                                  ^
> drivers/net/ethernet/mellanox/mlx4/eq.c:1111:30: note: in expansion of
> macro ‘container_of’
>    struct mlx4_irq_notify *n = container_of(ref, struct mlx4_irq_notify,
>                                ^
> drivers/net/ethernet/mellanox/mlx4/eq.c: In function ‘mlx4_assign_irq_notifier’:
> drivers/net/ethernet/mellanox/mlx4/eq.c:1133:2: error: implicit
> declaration of function ‘irq_set_affinity_notifier’
> [-Werror=implicit-function-declaration]
>    err = irq_set_affinity_notifier(irq, &irq_notifier->notify);
>    ^
> cc1: some warnings being treated as errors

I can see the problem, irq_set_affinity_notifier isn't defined when CONFIG_SMP isn't set, I am copying here the developer and he would work on a fix.

Or.