Commit 92e112fd authored by Joe Perches's avatar Joe Perches Committed by Bjorn Helgaas

PCI/checkpatch: Deprecate DEFINE_PCI_DEVICE_TABLE

Prefer use of the direct definition of struct pci_device_id instead of
indirection via macro DEFINE_PCI_DEVICE_TABLE.

Update the PCI documentation to deprecate DEFINE_PCI_DEVICE_TABLE.  Update
checkpatch adding --fix option.
Signed-off-by: default avatarJoe Perches <joe@perches.com>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Reviewed-by: default avatarJingoo Han <jg1.han@samsung.com>
parent 5b764b83
...@@ -123,8 +123,10 @@ initialization with a pointer to a structure describing the driver ...@@ -123,8 +123,10 @@ initialization with a pointer to a structure describing the driver
The ID table is an array of struct pci_device_id entries ending with an 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 all-zero entry. Definitions with static const are generally preferred.
method of declaring the table. Each entry consists of: Use of the deprecated macro DEFINE_PCI_DEVICE_TABLE should be avoided.
Each entry consists of:
vendor,device Vendor and device ID to match (or PCI_ANY_ID) vendor,device Vendor and device ID to match (or PCI_ANY_ID)
......
...@@ -634,8 +634,7 @@ struct pci_driver { ...@@ -634,8 +634,7 @@ struct pci_driver {
* DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table * DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table
* @_table: device table name * @_table: device table name
* *
* This macro is used to create a struct pci_device_id array (a device table) * This macro is deprecated and should not be used in new code.
* in a generic manner.
*/ */
#define DEFINE_PCI_DEVICE_TABLE(_table) \ #define DEFINE_PCI_DEVICE_TABLE(_table) \
const struct pci_device_id _table[] const struct pci_device_id _table[]
......
...@@ -2634,10 +2634,13 @@ sub process { ...@@ -2634,10 +2634,13 @@ sub process {
$herecurr); $herecurr);
} }
# check for declarations of struct pci_device_id # check for uses of DEFINE_PCI_DEVICE_TABLE
if ($line =~ /\bstruct\s+pci_device_id\s+\w+\s*\[\s*\]\s*\=\s*\{/) { if ($line =~ /\bDEFINE_PCI_DEVICE_TABLE\s*\(\s*(\w+)\s*\)\s*=/) {
WARN("DEFINE_PCI_DEVICE_TABLE", if (WARN("DEFINE_PCI_DEVICE_TABLE",
"Use DEFINE_PCI_DEVICE_TABLE for struct pci_device_id\n" . $herecurr); "Prefer struct pci_device_id over deprecated DEFINE_PCI_DEVICE_TABLE\n" . $herecurr) &&
$fix) {
$fixed[$linenr - 1] =~ s/\b(?:static\s+|)DEFINE_PCI_DEVICE_TABLE\s*\(\s*(\w+)\s*\)\s*=\s*/static const struct pci_device_id $1\[\] = /;
}
} }
# check for new typedefs, only function parameters and sparse annotations # check for new typedefs, only function parameters and sparse annotations
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment