* Re: [PATCH 1/5] serial: 8250_pci: use DEFINE_PCI_DEVICE_TABLE macro [not found] ` <1385619863.12210.14.camel@joe-AO722> @ 2013-11-29 1:33 ` Jingoo Han 2013-12-02 0:07 ` Jingoo Han 0 siblings, 1 reply; 13+ messages in thread From: Jingoo Han @ 2013-11-29 1:33 UTC (permalink / raw) To: 'Joe Perches', 'Greg Kroah-Hartman', 'Bjorn Helgaas' Cc: linux-kernel, linux-pci, 'Andrew Morton', 'Andy Whitcroft', linux-serial, 'Jingoo Han' On Thursday, November 28, 2013 3:24 PM, Joe Perches wrote: >On Wed, 2013-11-27 at 21:53 -0800, 'Greg Kroah-Hartman' wrote: >>On Wed, Nov 27, 2013 at 09:40:13PM -0800, Joe Perches wrote: >>>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. >[] >> I say just remove it, I should have done that years ago when I was the >> PCI maintainer, just never got around to it. No other bus has something >> like this for their device ids, why should PCI be "special"? > >Anyone else have an opinion? > >I don't care one way or another, but please, one way >not two. (+cc Bjorn Helgaas, linux-pci) Then, how about the following steps? 1. Fix ./Documentation/PCI/pci.txt as below. (Jingoo Han) 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. Each entry consists of: +all-zero entry; Each entry consists of: 2. Fix ./scripts/checkpatch.pl in order to guide to use struct pci_device_id instead of DEFINE_PCI_DEVICE_TABLE. (Joe Perches) 3. Replace DEFINE_PCI_DEVICE_TABLE of ./drivers/* with 'const struct pci_device_id'. (Jingoo Han) 4. These patches will be merged through 'driver-core.git' with 'Acked-by' of each subsystem maintainer. (Greg Kroah-Hartman) Best regards, Jingoo Han >Changing checkpatch is a trifle, but there are a _lot_ >of maintainers to work through if it's to be removed. > >It'll probably take several releases. > >$ git grep --name-only -w DEFINE_PCI_DEVICE_TABLE | \ > cut -f1,2 -d/ | uniq -c > 1 Documentation/PCI > 1 arch/x86 > 1 drivers/bcma > 3 drivers/block > 1 drivers/char > 1 drivers/cpufreq > 2 drivers/dma > 18 drivers/edac > 6 drivers/gpio > 6 drivers/gpu > 6 drivers/hwmon > 20 drivers/i2c > 2 drivers/infiniband > 1 drivers/ipack > 1 drivers/leds > 3 drivers/media > 10 drivers/mfd > 2 drivers/misc > 1 drivers/mmc > 1 drivers/mtd > 132 drivers/net > 1 drivers/ntb > 1 drivers/pci > 5 drivers/pcmcia > 2 drivers/platform > 1 drivers/ptp > 1 drivers/rapidio > 7 drivers/scsi > 3 drivers/spi > 65 drivers/staging > 3 drivers/tty > 1 drivers/uio > 5 drivers/usb > 1 drivers/video > 1 drivers/virtio > 3 drivers/vme > 9 drivers/watchdog > 1 drivers/xen > 1 include/linux > 1 scripts/checkpatch.pl > 1 scripts/tags.sh > 1 sound/oss > 67 sound/pci ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/5] serial: 8250_pci: use DEFINE_PCI_DEVICE_TABLE macro 2013-11-29 1:33 ` [PATCH 1/5] serial: 8250_pci: use DEFINE_PCI_DEVICE_TABLE macro Jingoo Han @ 2013-12-02 0:07 ` Jingoo Han 2013-12-02 3:45 ` Guenter Roeck 0 siblings, 1 reply; 13+ messages in thread From: Jingoo Han @ 2013-12-02 0:07 UTC (permalink / raw) To: 'Jingoo Han', 'Joe Perches', 'Greg Kroah-Hartman', 'Bjorn Helgaas' Cc: linux-kernel, linux-pci, 'Andrew Morton', 'Andy Whitcroft', linux-serial, 'Jingoo Han' On Friday, November 29, 2013 10:34 AM, Jingoo Han wrote: > On Thursday, November 28, 2013 3:24 PM, Joe Perches wrote: > >On Wed, 2013-11-27 at 21:53 -0800, 'Greg Kroah-Hartman' wrote: > >>On Wed, Nov 27, 2013 at 09:40:13PM -0800, Joe Perches wrote: > >>>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. > >[] > >> I say just remove it, I should have done that years ago when I was the > >> PCI maintainer, just never got around to it. No other bus has something > >> like this for their device ids, why should PCI be "special"? > > > >Anyone else have an opinion? > > > >I don't care one way or another, but please, one way > >not two. > > (+cc Bjorn Helgaas, linux-pci) > > Then, how about the following steps? > > 1. Fix ./Documentation/PCI/pci.txt as below. > (Jingoo Han) > 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. Each entry consists of: > +all-zero entry; Each entry consists of: > > 2. Fix ./scripts/checkpatch.pl in order to guide to use > struct pci_device_id instead of DEFINE_PCI_DEVICE_TABLE. > (Joe Perches) If all DEFINE_PCI_DEVICE_TABLEs are replaced with 'const struct pci_device_id' and these patches are merged through 'driver-core.git', it will be not necessary to fix ./scripts/checkpatch.pl. Then, I will send patches to Greg Kroah-Hartman, with CC'ing each subsystem maintainer. Best regards, Jingoo Han > > 3. Replace DEFINE_PCI_DEVICE_TABLE of ./drivers/* > with 'const struct pci_device_id'. > (Jingoo Han) > > 4. These patches will be merged through 'driver-core.git' > with 'Acked-by' of each subsystem maintainer. > (Greg Kroah-Hartman) > > Best regards, > Jingoo Han > > >Changing checkpatch is a trifle, but there are a _lot_ > >of maintainers to work through if it's to be removed. > > > >It'll probably take several releases. > > > >$ git grep --name-only -w DEFINE_PCI_DEVICE_TABLE | \ > > cut -f1,2 -d/ | uniq -c > > 1 Documentation/PCI > > 1 arch/x86 > > 1 drivers/bcma > > 3 drivers/block > > 1 drivers/char > > 1 drivers/cpufreq > > 2 drivers/dma > > 18 drivers/edac > > 6 drivers/gpio > > 6 drivers/gpu > > 6 drivers/hwmon > > 20 drivers/i2c > > 2 drivers/infiniband > > 1 drivers/ipack > > 1 drivers/leds > > 3 drivers/media > > 10 drivers/mfd > > 2 drivers/misc > > 1 drivers/mmc > > 1 drivers/mtd > > 132 drivers/net > > 1 drivers/ntb > > 1 drivers/pci > > 5 drivers/pcmcia > > 2 drivers/platform > > 1 drivers/ptp > > 1 drivers/rapidio > > 7 drivers/scsi > > 3 drivers/spi > > 65 drivers/staging > > 3 drivers/tty > > 1 drivers/uio > > 5 drivers/usb > > 1 drivers/video > > 1 drivers/virtio > > 3 drivers/vme > > 9 drivers/watchdog > > 1 drivers/xen > > 1 include/linux > > 1 scripts/checkpatch.pl > > 1 scripts/tags.sh > > 1 sound/oss > > 67 sound/pci ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/5] serial: 8250_pci: use DEFINE_PCI_DEVICE_TABLE macro 2013-12-02 0:07 ` Jingoo Han @ 2013-12-02 3:45 ` Guenter Roeck 2013-12-02 3:50 ` Jingoo Han 0 siblings, 1 reply; 13+ messages in thread From: Guenter Roeck @ 2013-12-02 3:45 UTC (permalink / raw) To: Jingoo Han, 'Joe Perches', 'Greg Kroah-Hartman', 'Bjorn Helgaas' Cc: linux-kernel, linux-pci, 'Andrew Morton', 'Andy Whitcroft', linux-serial On 12/01/2013 04:07 PM, Jingoo Han wrote: > On Friday, November 29, 2013 10:34 AM, Jingoo Han wrote: >> On Thursday, November 28, 2013 3:24 PM, Joe Perches wrote: >>> On Wed, 2013-11-27 at 21:53 -0800, 'Greg Kroah-Hartman' wrote: >>>> On Wed, Nov 27, 2013 at 09:40:13PM -0800, Joe Perches wrote: >>>>> 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. >>> [] >>>> I say just remove it, I should have done that years ago when I was the >>>> PCI maintainer, just never got around to it. No other bus has something >>>> like this for their device ids, why should PCI be "special"? >>> >>> Anyone else have an opinion? >>> >>> I don't care one way or another, but please, one way >>> not two. >> Same here. >> (+cc Bjorn Helgaas, linux-pci) >> >> Then, how about the following steps? >> >> 1. Fix ./Documentation/PCI/pci.txt as below. >> (Jingoo Han) >> 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. Each entry consists of: >> +all-zero entry; Each entry consists of: >> >> 2. Fix ./scripts/checkpatch.pl in order to guide to use >> struct pci_device_id instead of DEFINE_PCI_DEVICE_TABLE. >> (Joe Perches) > > If all DEFINE_PCI_DEVICE_TABLEs are replaced with 'const struct pci_device_id' > and these patches are merged through 'driver-core.git', it will be not > necessary to fix ./scripts/checkpatch.pl. > Why not ? Guenter ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/5] serial: 8250_pci: use DEFINE_PCI_DEVICE_TABLE macro 2013-12-02 3:45 ` Guenter Roeck @ 2013-12-02 3:50 ` Jingoo Han 2013-12-02 3:55 ` Guenter Roeck 0 siblings, 1 reply; 13+ messages in thread From: Jingoo Han @ 2013-12-02 3:50 UTC (permalink / raw) To: 'Guenter Roeck' Cc: 'Joe Perches', 'Greg Kroah-Hartman', 'Bjorn Helgaas', linux-kernel, linux-pci, 'Andrew Morton', 'Andy Whitcroft', linux-serial, 'Jingoo Han' On Monday, December 02, 2013 12:46 PM, Guenter Roeck wrote: > On 12/01/2013 04:07 PM, Jingoo Han wrote: > > On Friday, November 29, 2013 10:34 AM, Jingoo Han wrote: > >> On Thursday, November 28, 2013 3:24 PM, Joe Perches wrote: > >>> On Wed, 2013-11-27 at 21:53 -0800, 'Greg Kroah-Hartman' wrote: > >>>> On Wed, Nov 27, 2013 at 09:40:13PM -0800, Joe Perches wrote: > >>>>> 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. > >>> [] > >>>> I say just remove it, I should have done that years ago when I was the > >>>> PCI maintainer, just never got around to it. No other bus has something > >>>> like this for their device ids, why should PCI be "special"? > >>> > >>> Anyone else have an opinion? > >>> > >>> I don't care one way or another, but please, one way > >>> not two. > >> > > Same here. > > >> (+cc Bjorn Helgaas, linux-pci) > >> > >> Then, how about the following steps? > >> > >> 1. Fix ./Documentation/PCI/pci.txt as below. > >> (Jingoo Han) > >> 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. Each entry consists of: > >> +all-zero entry; Each entry consists of: > >> > >> 2. Fix ./scripts/checkpatch.pl in order to guide to use > >> struct pci_device_id instead of DEFINE_PCI_DEVICE_TABLE. > >> (Joe Perches) > > > > If all DEFINE_PCI_DEVICE_TABLEs are replaced with 'const struct pci_device_id' > > and these patches are merged through 'driver-core.git', it will be not > > necessary to fix ./scripts/checkpatch.pl. > > > Why not ? I will replace all DEFINE_PCI_DEVICE_TABLEs with 'const struct pci_device_id', and remove the definition of DEFINE_PCI_DEVICE_TABLE macro. --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -631,16 +631,6 @@ struct pci_driver { #define to_pci_driver(drv) container_of(drv, struct pci_driver, driver) /** - * DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table - * @_table: device table name - * - * This macro is used to create a struct pci_device_id array (a device table) - * in a generic manner. - */ -#define DEFINE_PCI_DEVICE_TABLE(_table) \ - const struct pci_device_id _table[] - -/** In this case, there is no DEFINE_PCI_DEVICE_TABLE usage in the kernel. If someone uses DEFINE_PCI_DEVICE_TABLE macro, it will make build error. Best regards, Jingoo Han ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/5] serial: 8250_pci: use DEFINE_PCI_DEVICE_TABLE macro 2013-12-02 3:50 ` Jingoo Han @ 2013-12-02 3:55 ` Guenter Roeck 2013-12-02 4:03 ` Jingoo Han 0 siblings, 1 reply; 13+ messages in thread From: Guenter Roeck @ 2013-12-02 3:55 UTC (permalink / raw) To: Jingoo Han Cc: 'Joe Perches', 'Greg Kroah-Hartman', 'Bjorn Helgaas', linux-kernel, linux-pci, 'Andrew Morton', 'Andy Whitcroft', linux-serial On 12/01/2013 07:50 PM, Jingoo Han wrote: > On Monday, December 02, 2013 12:46 PM, Guenter Roeck wrote: >> On 12/01/2013 04:07 PM, Jingoo Han wrote: >>> On Friday, November 29, 2013 10:34 AM, Jingoo Han wrote: >>>> On Thursday, November 28, 2013 3:24 PM, Joe Perches wrote: >>>>> On Wed, 2013-11-27 at 21:53 -0800, 'Greg Kroah-Hartman' wrote: >>>>>> On Wed, Nov 27, 2013 at 09:40:13PM -0800, Joe Perches wrote: >>>>>>> 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. >>>>> [] >>>>>> I say just remove it, I should have done that years ago when I was the >>>>>> PCI maintainer, just never got around to it. No other bus has something >>>>>> like this for their device ids, why should PCI be "special"? >>>>> >>>>> Anyone else have an opinion? >>>>> >>>>> I don't care one way or another, but please, one way >>>>> not two. >>>> >> >> Same here. >> >>>> (+cc Bjorn Helgaas, linux-pci) >>>> >>>> Then, how about the following steps? >>>> >>>> 1. Fix ./Documentation/PCI/pci.txt as below. >>>> (Jingoo Han) >>>> 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. Each entry consists of: >>>> +all-zero entry; Each entry consists of: >>>> >>>> 2. Fix ./scripts/checkpatch.pl in order to guide to use >>>> struct pci_device_id instead of DEFINE_PCI_DEVICE_TABLE. >>>> (Joe Perches) >>> >>> If all DEFINE_PCI_DEVICE_TABLEs are replaced with 'const struct pci_device_id' >>> and these patches are merged through 'driver-core.git', it will be not >>> necessary to fix ./scripts/checkpatch.pl. >>> >> Why not ? > > I will replace all DEFINE_PCI_DEVICE_TABLEs with 'const struct pci_device_id', > and remove the definition of DEFINE_PCI_DEVICE_TABLE macro. > > --- a/include/linux/pci.h > +++ b/include/linux/pci.h > @@ -631,16 +631,6 @@ struct pci_driver { > #define to_pci_driver(drv) container_of(drv, struct pci_driver, driver) > > /** > - * DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table > - * @_table: device table name > - * > - * This macro is used to create a struct pci_device_id array (a device table) > - * in a generic manner. > - */ > -#define DEFINE_PCI_DEVICE_TABLE(_table) \ > - const struct pci_device_id _table[] > - > -/** > > In this case, there is no DEFINE_PCI_DEVICE_TABLE usage > in the kernel. If someone uses DEFINE_PCI_DEVICE_TABLE macro, > it will make build error. > And that will make the checkpatch warning go away ? That seems to be very unlikely. Guenter ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/5] serial: 8250_pci: use DEFINE_PCI_DEVICE_TABLE macro 2013-12-02 3:55 ` Guenter Roeck @ 2013-12-02 4:03 ` Jingoo Han 2013-12-02 5:48 ` Joe Perches 0 siblings, 1 reply; 13+ messages in thread From: Jingoo Han @ 2013-12-02 4:03 UTC (permalink / raw) To: 'Guenter Roeck', 'Joe Perches' Cc: 'Greg Kroah-Hartman', 'Bjorn Helgaas', linux-kernel, linux-pci, 'Andrew Morton', 'Andy Whitcroft', linux-serial, 'Jingoo Han' On Monday, December 02, 2013 12:56 PM, Guenter Roeck wrote: > On 12/01/2013 07:50 PM, Jingoo Han wrote: > > On Monday, December 02, 2013 12:46 PM, Guenter Roeck wrote: > >> On 12/01/2013 04:07 PM, Jingoo Han wrote: > >>> On Friday, November 29, 2013 10:34 AM, Jingoo Han wrote: > >>>> On Thursday, November 28, 2013 3:24 PM, Joe Perches wrote: > >>>>> On Wed, 2013-11-27 at 21:53 -0800, 'Greg Kroah-Hartman' wrote: > >>>>>> On Wed, Nov 27, 2013 at 09:40:13PM -0800, Joe Perches wrote: > >>>>>>> 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. > >>>>> [] > >>>>>> I say just remove it, I should have done that years ago when I was the > >>>>>> PCI maintainer, just never got around to it. No other bus has something > >>>>>> like this for their device ids, why should PCI be "special"? > >>>>> > >>>>> Anyone else have an opinion? > >>>>> > >>>>> I don't care one way or another, but please, one way > >>>>> not two. > >>>> > >> > >> Same here. > >> > >>>> (+cc Bjorn Helgaas, linux-pci) > >>>> > >>>> Then, how about the following steps? > >>>> > >>>> 1. Fix ./Documentation/PCI/pci.txt as below. > >>>> (Jingoo Han) > >>>> 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. Each entry consists of: > >>>> +all-zero entry; Each entry consists of: > >>>> > >>>> 2. Fix ./scripts/checkpatch.pl in order to guide to use > >>>> struct pci_device_id instead of DEFINE_PCI_DEVICE_TABLE. > >>>> (Joe Perches) > >>> > >>> If all DEFINE_PCI_DEVICE_TABLEs are replaced with 'const struct pci_device_id' > >>> and these patches are merged through 'driver-core.git', it will be not > >>> necessary to fix ./scripts/checkpatch.pl. > >>> > >> Why not ? > > > > I will replace all DEFINE_PCI_DEVICE_TABLEs with 'const struct pci_device_id', > > and remove the definition of DEFINE_PCI_DEVICE_TABLE macro. > > > > --- a/include/linux/pci.h > > +++ b/include/linux/pci.h > > @@ -631,16 +631,6 @@ struct pci_driver { > > #define to_pci_driver(drv) container_of(drv, struct pci_driver, driver) > > > > /** > > - * DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table > > - * @_table: device table name > > - * > > - * This macro is used to create a struct pci_device_id array (a device table) > > - * in a generic manner. > > - */ > > -#define DEFINE_PCI_DEVICE_TABLE(_table) \ > > - const struct pci_device_id _table[] > > - > > -/** > > > > In this case, there is no DEFINE_PCI_DEVICE_TABLE usage > > in the kernel. If someone uses DEFINE_PCI_DEVICE_TABLE macro, > > it will make build error. > > > > And that will make the checkpatch warning go away ? > That seems to be very unlikely. OK, I will ask Joe Perches to remove the following checkpatch warning. WARNING: Use DEFINE_PCI_DEVICE_TABLE for struct pci_device_id Best regards, Jingoo Han ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/5] serial: 8250_pci: use DEFINE_PCI_DEVICE_TABLE macro 2013-12-02 4:03 ` Jingoo Han @ 2013-12-02 5:48 ` Joe Perches 2013-12-02 10:44 ` Jonas Bonn 0 siblings, 1 reply; 13+ messages in thread From: Joe Perches @ 2013-12-02 5:48 UTC (permalink / raw) To: Jingoo Han, Jonas Bonn Cc: 'Guenter Roeck', 'Greg Kroah-Hartman', 'Bjorn Helgaas', linux-kernel, linux-pci, 'Andrew Morton', 'Andy Whitcroft', linux-serial (Adding Jonas Bonn to list as he added the macro in the first place...) On Mon, 2013-12-02 at 13:03 +0900, Jingoo Han wrote: > On Monday, December 02, 2013 12:56 PM, Guenter Roeck wrote: > > On 12/01/2013 07:50 PM, Jingoo Han wrote: > > > On Monday, December 02, 2013 12:46 PM, Guenter Roeck wrote: > > >> On 12/01/2013 04:07 PM, Jingoo Han wrote: > > >>> On Friday, November 29, 2013 10:34 AM, Jingoo Han wrote: > > >>>> On Thursday, November 28, 2013 3:24 PM, Joe Perches wrote: > > >>>>> On Wed, 2013-11-27 at 21:53 -0800, 'Greg Kroah-Hartman' wrote: > > >>>>>> On Wed, Nov 27, 2013 at 09:40:13PM -0800, Joe Perches wrote: > > >>>>>>> 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. > > >>>>> [] > > >>>>>> I say just remove it, I should have done that years ago when I was the > > >>>>>> PCI maintainer, just never got around to it. No other bus has something > > >>>>>> like this for their device ids, why should PCI be "special"? > > >>>>> > > >>>>> Anyone else have an opinion? > > >>>>> > > >>>>> I don't care one way or another, but please, one way > > >>>>> not two. > > >>>> > > >> > > >> Same here. > > >> > > >>>> (+cc Bjorn Helgaas, linux-pci) > > >>>> > > >>>> Then, how about the following steps? > > >>>> > > >>>> 1. Fix ./Documentation/PCI/pci.txt as below. > > >>>> (Jingoo Han) > > >>>> 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. Each entry consists of: > > >>>> +all-zero entry; Each entry consists of: > > >>>> > > >>>> 2. Fix ./scripts/checkpatch.pl in order to guide to use > > >>>> struct pci_device_id instead of DEFINE_PCI_DEVICE_TABLE. > > >>>> (Joe Perches) > > >>> > > >>> If all DEFINE_PCI_DEVICE_TABLEs are replaced with 'const struct pci_device_id' > > >>> and these patches are merged through 'driver-core.git', it will be not > > >>> necessary to fix ./scripts/checkpatch.pl. > > >>> > > >> Why not ? > > > > > > I will replace all DEFINE_PCI_DEVICE_TABLEs with 'const struct pci_device_id', > > > and remove the definition of DEFINE_PCI_DEVICE_TABLE macro. > > > > > > --- a/include/linux/pci.h > > > +++ b/include/linux/pci.h > > > @@ -631,16 +631,6 @@ struct pci_driver { > > > #define to_pci_driver(drv) container_of(drv, struct pci_driver, driver) > > > > > > /** > > > - * DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table > > > - * @_table: device table name > > > - * > > > - * This macro is used to create a struct pci_device_id array (a device table) > > > - * in a generic manner. > > > - */ > > > -#define DEFINE_PCI_DEVICE_TABLE(_table) \ > > > - const struct pci_device_id _table[] > > > - > > > -/** > > > > > > In this case, there is no DEFINE_PCI_DEVICE_TABLE usage > > > in the kernel. If someone uses DEFINE_PCI_DEVICE_TABLE macro, > > > it will make build error. > > > > > > > And that will make the checkpatch warning go away ? > > That seems to be very unlikely. > > OK, I will ask Joe Perches to remove the following checkpatch > warning. > > WARNING: Use DEFINE_PCI_DEVICE_TABLE for struct pci_device_id > > Best regards, > Jingoo Han > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/5] serial: 8250_pci: use DEFINE_PCI_DEVICE_TABLE macro 2013-12-02 5:48 ` Joe Perches @ 2013-12-02 10:44 ` Jonas Bonn 2013-12-02 17:43 ` [PATCH] pci/checkpatch: Deprecate DEFINE_PCI_DEVICE_TABLE Joe Perches 0 siblings, 1 reply; 13+ messages in thread From: Jonas Bonn @ 2013-12-02 10:44 UTC (permalink / raw) To: Joe Perches Cc: Jingoo Han, 'Guenter Roeck', 'Greg Kroah-Hartman', 'Bjorn Helgaas', linux-kernel, linux-pci, 'Andrew Morton', 'Andy Whitcroft', linux-serial Hi Joe, On 12/02/2013 06:48 AM, Joe Perches wrote: > (Adding Jonas Bonn to list as he added the macro in the first place...) Thanks... ;) Actually, I think I submitted an even uglier macro called DECLARE_PCI_DEVICE_TABLE... might have been the first kernel patch I ever sent? In any case, it should certainly have been kindly rejected. After it hit mainline Andrew Morton just about choked on his tea and renamed it DEFINE_PCI_DEVICE_TABLE. > > On Mon, 2013-12-02 at 13:03 +0900, Jingoo Han wrote: >> On Monday, December 02, 2013 12:56 PM, Guenter Roeck wrote: >>> On 12/01/2013 07:50 PM, Jingoo Han wrote: >>>> On Monday, December 02, 2013 12:46 PM, Guenter Roeck wrote: >>>>> On 12/01/2013 04:07 PM, Jingoo Han wrote: >>>>>> On Friday, November 29, 2013 10:34 AM, Jingoo Han wrote: >>>>>>> On Thursday, November 28, 2013 3:24 PM, Joe Perches wrote: >>>>>>>> On Wed, 2013-11-27 at 21:53 -0800, 'Greg Kroah-Hartman' wrote: >>>>>>>>> On Wed, Nov 27, 2013 at 09:40:13PM -0800, Joe Perches wrote: >>>>>>>>>> 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. >>>>>>>>>>> Feel free to just remove the macro; it serves no purpose but to confuse. That said, the underlying issue that the macro was supposed to resolve (if I recall correctly) was to make sure that all the struct pci_device_id instances were marked as const, as per the PCI documentation; if there's something checkpatch should be warning for it's simply that the struct is const. /Jonas ^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH] pci/checkpatch: Deprecate DEFINE_PCI_DEVICE_TABLE 2013-12-02 10:44 ` Jonas Bonn @ 2013-12-02 17:43 ` Joe Perches 2013-12-02 18:01 ` Guenter Roeck ` (2 more replies) 0 siblings, 3 replies; 13+ messages in thread From: Joe Perches @ 2013-12-02 17:43 UTC (permalink / raw) To: Jonas Bonn Cc: Jingoo Han, 'Guenter Roeck', 'Greg Kroah-Hartman', 'Bjorn Helgaas', linux-kernel, linux-pci, 'Andrew Morton', 'Andy Whitcroft', linux-serial 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: Joe Perches <joe@perches.com> --- Documentation/PCI/pci.txt | 6 ++++-- include/linux/pci.h | 3 +-- scripts/checkpatch.pl | 11 +++++++---- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Documentation/PCI/pci.txt b/Documentation/PCI/pci.txt index 6f45856..9518006 100644 --- a/Documentation/PCI/pci.txt +++ b/Documentation/PCI/pci.txt @@ -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 -all-zero entry; use of the macro DEFINE_PCI_DEVICE_TABLE is the preferred -method of declaring the table. Each entry consists of: +all-zero entry. Definitions with static const are generally preferred. +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) diff --git a/include/linux/pci.h b/include/linux/pci.h index 1084a15..88674b0 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -634,8 +634,7 @@ struct pci_driver { * DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table * @_table: device table name * - * This macro is used to create a struct pci_device_id array (a device table) - * in a generic manner. + * This macro is deprecated and should not be used in new code. */ #define DEFINE_PCI_DEVICE_TABLE(_table) \ const struct pci_device_id _table[] diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 38be5d5..6f883f0 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -2643,10 +2643,13 @@ sub process { } } -# check for declarations of struct pci_device_id - if ($line =~ /\bstruct\s+pci_device_id\s+\w+\s*\[\s*\]\s*\=\s*\{/) { - WARN("DEFINE_PCI_DEVICE_TABLE", - "Use DEFINE_PCI_DEVICE_TABLE for struct pci_device_id\n" . $herecurr); +# check for uses of DEFINE_PCI_DEVICE_TABLE + if ($line =~ /\bDEFINE_PCI_DEVICE_TABLE\s*\(\s*(\w+)\s*\)\s*=/) { + if (WARN("DEFINE_PCI_DEVICE_TABLE", + "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 ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH] pci/checkpatch: Deprecate DEFINE_PCI_DEVICE_TABLE 2013-12-02 17:43 ` [PATCH] pci/checkpatch: Deprecate DEFINE_PCI_DEVICE_TABLE Joe Perches @ 2013-12-02 18:01 ` Guenter Roeck 2013-12-02 18:07 ` Joe Perches 2013-12-03 1:52 ` Jingoo Han 2013-12-13 18:39 ` Bjorn Helgaas 2 siblings, 1 reply; 13+ messages in thread From: Guenter Roeck @ 2013-12-02 18:01 UTC (permalink / raw) To: Joe Perches Cc: Jonas Bonn, Jingoo Han, 'Greg Kroah-Hartman', 'Bjorn Helgaas', linux-kernel, linux-pci, 'Andrew Morton', 'Andy Whitcroft', linux-serial On Mon, Dec 02, 2013 at 09:43:37AM -0800, Joe Perches wrote: > Prefer use of the direct definition of struct pci_device_id Add 'const' ? > 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: Joe Perches <joe@perches.com> > --- > Documentation/PCI/pci.txt | 6 ++++-- > include/linux/pci.h | 3 +-- > scripts/checkpatch.pl | 11 +++++++---- > 3 files changed, 12 insertions(+), 8 deletions(-) > > diff --git a/Documentation/PCI/pci.txt b/Documentation/PCI/pci.txt > index 6f45856..9518006 100644 > --- a/Documentation/PCI/pci.txt > +++ b/Documentation/PCI/pci.txt > @@ -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 > -all-zero entry; use of the macro DEFINE_PCI_DEVICE_TABLE is the preferred > -method of declaring the table. Each entry consists of: > +all-zero entry. Definitions with static const are generally preferred. > +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) > > diff --git a/include/linux/pci.h b/include/linux/pci.h > index 1084a15..88674b0 100644 > --- a/include/linux/pci.h > +++ b/include/linux/pci.h > @@ -634,8 +634,7 @@ struct pci_driver { > * DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table > * @_table: device table name > * > - * This macro is used to create a struct pci_device_id array (a device table) > - * in a generic manner. > + * This macro is deprecated and should not be used in new code. > */ > #define DEFINE_PCI_DEVICE_TABLE(_table) \ > const struct pci_device_id _table[] > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > index 38be5d5..6f883f0 100755 > --- a/scripts/checkpatch.pl > +++ b/scripts/checkpatch.pl > @@ -2643,10 +2643,13 @@ sub process { > } > } > > -# check for declarations of struct pci_device_id > - if ($line =~ /\bstruct\s+pci_device_id\s+\w+\s*\[\s*\]\s*\=\s*\{/) { > - WARN("DEFINE_PCI_DEVICE_TABLE", > - "Use DEFINE_PCI_DEVICE_TABLE for struct pci_device_id\n" . $herecurr); > +# check for uses of DEFINE_PCI_DEVICE_TABLE > + if ($line =~ /\bDEFINE_PCI_DEVICE_TABLE\s*\(\s*(\w+)\s*\)\s*=/) { > + if (WARN("DEFINE_PCI_DEVICE_TABLE", > + "Prefer struct pci_device_id over deprecated DEFINE_PCI_DEVICE_TABLE\n" . $herecurr) && Add 'const' ? Guenter ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] pci/checkpatch: Deprecate DEFINE_PCI_DEVICE_TABLE 2013-12-02 18:01 ` Guenter Roeck @ 2013-12-02 18:07 ` Joe Perches 0 siblings, 0 replies; 13+ messages in thread From: Joe Perches @ 2013-12-02 18:07 UTC (permalink / raw) To: Guenter Roeck Cc: Jonas Bonn, Jingoo Han, 'Greg Kroah-Hartman', 'Bjorn Helgaas', linux-kernel, linux-pci, 'Andrew Morton', 'Andy Whitcroft', linux-serial On Mon, 2013-12-02 at 10:01 -0800, Guenter Roeck wrote: > On Mon, Dec 02, 2013 at 09:43:37AM -0800, Joe Perches wrote: > > Prefer use of the direct definition of struct pci_device_id [] > > +all-zero entry. Definitions with static const are generally preferred. see here: > Add 'const' ? Also see $fix. Not all can be const as some codes actually modify the tables for various quirks. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] pci/checkpatch: Deprecate DEFINE_PCI_DEVICE_TABLE 2013-12-02 17:43 ` [PATCH] pci/checkpatch: Deprecate DEFINE_PCI_DEVICE_TABLE Joe Perches 2013-12-02 18:01 ` Guenter Roeck @ 2013-12-03 1:52 ` Jingoo Han 2013-12-13 18:39 ` Bjorn Helgaas 2 siblings, 0 replies; 13+ messages in thread From: Jingoo Han @ 2013-12-03 1:52 UTC (permalink / raw) To: 'Joe Perches' Cc: 'Jonas Bonn', 'Guenter Roeck', 'Greg Kroah-Hartman', 'Bjorn Helgaas', linux-kernel, linux-pci, 'Andrew Morton', 'Andy Whitcroft', linux-serial, 'Jingoo Han' On Tuesday, December 03, 2013 2:44 AM, Joe Perches > > 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: Joe Perches <joe@perches.com> Reviewed-by: Jingoo Han <jg1.han@samsung.com> Best regards, Jingoo Han > --- > Documentation/PCI/pci.txt | 6 ++++-- > include/linux/pci.h | 3 +-- > scripts/checkpatch.pl | 11 +++++++---- > 3 files changed, 12 insertions(+), 8 deletions(-) > > diff --git a/Documentation/PCI/pci.txt b/Documentation/PCI/pci.txt > index 6f45856..9518006 100644 > --- a/Documentation/PCI/pci.txt > +++ b/Documentation/PCI/pci.txt > @@ -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 > -all-zero entry; use of the macro DEFINE_PCI_DEVICE_TABLE is the preferred > -method of declaring the table. Each entry consists of: > +all-zero entry. Definitions with static const are generally preferred. > +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) > > diff --git a/include/linux/pci.h b/include/linux/pci.h > index 1084a15..88674b0 100644 > --- a/include/linux/pci.h > +++ b/include/linux/pci.h > @@ -634,8 +634,7 @@ struct pci_driver { > * DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table > * @_table: device table name > * > - * This macro is used to create a struct pci_device_id array (a device table) > - * in a generic manner. > + * This macro is deprecated and should not be used in new code. > */ > #define DEFINE_PCI_DEVICE_TABLE(_table) \ > const struct pci_device_id _table[] > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > index 38be5d5..6f883f0 100755 > --- a/scripts/checkpatch.pl > +++ b/scripts/checkpatch.pl > @@ -2643,10 +2643,13 @@ sub process { > } > } > > -# check for declarations of struct pci_device_id > - if ($line =~ /\bstruct\s+pci_device_id\s+\w+\s*\[\s*\]\s*\=\s*\{/) { > - WARN("DEFINE_PCI_DEVICE_TABLE", > - "Use DEFINE_PCI_DEVICE_TABLE for struct pci_device_id\n" . $herecurr); > +# check for uses of DEFINE_PCI_DEVICE_TABLE > + if ($line =~ /\bDEFINE_PCI_DEVICE_TABLE\s*\(\s*(\w+)\s*\)\s*=/) { > + if (WARN("DEFINE_PCI_DEVICE_TABLE", > + "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 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] pci/checkpatch: Deprecate DEFINE_PCI_DEVICE_TABLE 2013-12-02 17:43 ` [PATCH] pci/checkpatch: Deprecate DEFINE_PCI_DEVICE_TABLE Joe Perches 2013-12-02 18:01 ` Guenter Roeck 2013-12-03 1:52 ` Jingoo Han @ 2013-12-13 18:39 ` Bjorn Helgaas 2 siblings, 0 replies; 13+ messages in thread From: Bjorn Helgaas @ 2013-12-13 18:39 UTC (permalink / raw) To: Joe Perches Cc: Jonas Bonn, Jingoo Han, 'Guenter Roeck', 'Greg Kroah-Hartman', linux-kernel, linux-pci, 'Andrew Morton', 'Andy Whitcroft', linux-serial On Mon, Dec 02, 2013 at 09:43:37AM -0800, Joe Perches wrote: > 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: Joe Perches <joe@perches.com> Applied with Jingoo's ack for v3.14, thanks! Bjorn > --- > Documentation/PCI/pci.txt | 6 ++++-- > include/linux/pci.h | 3 +-- > scripts/checkpatch.pl | 11 +++++++---- > 3 files changed, 12 insertions(+), 8 deletions(-) > > diff --git a/Documentation/PCI/pci.txt b/Documentation/PCI/pci.txt > index 6f45856..9518006 100644 > --- a/Documentation/PCI/pci.txt > +++ b/Documentation/PCI/pci.txt > @@ -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 > -all-zero entry; use of the macro DEFINE_PCI_DEVICE_TABLE is the preferred > -method of declaring the table. Each entry consists of: > +all-zero entry. Definitions with static const are generally preferred. > +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) > > diff --git a/include/linux/pci.h b/include/linux/pci.h > index 1084a15..88674b0 100644 > --- a/include/linux/pci.h > +++ b/include/linux/pci.h > @@ -634,8 +634,7 @@ struct pci_driver { > * DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table > * @_table: device table name > * > - * This macro is used to create a struct pci_device_id array (a device table) > - * in a generic manner. > + * This macro is deprecated and should not be used in new code. > */ > #define DEFINE_PCI_DEVICE_TABLE(_table) \ > const struct pci_device_id _table[] > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > index 38be5d5..6f883f0 100755 > --- a/scripts/checkpatch.pl > +++ b/scripts/checkpatch.pl > @@ -2643,10 +2643,13 @@ sub process { > } > } > > -# check for declarations of struct pci_device_id > - if ($line =~ /\bstruct\s+pci_device_id\s+\w+\s*\[\s*\]\s*\=\s*\{/) { > - WARN("DEFINE_PCI_DEVICE_TABLE", > - "Use DEFINE_PCI_DEVICE_TABLE for struct pci_device_id\n" . $herecurr); > +# check for uses of DEFINE_PCI_DEVICE_TABLE > + if ($line =~ /\bDEFINE_PCI_DEVICE_TABLE\s*\(\s*(\w+)\s*\)\s*=/) { > + if (WARN("DEFINE_PCI_DEVICE_TABLE", > + "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 > > ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2013-12-13 18:39 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <000601ceebdc$ee148de0$ca3da9a0$%han@samsung.com> [not found] ` <20131128040750.GA29917@kroah.com> [not found] ` <006001ceebfa$c85a1020$590e3060$%han@samsung.com> [not found] ` <1385617213.12210.5.camel@joe-AO722> [not found] ` <20131128055328.GA565@kroah.com> [not found] ` <1385619863.12210.14.camel@joe-AO722> 2013-11-29 1:33 ` [PATCH 1/5] serial: 8250_pci: use DEFINE_PCI_DEVICE_TABLE macro Jingoo Han 2013-12-02 0:07 ` Jingoo Han 2013-12-02 3:45 ` Guenter Roeck 2013-12-02 3:50 ` Jingoo Han 2013-12-02 3:55 ` Guenter Roeck 2013-12-02 4:03 ` Jingoo Han 2013-12-02 5:48 ` Joe Perches 2013-12-02 10:44 ` Jonas Bonn 2013-12-02 17:43 ` [PATCH] pci/checkpatch: Deprecate DEFINE_PCI_DEVICE_TABLE Joe Perches 2013-12-02 18:01 ` Guenter Roeck 2013-12-02 18:07 ` Joe Perches 2013-12-03 1:52 ` Jingoo Han 2013-12-13 18:39 ` Bjorn Helgaas
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).