From: "Zhao, Yu" <yu.zhao@intel.com>
To: Jan Beulich <jbeulich@novell.com>
Cc: "xen-devel@lists.xensource.com ; keir.fraser@eu.citrix.com"
<xen-devel@lists.xensource.com>
Subject: Re: [PATCH] conditionalize PCI reassign code
Date: Fri, 17 Oct 2008 10:43:53 +0800 [thread overview]
Message-ID: <48F7FBE9.6030207@intel.com> (raw)
In-Reply-To: <48F4BD46.76E4.0078.0@novell.com>
There is build error (c/s 701) with this patch, please take a look.
Thanks.
Jan Beulich wrote:
> ... by a config option, selected only from privileged Xen configurations.
>
> Also eliminate the pointless new macro ROUND_UP_TO_PAGESIZE().
>
> Finally, I'm not really understanding the need for two command line
> options (reassigndev= and reassign_resources) here - wouldn't the
> former suffice? Specifying one without the other doesn't seem to make
> much sense...
>
> As usual, written and tested on 2.6.27 and made apply to the 2.6.18
> tree without further testing.
>
> Signed-off-by: Jan Beulich <jbeulich@novell.com>
>
> Index: head-2008-10-13/drivers/pci/Kconfig
> ===================================================================
> --- head-2008-10-13.orig/drivers/pci/Kconfig 2008-10-13 15:11:33.000000000 +0200
> +++ head-2008-10-13/drivers/pci/Kconfig 2008-10-13 15:14:53.000000000 +0200
> @@ -21,6 +21,9 @@ config PCI_MSI
>
> If you don't know what to do here, say N.
>
> +config PCI_REASSIGN
> + bool
> +
> config PCI_DEBUG
> bool "PCI Debugging"
> depends on PCI && DEBUG_KERNEL
> Index: head-2008-10-13/drivers/pci/Makefile
> ===================================================================
> --- head-2008-10-13.orig/drivers/pci/Makefile 2008-10-13 15:11:33.000000000 +0200
> +++ head-2008-10-13/drivers/pci/Makefile 2008-10-13 15:14:53.000000000 +0200
> @@ -3,8 +3,8 @@
> #
>
> obj-y += access.o bus.o probe.o remove.o pci.o quirks.o \
> - pci-driver.o search.o pci-sysfs.o rom.o setup-res.o \
> - reassigndev.o
> + pci-driver.o search.o pci-sysfs.o rom.o setup-res.o
> +obj-$(CONFIG_PCI_REASSIGN) += reassigndev.o
> obj-$(CONFIG_PROC_FS) += proc.o
>
> # Build PCI Express stuff if needed
> Index: head-2008-10-13/drivers/pci/pci.h
> ===================================================================
> --- head-2008-10-13.orig/drivers/pci/pci.h 2008-10-13 15:11:33.000000000 +0200
> +++ head-2008-10-13/drivers/pci/pci.h 2008-10-13 15:14:53.000000000 +0200
> @@ -144,8 +144,11 @@ struct pci_slot_attribute {
> return NULL;
> }
>
> -#define ROUND_UP_TO_PAGESIZE(size) ((size + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1))
> -
> +#ifdef CONFIG_PCI_REASSIGN
> extern int reassign_resources;
> extern int is_reassigndev(struct pci_dev *dev);
> extern void pci_update_bridge(struct pci_dev *dev, int resno);
> +#else
> +#define reassign_resources 0
> +#define is_reassigndev(dev) 0
> +#endif
> Index: head-2008-10-13/drivers/pci/setup-bus.c
> ===================================================================
> --- head-2008-10-13.orig/drivers/pci/setup-bus.c 2008-10-13 15:11:33.000000000 +0200
> +++ head-2008-10-13/drivers/pci/setup-bus.c 2008-10-13 15:14:53.000000000 +0200
> @@ -354,9 +354,8 @@ static int pbus_size_mem(struct pci_bus
> continue;
> r_size = r->end - r->start + 1;
>
> - if (reassign) {
> - r_size = ROUND_UP_TO_PAGESIZE(r_size);
> - }
> + if (reassign)
> + r_size = ALIGN(r_size, PAGE_SIZE);
>
> /* For bridges size != alignment */
> align = (i < PCI_BRIDGE_RESOURCES) ? r_size : r->start;
> Index: head-2008-10-13/drivers/pci/setup-res.c
> ===================================================================
> --- head-2008-10-13.orig/drivers/pci/setup-res.c 2008-10-13 15:11:33.000000000 +0200
> +++ head-2008-10-13/drivers/pci/setup-res.c 2008-10-13 15:14:53.000000000 +0200
> @@ -126,7 +126,8 @@ pci_claim_resource(struct pci_dev *dev,
> }
> EXPORT_SYMBOL_GPL(pci_claim_resource);
>
> -void
> +#ifdef CONFIG_PCI_REASSIGN
> +void
> pci_update_bridge(struct pci_dev *dev, int resno)
> {
> struct resource *res = &dev->resource[resno];
> @@ -193,6 +194,7 @@ pci_update_bridge(struct pci_dev *dev, i
> break;
> }
> }
> +#endif
>
> int pci_assign_resource(struct pci_dev *dev, int resno)
> {
> @@ -215,7 +217,7 @@ int pci_assign_resource(struct pci_dev *
> align = size;
> if ((reassigndev) &&
> (res->flags & IORESOURCE_MEM)) {
> - align = ROUND_UP_TO_PAGESIZE(align);
> + align = ALIGN(align, PAGE_SIZE);
> }
> } else {
> align = res->start;
> @@ -242,9 +244,11 @@ int pci_assign_resource(struct pci_dev *
> resno, (unsigned long long)size,
> (unsigned long long)res->start, pci_name(dev));
> } else if (resno < PCI_BRIDGE_RESOURCES) {
> - printk(KERN_DEBUG "PCI: Assign resource(%d) on %s "
> - "%016llx - %016llx\n", resno, pci_name(dev),
> - (u64)res->start, (u64)res->end);
> + if (reassign_resources && is_reassigndev(dev))
> + printk(KERN_DEBUG "PCI: Assign resource(%d) on %s "
> + "%016llx - %016llx\n", resno, pci_name(dev),
> + (unsigned long long)res->start,
> + (unsigned long long)res->end);
> pci_update_resource(dev, res, resno);
> }
>
> Index: head-2008-10-13/drivers/xen/Kconfig
> ===================================================================
> --- head-2008-10-13.orig/drivers/xen/Kconfig 2008-10-13 15:14:34.000000000 +0200
> +++ head-2008-10-13/drivers/xen/Kconfig 2008-10-13 15:16:22.000000000 +0200
> @@ -16,6 +16,7 @@ menu "XEN"
>
> config XEN_PRIVILEGED_GUEST
> bool "Privileged Guest (domain 0)"
> + select PCI_REASSIGN if PCI
> help
> Support for privileged operation (domain 0)
>
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
next prev parent reply other threads:[~2008-10-17 2:43 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-14 13:39 [PATCH] conditionalize PCI reassign code Jan Beulich
2008-10-15 7:56 ` Yuji Shimada
2008-10-15 15:14 ` Yu Zhao
2008-10-17 2:43 ` Zhao, Yu [this message]
2008-10-17 7:17 ` Jan Beulich
2008-10-17 7:22 ` Keir Fraser
2008-10-17 7:27 ` Jan Beulich
2008-10-17 7:27 ` Zhao, Yu
2008-10-17 7:34 ` Keir Fraser
2008-10-17 7:38 ` Zhao, Yu
2008-10-17 8:46 ` Jan Beulich
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=48F7FBE9.6030207@intel.com \
--to=yu.zhao@intel.com \
--cc=jbeulich@novell.com \
--cc=xen-devel@lists.xensource.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.