Subject: Re: [PATCH] vmxnet3: fix building without CONFIG_PCI_MSI

From: Sergei Shtylyov <[email-masked]>
Date: Fri, 14 Mar 2014 22:33:02 +0300

Hello.

On 03/13/2014 12:44 PM, Arnd Bergmann wrote:

> Since commit d25f06ea466e "vmxnet3: fix netpoll race condition",
> the vmxnet3 driver fails to build when CONFIG_PCI_MSI is disabled,
> because it unconditionally references the vmxnet3_msix_rx()
> function.

> To fix this, use the same #ifdef in the caller that exists around
> the function definition.

> Signed-off-by: Arnd Bergmann <[email-masked]>
> Cc: Neil Horman <[email-masked]>
> Cc: Shreyas Bhatewara <[email-masked]>
> Cc: "VMware, Inc." <[email-masked]>
> Cc: "David S. Miller" <[email-masked]>
> Cc: [email-masked]
> ---
> Found this during randconfig testing on ARM. Most of the time when
> I report network driver problems, they get fixed in the netdev tree
> before I even find them, but since this is for a patch marked "stable",
> I made a proper patch anyway.

> Please ignore if this is already a known problem, otherwise make sure
> the original patch doesn't get backported without addressing this
> issue first.

> diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
> index cbd898f..28965ad 100644
> --- a/drivers/net/vmxnet3/vmxnet3_drv.c
> +++ b/drivers/net/vmxnet3/vmxnet3_drv.c
> @@ -1761,13 +1761,16 @@ static void
>   vmxnet3_netpoll(struct net_device *netdev)
>   {
>   	struct vmxnet3_adapter *adapter = netdev_priv(netdev);
> -	int i;
>
>   	switch (adapter->intr.type) {
> -	case VMXNET3_IT_MSIX:
> +#ifdef CONFIG_PCI_MSI
> +	case VMXNET3_IT_MSIX: {
> +		int i;

    This file's coding style assumes empty line after declaration, so does the 
networking coding style in general.

>   		for (i = 0; i < adapter->num_rx_queues; i++)
>   			vmxnet3_msix_rx(0, &adapter->rx_queue[i]);
>   		break;
> +	}
> +#endif
>   	case VMXNET3_IT_MSI:
>   	default:
>   		vmxnet3_intr(0, adapter->netdev);

WBR, Sergei