lkml.org 
[lkml]   [2013]   [Nov]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 1/5] serial: 8250_pci: use DEFINE_PCI_DEVICE_TABLE macro
    From
    Date
    On Thu, 2013-11-28 at 14:29 +0900, Jingoo Han wrote:
    > On Thursday, November 28, 2013 1:08 PM, Greg Kroah-Hartman wrote:
    > > On Thu, Nov 28, 2013 at 10:55:35AM +0900, Jingoo Han wrote:
    > > > This macro is used to create a struct pci_device_id array.
    > >
    > > Yeah, and it's a horrid macro that deserves to be removed, please don't
    > > use it in more places.
    > >
    > > Actually, if you could just remove it, that would be best, sorry, I'm
    > > not going to take these patches.
    >
    > (+cc Joe Perches, Andrew Morton, Andy Whitcroft)
    >
    > Hi Joe Perches,
    >
    > Would you fix checkpatch.pl about DEFINE_PCI_DEVICE_TABLE?
    > Currently, checkpatch.pl guides to use DEFINE_PCI_DEVICE_TABLE
    > as below.
    >
    > WARNING: Use DEFINE_PCI_DEVICE_TABLE for struct pci_device_id
    > #331: FILE: drivers/usb/host/ehci-pci.c:331:
    > +static const struct pci_device_id pci_ids [] = { {
    >
    > However, Greg Kroah-Hartman mentioned that DEFINE_PCI_DEVICE_TABLE
    > shouldn't be used anymore.
    >
    > So, would you change checkpatch.pl in order to guide to use
    > struct pci_device_id instead of DEFINE_PCI_DEVICE_TABLE?
    >
    > For example,
    > WARNING: Use struct pci_device_id instead of DEFINE_PCI_DEVICE_TABLE

    The documentation doesn't agree with Greg.

    Documentation/PCI/pci.txt:

    The ID table is an array of struct pci_device_id entries ending with an
    all-zero entry; use of the macro DEFINE_PCI_DEVICE_TABLE is the preferred
    method of declaring the table.

    Neither does the kernel tree:

    $ git grep -w DEFINE_PCI_DEVICE_TABLE | wc -l
    410

    $ git grep -E "\bstruct\s+pci_device_id\s+\w+\s*\[\s*\]\s*=" | wc -l
    376

    Most of the 376 should be const and are not.

    $ git grep -E "\bconst\s+struct\s+pci_device_id\s+\w+\s*\[\s*\]\s*=" | wc -l
    155

    Everything that uses DEFINE_PCI_DEVICE_TABLE is const.

    $ git grep -A1 -E "define\s+DEFINE_PCI_DEVICE_TABLE"
    include/linux/pci.h:#define DEFINE_PCI_DEVICE_TABLE(_table) \
    include/linux/pci.h- const struct pci_device_id _table[]




    \
     
     \ /
      Last update: 2013-11-28 07:01    [W:3.008 / U:0.388 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site