Subject: Re: [PATCH] pci: Use designated initialization in PCI_VDEVICE

From: Sergei Shtylyov <[email-masked]>
Date: Tue, 01 Apr 2014 02:08:06 +0400

Hello.

On 04/01/2014 01:58 AM, Jeff Kirsher wrote:

> From: Mark Rustad <[email-masked]>

> By using designated initialization in PCI_VDEVICE, like other
> similar macros, many "missing initializer" warnings that appear
> when compiling with W=2 can be silenced.

> Signed-off-by: Mark Rustad <[email-masked]>
> Tested-by: Phil Schmitt <[email-masked]>
> Tested-by: Aaron Brown <[email-masked]>
> Tested-by: Kavindya Deegala <[email-masked]>
> Signed-off-by: Jeff Kirsher <[email-masked]>
> ---
>   include/linux/pci.h | 10 +++++-----
>   1 file changed, 5 insertions(+), 5 deletions(-)

> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index fb57c89..49455f9 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
[...]
> @@ -689,9 +689,9 @@ struct pci_driver {
>    * private data.
>    */
>
> -#define PCI_VDEVICE(vendor, device)		\
> -	PCI_VENDOR_ID_##vendor, (device),	\
> -	PCI_ANY_ID, PCI_ANY_ID, 0, 0
> +#define PCI_VDEVICE(vend, dev) \
> +	.vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
> +	.subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0

    Initializing the fields to 0 is pointless, as 0 is what should be put into 
them anyway by the compiler. Also, it doesn't look right when you mix 
designated and anonymous initializers.

WBR, Sergei