From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pa0-f44.google.com ([209.85.220.44]:55112 "EHLO mail-pa0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752679AbaDXVWt (ORCPT ); Thu, 24 Apr 2014 17:22:49 -0400 Received: by mail-pa0-f44.google.com with SMTP id ey11so511244pad.17 for ; Thu, 24 Apr 2014 14:22:48 -0700 (PDT) Date: Thu, 24 Apr 2014 15:22:46 -0600 From: Bjorn Helgaas To: Sergei Shtylyov Cc: Jeff Kirsher , Mark Rustad , linux-pci@vger.kernel.org, netdev@vger.kernel.org Subject: Re: [PATCH] pci: Use designated initialization in PCI_VDEVICE Message-ID: <20140424212246.GG29593@google.com> References: <1396303119-16766-1-git-send-email-jeffrey.t.kirsher@intel.com> <5339E746.4030503@cogentembedded.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <5339E746.4030503@cogentembedded.com> Sender: linux-pci-owner@vger.kernel.org List-ID: On Tue, Apr 01, 2014 at 02:08:06AM +0400, Sergei Shtylyov wrote: > Hello. > > On 04/01/2014 01:58 AM, Jeff Kirsher wrote: > > >From: Mark Rustad > > >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 > >Tested-by: Phil Schmitt > >Tested-by: Aaron Brown > >Tested-by: Kavindya Deegala > >Signed-off-by: Jeff Kirsher > >--- > > 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. I'm certainly willing to apply this, but I can't reproduce the benefit. I tried "make W=2 drivers/net/ethernet/intel/e1000e/netdev.o" and didn't see any change before and after this patch (I'm using Ubuntu gcc 4.6.3 if it matters). What am I missing? And do we need the zeroes? Bjorn