From: Simon Horman <horms@verge.net.au>
To: Yu Zhao <yu.zhao@intel.com>
Cc: Greg KH <greg@kroah.com>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
Alex Chiang <achiang@hp.com>,
Grant Grundler <grundler@parisc-linux.org>,
Ingo Molnar <mingo@elte.hu>,
Jesse Barnes <jbarnes@virtuousgeek.org>,
Matthew Wilcox <matthew@wil.cx>,
Randy Dunlap <randy.dunlap@oracle.com>,
Roland Dreier <rdreier@cisco.com>,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
virtualization@lists.linux-foundation.org
Subject: Re: [PATCH 2/16 v6] PCI: define PCI resource names in an 'enum'
Date: Fri, 14 Nov 2008 11:43:09 +1100 [thread overview]
Message-ID: <20081114004308.GA10905@verge.net.au> (raw)
In-Reply-To: <20081022084041.GB3773@yzhao12-linux.sh.intel.com>
On Wed, Oct 22, 2008 at 04:40:41PM +0800, Yu Zhao wrote:
> This patch moves all definitions of the PCI resource names to an 'enum',
> and also replaces some hard-coded resource variables with symbol
> names. This change eases introduction of device specific resources.
>
> Cc: Alex Chiang <achiang@hp.com>
> Cc: Grant Grundler <grundler@parisc-linux.org>
> Cc: Greg KH <greg@kroah.com>
> Cc: Ingo Molnar <mingo@elte.hu>
> Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
> Cc: Matthew Wilcox <matthew@wil.cx>
> Cc: Randy Dunlap <randy.dunlap@oracle.com>
> Cc: Roland Dreier <rdreier@cisco.com>
> Signed-off-by: Yu Zhao <yu.zhao@intel.com>
>
> ---
> drivers/pci/pci-sysfs.c | 4 +++-
> drivers/pci/pci.c | 19 ++-----------------
> drivers/pci/probe.c | 2 +-
> drivers/pci/proc.c | 7 ++++---
> include/linux/pci.h | 37 ++++++++++++++++++++++++-------------
> 5 files changed, 34 insertions(+), 35 deletions(-)
>
> diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
> index 110022d..5c456ab 100644
> --- a/drivers/pci/pci-sysfs.c
> +++ b/drivers/pci/pci-sysfs.c
> @@ -101,11 +101,13 @@ resource_show(struct device * dev, struct device_attribute *attr, char * buf)
> struct pci_dev * pci_dev = to_pci_dev(dev);
> char * str = buf;
> int i;
> - int max = 7;
> + int max;
> resource_size_t start, end;
>
> if (pci_dev->subordinate)
> max = DEVICE_COUNT_RESOURCE;
> + else
> + max = PCI_BRIDGE_RESOURCES;
>
> for (i = 0; i < max; i++) {
> struct resource *res = &pci_dev->resource[i];
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index ae62f01..40284dc 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -359,24 +359,9 @@ pci_find_parent_resource(const struct pci_dev *dev, struct resource *res)
> static void
> pci_restore_bars(struct pci_dev *dev)
> {
> - int i, numres;
> -
> - switch (dev->hdr_type) {
> - case PCI_HEADER_TYPE_NORMAL:
> - numres = 6;
> - break;
> - case PCI_HEADER_TYPE_BRIDGE:
> - numres = 2;
> - break;
> - case PCI_HEADER_TYPE_CARDBUS:
> - numres = 1;
> - break;
> - default:
> - /* Should never get here, but just in case... */
> - return;
> - }
> + int i;
>
> - for (i = 0; i < numres; i++)
> + for (i = 0; i < PCI_BRIDGE_RESOURCES; i++)
> pci_update_resource(dev, i);
> }
>
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index aaaf0a1..a52784c 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -426,7 +426,7 @@ static struct pci_bus *pci_alloc_child_bus(struct pci_bus *parent,
> child->subordinate = 0xff;
>
> /* Set up default resource pointers and names.. */
> - for (i = 0; i < 4; i++) {
> + for (i = 0; i < PCI_BRIDGE_RES_NUM; i++) {
> child->resource[i] = &bridge->resource[PCI_BRIDGE_RESOURCES+i];
> child->resource[i]->name = child->name;
> }
> diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
> index e1098c3..f6f2a59 100644
> --- a/drivers/pci/proc.c
> +++ b/drivers/pci/proc.c
> @@ -352,15 +352,16 @@ static int show_device(struct seq_file *m, void *v)
> dev->vendor,
> dev->device,
> dev->irq);
> - /* Here should be 7 and not PCI_NUM_RESOURCES as we need to preserve compatibility */
> - for (i=0; i<7; i++) {
> +
> + /* only print standard and ROM resources to preserve compatibility */
> + for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
> resource_size_t start, end;
> pci_resource_to_user(dev, i, &dev->resource[i], &start, &end);
> seq_printf(m, "\t%16llx",
> (unsigned long long)(start |
> (dev->resource[i].flags & PCI_REGION_FLAG_MASK)));
> }
> - for (i=0; i<7; i++) {
> + for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
> resource_size_t start, end;
> pci_resource_to_user(dev, i, &dev->resource[i], &start, &end);
> seq_printf(m, "\t%16llx",
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 43e1fc1..2ada2b6 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -76,7 +76,30 @@ enum pci_mmap_state {
> #define PCI_DMA_FROMDEVICE 2
> #define PCI_DMA_NONE 3
>
> -#define DEVICE_COUNT_RESOURCE 12
> +/*
> + * For PCI devices, the region numbers are assigned this way:
> + */
> +enum {
> + /* #0-5: standard PCI regions */
> + PCI_STD_RESOURCES,
> + PCI_STD_RESOURCES_END = 5,
> +
> + /* #6: expansion ROM */
> + PCI_ROM_RESOURCE,
> +
> + /* address space assigned to buses behind the bridge */
> +#ifndef PCI_BRIDGE_RES_NUM
> +#define PCI_BRIDGE_RES_NUM 4
> +#endif
Is there any intention to ever set PCI_BRIDGE_RES_NUM to any
value other than 4? I'm confused about why it is protected
by #ifndef as I can't find it declared anywhere else.
> + PCI_BRIDGE_RESOURCES,
> + PCI_BRIDGE_RES_END = PCI_BRIDGE_RESOURCES + PCI_BRIDGE_RES_NUM - 1,
> +
> + /* total resources associated with a PCI device */
> + PCI_NUM_RESOURCES,
> +
> + /* preserve this for compatibility */
> + DEVICE_COUNT_RESOURCE
> +};
>
> typedef int __bitwise pci_power_t;
>
> @@ -262,18 +285,6 @@ static inline void pci_add_saved_cap(struct pci_dev *pci_dev,
> hlist_add_head(&new_cap->next, &pci_dev->saved_cap_space);
> }
>
> -/*
> - * For PCI devices, the region numbers are assigned this way:
> - *
> - * 0-5 standard PCI regions
> - * 6 expansion ROM
> - * 7-10 bridges: address space assigned to buses behind the bridge
> - */
> -
> -#define PCI_ROM_RESOURCE 6
> -#define PCI_BRIDGE_RESOURCES 7
> -#define PCI_NUM_RESOURCES 11
> -
> #ifndef PCI_BUS_NUM_RESOURCES
> #define PCI_BUS_NUM_RESOURCES 16
> #endif
--
Simon Horman
VA Linux Systems Japan K.K., Sydney, Australia Satellite Office
H: www.vergenet.net/~horms/ W: www.valinux.co.jp/en
next prev parent reply other threads:[~2008-11-14 0:43 UTC|newest]
Thread overview: 237+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-22 8:38 [PATCH 0/16 v6] PCI: Linux kernel SR-IOV support Yu Zhao
2008-10-22 8:40 ` [PATCH 1/16 v6] PCI: remove unnecessary arg of pci_update_resource() Yu Zhao
2008-10-22 8:40 ` Yu Zhao
2008-10-22 8:40 ` [PATCH 2/16 v6] PCI: define PCI resource names in an 'enum' Yu Zhao
2008-10-22 8:40 ` Yu Zhao
2008-10-22 14:24 ` Bjorn Helgaas
2008-10-22 14:24 ` Bjorn Helgaas
2008-10-22 14:44 ` Yu Zhao
2008-10-22 14:44 ` Yu Zhao
2008-10-22 14:51 ` Bjorn Helgaas
2008-10-22 14:53 ` Yu Zhao
2008-10-22 14:53 ` Yu Zhao
2008-10-22 14:51 ` Bjorn Helgaas
2008-11-14 0:43 ` Simon Horman [this message]
2008-10-22 8:41 ` [PATCH 3/16 v6] PCI: export __pci_read_base Yu Zhao
2008-10-22 8:41 ` Yu Zhao
2008-10-22 8:41 ` [PATCH 4/16 v6] PCI: make pci_alloc_child_bus() be able to handle NULL bridge Yu Zhao
2008-10-22 8:41 ` Yu Zhao
2008-10-22 8:41 ` [PATCH 5/16 v6] PCI: add a wrapper for resource_alignment() Yu Zhao
2008-10-22 8:41 ` Yu Zhao
2008-10-22 8:42 ` [PATCH 6/16 v6] PCI: add a new function to map BAR offset Yu Zhao
2008-10-22 8:42 ` Yu Zhao
2008-10-22 8:42 ` [PATCH 7/16 v6] PCI: cleanup pcibios_allocate_resources() Yu Zhao
2008-10-22 8:42 ` Yu Zhao
2008-10-23 7:10 ` Yinghai Lu
2008-10-23 6:50 ` Yu Zhao
2008-10-23 6:50 ` Yu Zhao
2008-10-23 7:10 ` Yinghai Lu
2008-10-22 8:43 ` [PATCH 8/16 v6] PCI: add boot options to reassign resources Yu Zhao
2008-10-22 8:43 ` Yu Zhao
2008-10-22 14:35 ` Bjorn Helgaas
2008-10-22 14:49 ` Yu Zhao
2008-10-22 14:49 ` Yu Zhao
2008-10-22 14:35 ` Bjorn Helgaas
2008-10-22 8:43 ` [PATCH 9/16 v6] PCI: add boot option to align MMIO resources Yu Zhao
2008-10-22 14:34 ` Bjorn Helgaas
2008-10-22 14:52 ` Yu Zhao
2008-10-22 14:52 ` Yu Zhao
2008-10-22 14:34 ` Bjorn Helgaas
2008-10-22 8:43 ` Yu Zhao
2008-10-22 8:43 ` [PATCH 10/16 v6] PCI: cleanup pci_bus_add_devices() Yu Zhao
2008-10-22 8:43 ` Yu Zhao
2008-10-22 8:44 ` [PATCH 11/16 v6] PCI: split a new function from pci_bus_add_devices() Yu Zhao
2008-10-22 8:44 ` Yu Zhao
2008-10-22 8:44 ` [PATCH 12/16 v6] PCI: support the SR-IOV capability Yu Zhao
2008-10-22 8:44 ` Yu Zhao
2008-10-22 8:44 ` [PATCH 13/16 v6] PCI: reserve bus range for SR-IOV device Yu Zhao
2008-10-22 8:44 ` Yu Zhao
2008-10-22 8:45 ` [PATCH 14/16 v6] PCI: document for SR-IOV user and developer Yu Zhao
2008-10-22 8:45 ` Yu Zhao
2008-10-22 8:45 ` [PATCH 15/16 v6] PCI: document the SR-IOV sysfs entries Yu Zhao
2008-11-06 4:33 ` Greg KH
2008-11-06 4:33 ` Greg KH
2008-11-06 4:46 ` Greg KH
2008-11-06 4:46 ` Greg KH
2008-11-07 3:01 ` Zhao, Yu
2008-11-07 3:01 ` Zhao, Yu
2008-11-07 3:18 ` Greg KH
2008-11-13 6:50 ` Yu Zhao
2008-11-14 0:55 ` Greg KH
2008-11-17 8:09 ` Yu Zhao
2008-11-18 15:05 ` Greg KH
2008-11-18 15:05 ` Greg KH
2008-11-18 16:49 ` Kay Sievers
2008-11-18 16:49 ` Kay Sievers
2008-11-17 8:09 ` Yu Zhao
2008-11-13 6:50 ` Yu Zhao
2008-11-07 3:18 ` Greg KH
2008-10-22 8:45 ` Yu Zhao
2008-10-22 8:45 ` [PATCH 16/16 v6] PCI: document the new PCI boot parameters Yu Zhao
2008-10-22 14:27 ` Bjorn Helgaas
2008-10-22 17:01 ` Randy Dunlap
2008-10-22 17:01 ` Randy Dunlap
2008-10-22 14:27 ` Bjorn Helgaas
2008-11-06 4:32 ` Greg KH
2008-11-06 4:32 ` Greg KH
2008-11-07 2:37 ` Zhao, Yu
2008-11-07 2:37 ` Zhao, Yu
2008-11-07 2:50 ` Greg KH
2008-11-07 3:40 ` Zhao, Yu
2008-11-07 3:40 ` Zhao, Yu
2008-11-07 4:17 ` Matthew Wilcox
2008-12-11 1:43 ` Yu Zhao
2008-12-11 1:43 ` Yu Zhao
2008-12-11 4:33 ` Grant Grundler
2008-12-11 4:33 ` Grant Grundler
2008-12-11 15:39 ` H L
2008-12-11 15:39 ` H L
2008-11-07 4:17 ` Matthew Wilcox
2008-11-07 6:16 ` Greg KH
2008-11-07 7:50 ` Zhao, Yu
2008-11-07 8:02 ` Greg KH
2008-11-07 8:17 ` Zhao, Yu
2008-11-07 8:17 ` Zhao, Yu
2008-11-07 8:24 ` Greg KH
2008-11-07 8:24 ` Greg KH
2008-11-07 8:35 ` Zhao, Yu
2008-11-07 8:35 ` Zhao, Yu
2008-11-07 18:53 ` Greg KH
2008-11-08 5:00 ` Yu Zhao
2008-11-08 5:25 ` Greg KH
2008-11-08 5:25 ` Greg KH
2008-11-08 6:05 ` Yu Zhao
2008-11-08 6:05 ` Yu Zhao
2008-11-08 5:50 ` freevanx
2008-11-08 5:54 ` Greg KH
2008-11-08 5:54 ` Greg KH
2008-11-08 5:00 ` Yu Zhao
2008-11-07 18:53 ` Greg KH
2008-11-07 8:02 ` Greg KH
2008-11-07 7:50 ` Zhao, Yu
2008-11-09 14:19 ` Pavel Machek
2008-11-09 14:19 ` Pavel Machek
2008-11-09 14:34 ` Alexander Graf
2008-11-09 14:34 ` Alexander Graf
2008-11-07 6:16 ` Greg KH
2008-11-07 2:50 ` Greg KH
2008-10-22 8:45 ` Yu Zhao
2008-11-06 4:48 ` [PATCH 0/16 v6] PCI: Linux kernel SR-IOV support Greg KH
2008-11-06 15:40 ` H L
2008-11-06 15:40 ` H L
2008-11-06 15:43 ` Greg KH
2008-11-06 15:43 ` Greg KH
2008-11-06 16:41 ` H L
2008-11-06 16:49 ` Greg KH
2008-11-06 17:38 ` Fischer, Anna
2008-11-06 18:03 ` Greg KH
2008-11-06 20:04 ` Fischer, Anna
2008-11-06 20:04 ` Fischer, Anna
2008-11-09 12:44 ` Avi Kivity
2008-11-09 12:44 ` Avi Kivity
2008-11-09 19:25 ` Greg KH
2008-11-09 19:37 ` Avi Kivity
2008-11-09 19:37 ` Avi Kivity
2008-11-11 6:08 ` Greg KH
2008-11-11 6:08 ` Greg KH
2008-11-11 9:00 ` Avi Kivity
2008-11-11 9:00 ` Avi Kivity
2008-11-09 19:25 ` Greg KH
2008-11-06 18:03 ` Greg KH
2008-11-06 18:36 ` Matthew Wilcox
2008-11-06 18:36 ` Matthew Wilcox
2008-11-06 22:38 ` Anthony Liguori
2008-11-06 22:38 ` Anthony Liguori
2008-11-06 22:58 ` Matthew Wilcox
2008-11-07 6:19 ` Greg KH
2008-11-07 15:17 ` Yu Zhao
2008-11-07 18:48 ` Greg KH
2008-11-07 18:48 ` Greg KH
2008-11-08 11:09 ` Fischer, Anna
2008-11-08 11:09 ` Fischer, Anna
2008-11-08 15:37 ` Leonid Grossman
2008-11-08 15:37 ` Leonid Grossman
2008-11-08 11:09 ` Fischer, Anna
2008-11-13 7:49 ` Yu Zhao
2008-11-13 7:49 ` Yu Zhao
2008-11-13 7:49 ` Yu Zhao
2008-11-07 15:17 ` Yu Zhao
2008-11-07 6:19 ` Greg KH
2008-11-09 12:47 ` Avi Kivity
2008-11-09 12:47 ` Avi Kivity
2008-11-06 22:58 ` Matthew Wilcox
2008-11-07 1:52 ` Dong, Eddie
2008-11-07 1:52 ` Dong, Eddie
2008-11-07 2:08 ` Nakajima, Jun
2008-11-07 2:08 ` Nakajima, Jun
2008-11-07 15:21 ` Andi Kleen
2008-11-12 22:41 ` Anthony Liguori
2008-11-16 16:04 ` Avi Kivity
2008-11-17 1:46 ` Zhao, Yu
2008-11-17 1:46 ` Zhao, Yu
2008-11-16 16:04 ` Avi Kivity
2008-11-12 22:41 ` Anthony Liguori
2008-11-07 15:21 ` Andi Kleen
2008-11-09 12:53 ` Avi Kivity
2008-11-09 12:53 ` Avi Kivity
2008-11-07 16:01 ` Yu Zhao
2008-11-07 16:01 ` Yu Zhao
2008-11-06 17:38 ` Fischer, Anna
2008-11-06 17:47 ` Matthew Wilcox
2008-11-06 17:53 ` Greg KH
2008-11-06 17:53 ` Greg KH
2008-11-06 22:24 ` Simon Horman
2008-11-06 22:24 ` Simon Horman
2008-11-06 22:40 ` Anthony Liguori
2008-11-07 6:17 ` Greg KH
2008-11-07 6:17 ` Greg KH
2008-11-07 7:47 ` Zhao, Yu
2008-11-11 0:18 ` Rusty Russell
2008-11-17 12:01 ` Yu Zhao
2008-11-17 12:01 ` Yu Zhao
2008-11-07 7:47 ` Zhao, Yu
2008-11-09 12:58 ` Avi Kivity
2008-11-09 12:58 ` Avi Kivity
2008-11-09 6:41 ` Muli Ben-Yehuda
2008-11-09 13:03 ` Avi Kivity
2008-11-09 13:03 ` Avi Kivity
2008-11-09 6:41 ` Muli Ben-Yehuda
2008-11-06 22:40 ` Anthony Liguori
2008-11-06 23:54 ` Chris Wright
2008-11-06 23:54 ` Chris Wright
2008-11-07 6:10 ` Greg KH
2008-11-07 6:10 ` Greg KH
2008-11-07 7:06 ` Zhao, Yu
2008-11-07 7:29 ` Leonid Grossman
2008-11-07 7:29 ` Leonid Grossman
2008-11-07 7:06 ` Zhao, Yu
2008-11-06 17:47 ` Matthew Wilcox
2008-11-06 18:05 ` H L
2008-11-06 18:05 ` H L
2008-11-06 18:24 ` Greg KH
2008-11-06 21:35 ` Fischer, Anna
2008-11-07 6:18 ` Greg KH
2008-11-07 6:03 ` Zhao, Yu
2008-11-07 6:03 ` Zhao, Yu
2008-11-06 18:24 ` Greg KH
2008-11-06 16:49 ` Greg KH
2008-11-06 16:41 ` H L
2008-11-06 16:51 ` git repository for SR-IOV development? H L
2008-11-06 16:51 ` H L
2008-11-06 16:51 ` H L
2008-11-06 16:59 ` Greg KH
2008-11-06 19:58 ` H L
2008-11-06 19:58 ` H L
2008-11-06 22:56 ` Simon Horman
2008-11-06 22:56 ` Simon Horman
2008-11-06 22:56 ` Simon Horman
2008-11-07 1:58 ` Greg KH
2008-11-07 1:58 ` Greg KH
2008-11-07 13:09 ` Yu Zhao
2008-11-07 13:09 ` Yu Zhao
2008-11-06 16:59 ` Greg KH
2008-11-07 5:18 ` [PATCH 0/16 v6] PCI: Linux kernel SR-IOV support Zhao, Yu
2008-11-07 5:18 ` Zhao, Yu
2008-11-07 6:07 ` Greg KH
2008-11-07 6:07 ` Greg KH
2008-11-06 4:48 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081114004308.GA10905@verge.net.au \
--to=horms@verge.net.au \
--cc=achiang@hp.com \
--cc=greg@kroah.com \
--cc=grundler@parisc-linux.org \
--cc=jbarnes@virtuousgeek.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=matthew@wil.cx \
--cc=mingo@elte.hu \
--cc=randy.dunlap@oracle.com \
--cc=rdreier@cisco.com \
--cc=virtualization@lists.linux-foundation.org \
--cc=yu.zhao@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.