WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Linux options pci-mem-align vs. reassigndev=

To: Keir Fraser <keir.fraser@xxxxxxxxxx>, "Jan Beulich" <jbeulich@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-devel] Linux options pci-mem-align vs. reassigndev=
From: Yuji Shimada <shimada-yxb@xxxxxxxxxxxxxxx>
Date: Wed, 22 Oct 2008 11:39:25 +0900
Cc:
Delivery-date: Tue, 21 Oct 2008 19:39:54 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <48FDD19C.76E4.0078.0@xxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <48FDD19C.76E4.0078.0@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Tue, 21 Oct 2008 11:57:00 +0100
"Jan Beulich" <jbeulich@xxxxxxxxxx> wrote:

> Isn't the latter superior to the former (as it works on individual devices 
> rather
> than globally), and couldn't the former hence be removed again?

This patch removes "pci-mem-align" option from dom0 linux.

Thanks,
--
Yuji Shimada

Signed-off-by: Yuji Shimada <shimada-yxb@xxxxxxxxxxxxxxx>


diff -r 240657899772 drivers/pci/bus.c
--- a/drivers/pci/bus.c Fri Oct 17 12:02:53 2008 +0100
+++ b/drivers/pci/bus.c Mon Oct 20 15:41:10 2008 +0900
@@ -16,8 +16,6 @@
 #include <linux/init.h>
 
 #include "pci.h"
-
-extern int pci_mem_align;
 
 /**
  * pci_bus_alloc_resource - allocate a resource from a parent bus
@@ -45,11 +43,6 @@ pci_bus_alloc_resource(struct pci_bus *b
        int i, ret = -ENOMEM;
 
        type_mask |= IORESOURCE_IO | IORESOURCE_MEM;
-
-       /* If the boot parameter 'pci-mem-align' was specified then we need to 
-          align the memory addresses, at page size alignment. */
-       if (pci_mem_align && (align < (PAGE_SIZE-1)))
-               align = PAGE_SIZE - 1;
 
        for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) {
                struct resource *r = bus->resource[i];
diff -r 240657899772 drivers/pci/quirks.c
--- a/drivers/pci/quirks.c      Fri Oct 17 12:02:53 2008 +0100
+++ b/drivers/pci/quirks.c      Mon Oct 20 15:41:10 2008 +0900
@@ -23,25 +23,17 @@
 #include <linux/acpi.h>
 #include "pci.h"
 
-/* A global flag which signals if we should page-align PCI mem windows. */
-int pci_mem_align = 0;
 
-static int __init set_pci_mem_align(char *str)
-{
-       pci_mem_align = 1;
-       return 1;
-}
-__setup("pci-mem-align", set_pci_mem_align);
-
-
-/* This quirk function enables us to force all memory resources which are 
- * assigned to PCI devices, to be page-aligned.
+/*
+ * This quirk function disables the device and releases resources
+ * which is specified by kernel's boot parameter 'reassigndev'.
+ * Later on, kernel will assign page-aligned memory resource back
+ * to that device.
  */
-static void __devinit quirk_align_mem_resources(struct pci_dev *dev)
+static void __devinit quirk_release_resources(struct pci_dev *dev)
 {
        int i;
        struct resource *r;
-       resource_size_t old_start;
 
        if (is_reassigndev(dev)) {
                if (dev->hdr_type == PCI_HEADER_TYPE_NORMAL &&
@@ -76,21 +68,8 @@ static void __devinit quirk_align_mem_re
                }
                return;
        }
-
-       if (!pci_mem_align)
-               return;
-
-       for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-               r = &dev->resource[i];
-               if ((r == NULL) || !(r->flags & IORESOURCE_MEM))
-                       continue;
-
-               old_start = r->start;
-               r->start = (r->start + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1);
-               r->end = r->end - (old_start - r->start);
-       }
 }
-DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, quirk_align_mem_resources);
+DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, quirk_release_resources);
 
 /* The Mellanox Tavor device gives false positive parity errors
  * Mark this device with a broken_parity_status, to allow


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>