From: Yinghai Lu <yinghai@kernel.org>
To: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>,
Jesse Barnes <jbarnes@virtuousgeek.org>,
Alex Chiang <achiang@hp.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
Ivan Kokshaysky <ink@jurassic.park.msu.ru>,
Bjorn Helgaas <bjorn.helgaas@hp.com>,
"Eric W. Biederman" <ebiederm@xmission.com>,
Ingo Molnar <mingo@elte.hu>
Subject: [PATCH 4/4] pci: remove min_size for hotplug bridge
Date: Tue, 27 Oct 2009 01:10:26 -0700 [thread overview]
Message-ID: <4AE6AAF2.7010402@kernel.org> (raw)
In-Reply-To: <4AE6A9CA.4060106@kernel.org>
revert
| commit 28760489a3f1e136c5ae8581c0fa8f63511f2f4c
| Author: Eric W. Biederman <ebiederm@aristanetworks.com>
| Date: Wed Sep 9 14:09:24 2009 -0700
|
| PCI: pcie: Ensure hotplug ports have a minimum number of resources
we don't need this trick anymore. the bridge BAR will be updated automatically
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
---
drivers/pci/pci.c | 10 ----------
drivers/pci/probe.c | 18 ------------------
drivers/pci/setup-bus.c | 22 +++++-----------------
include/linux/pci.h | 4 ----
4 files changed, 5 insertions(+), 49 deletions(-)
Index: linux-2.6/drivers/pci/pci.c
===================================================================
--- linux-2.6.orig/drivers/pci/pci.c
+++ linux-2.6/drivers/pci/pci.c
@@ -41,12 +41,6 @@ int pci_domains_supported = 1;
unsigned long pci_cardbus_io_size = DEFAULT_CARDBUS_IO_SIZE;
unsigned long pci_cardbus_mem_size = DEFAULT_CARDBUS_MEM_SIZE;
-#define DEFAULT_HOTPLUG_IO_SIZE (256)
-#define DEFAULT_HOTPLUG_MEM_SIZE (2*1024*1024)
-/* pci=hpmemsize=nnM,hpiosize=nn can override this */
-unsigned long pci_hotplug_io_size = DEFAULT_HOTPLUG_IO_SIZE;
-unsigned long pci_hotplug_mem_size = DEFAULT_HOTPLUG_MEM_SIZE;
-
/*
* The default CLS is used if arch didn't set CLS explicitly and not
* all pci devices agree on the same value. Arch can override either
@@ -2787,10 +2781,6 @@ static int __init pci_setup(char *str)
strlen(str + 19));
} else if (!strncmp(str, "ecrc=", 5)) {
pcie_ecrc_get_policy(str + 5);
- } else if (!strncmp(str, "hpiosize=", 9)) {
- pci_hotplug_io_size = memparse(str + 9, &str);
- } else if (!strncmp(str, "hpmemsize=", 10)) {
- pci_hotplug_mem_size = memparse(str + 10, &str);
} else {
printk(KERN_ERR "PCI: Unknown option `%s'\n",
str);
Index: linux-2.6/drivers/pci/probe.c
===================================================================
--- linux-2.6.orig/drivers/pci/probe.c
+++ linux-2.6/drivers/pci/probe.c
@@ -689,23 +689,6 @@ static void set_pcie_port_type(struct pc
pdev->pcie_type = (reg16 & PCI_EXP_FLAGS_TYPE) >> 4;
}
-static void set_pcie_hotplug_bridge(struct pci_dev *pdev)
-{
- int pos;
- u16 reg16;
- u32 reg32;
-
- pos = pci_find_capability(pdev, PCI_CAP_ID_EXP);
- if (!pos)
- return;
- pci_read_config_word(pdev, pos + PCI_EXP_FLAGS, ®16);
- if (!(reg16 & PCI_EXP_FLAGS_SLOT))
- return;
- pci_read_config_dword(pdev, pos + PCI_EXP_SLTCAP, ®32);
- if (reg32 & PCI_EXP_SLTCAP_HPC)
- pdev->is_hotplug_bridge = 1;
-}
-
#define LEGACY_IO_RESOURCE (IORESOURCE_IO | IORESOURCE_PCI_FIXED)
/**
@@ -813,7 +796,6 @@ int pci_setup_device(struct pci_dev *dev
pci_read_irq(dev);
dev->transparent = ((dev->class & 0xff) == 1);
pci_read_bases(dev, 2, PCI_ROM_ADDRESS1);
- set_pcie_hotplug_bridge(dev);
break;
case PCI_HEADER_TYPE_CARDBUS: /* CardBus bridge header */
Index: linux-2.6/drivers/pci/setup-bus.c
===================================================================
--- linux-2.6.orig/drivers/pci/setup-bus.c
+++ linux-2.6/drivers/pci/setup-bus.c
@@ -375,7 +375,7 @@ static struct resource *find_free_bus_re
since these windows have 4K granularity and the IO ranges
of non-bridge PCI devices are limited to 256 bytes.
We must be careful with the ISA aliasing though. */
-static void pbus_size_io(struct pci_bus *bus, resource_size_t min_size)
+static void pbus_size_io(struct pci_bus *bus)
{
struct pci_dev *dev;
struct resource *b_res = find_free_bus_resource(bus, IORESOURCE_IO);
@@ -402,8 +402,6 @@ static void pbus_size_io(struct pci_bus
size1 += r_size;
}
}
- if (size < min_size)
- size = min_size;
/* To be fixed in 2.5: we should have sort of HAVE_ISA
flag in the struct pci_bus. */
#if defined(CONFIG_ISA) || defined(CONFIG_EISA)
@@ -422,8 +420,7 @@ static void pbus_size_io(struct pci_bus
/* Calculate the size of the bus and minimal alignment which
guarantees that all child resources fit in this size. */
-static int pbus_size_mem(struct pci_bus *bus, unsigned long mask,
- unsigned long type, resource_size_t min_size)
+static int pbus_size_mem(struct pci_bus *bus, unsigned long mask, unsigned long type)
{
struct pci_dev *dev;
resource_size_t min_align, align, size;
@@ -473,8 +470,6 @@ static int pbus_size_mem(struct pci_bus
mem64_mask &= r->flags & IORESOURCE_MEM_64;
}
}
- if (size < min_size)
- size = min_size;
align = 0;
min_align = 0;
@@ -554,7 +549,6 @@ void __ref pci_bus_size_bridges(struct p
{
struct pci_dev *dev;
unsigned long mask, prefmask;
- resource_size_t min_mem_size = 0, min_io_size = 0;
list_for_each_entry(dev, &bus->devices, bus_list) {
struct pci_bus *b = dev->subordinate;
@@ -584,12 +578,8 @@ void __ref pci_bus_size_bridges(struct p
case PCI_CLASS_BRIDGE_PCI:
pci_bridge_check_ranges(bus);
- if (bus->self->is_hotplug_bridge) {
- min_io_size = pci_hotplug_io_size;
- min_mem_size = pci_hotplug_mem_size;
- }
default:
- pbus_size_io(bus, min_io_size);
+ pbus_size_io(bus);
/* If the bridge supports prefetchable range, size it
separately. If it doesn't, or its prefetchable window
has already been allocated by arch code, try
@@ -597,11 +587,9 @@ void __ref pci_bus_size_bridges(struct p
resources. */
mask = IORESOURCE_MEM;
prefmask = IORESOURCE_MEM | IORESOURCE_PREFETCH;
- if (pbus_size_mem(bus, prefmask, prefmask, min_mem_size))
+ if (pbus_size_mem(bus, prefmask, prefmask))
mask = prefmask; /* Success, size non-prefetch only. */
- else
- min_mem_size += min_mem_size;
- pbus_size_mem(bus, mask, IORESOURCE_MEM, min_mem_size);
+ pbus_size_mem(bus, mask, IORESOURCE_MEM);
break;
}
}
Index: linux-2.6/include/linux/pci.h
===================================================================
--- linux-2.6.orig/include/linux/pci.h
+++ linux-2.6/include/linux/pci.h
@@ -279,7 +279,6 @@ struct pci_dev {
unsigned int is_physfn:1;
unsigned int is_virtfn:1;
unsigned int reset_fn:1;
- unsigned int is_hotplug_bridge:1;
pci_dev_flags_t dev_flags;
atomic_t enable_cnt; /* pci_enable_device has been called */
@@ -1256,9 +1255,6 @@ extern unsigned long pci_cardbus_mem_siz
extern u8 pci_dfl_cache_line_size;
extern u8 pci_cache_line_size;
-extern unsigned long pci_hotplug_io_size;
-extern unsigned long pci_hotplug_mem_size;
-
int pcibios_add_platform_entries(struct pci_dev *dev);
void pcibios_disable_device(struct pci_dev *dev);
int pcibios_set_pcie_reset_state(struct pci_dev *dev,
next prev parent reply other threads:[~2009-10-27 8:11 UTC|newest]
Thread overview: 129+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-21 7:19 [PATCH] pci: pciehp update the slot bridge res to get big range for pcie devices Yinghai Lu
2009-10-21 18:57 ` Alex Chiang
2009-10-22 0:29 ` [PATCH] pci: pciehp update the slot bridge res to get big range for pcie devices - v2 Yinghai Lu
2009-10-26 4:54 ` [PATCH] pci: pciehp update the slot bridge res to get big range for pcie devices Kenji Kaneshige
2009-10-26 5:49 ` Yinghai Lu
2009-10-26 7:48 ` Kenji Kaneshige
2009-10-26 8:25 ` Yinghai Lu
2009-10-26 10:27 ` Kenji Kaneshige
2009-10-26 17:59 ` Yinghai Lu
2009-10-26 18:52 ` Yinghai Lu
2009-10-28 8:31 ` Kenji Kaneshige
2009-10-28 17:44 ` Yinghai Lu
2009-10-28 17:52 ` Bjorn Helgaas
2009-10-28 18:37 ` Yinghai Lu
2009-10-28 19:00 ` Eric W. Biederman
2009-10-28 19:12 ` Yinghai Lu
2009-10-28 19:36 ` Eric W. Biederman
2009-10-28 19:50 ` Yinghai Lu
2009-10-28 21:30 ` Eric W. Biederman
2009-10-28 21:39 ` Yinghai Lu
2009-10-28 22:25 ` Yinghai Lu
2009-10-28 22:26 ` Yinghai Lu
2009-10-29 8:16 ` Eric W. Biederman
2009-10-29 9:03 ` Yinghai Lu
2009-10-29 15:43 ` Eric W. Biederman
2009-10-29 17:00 ` Yinghai Lu
2009-10-29 19:48 ` Eric W. Biederman
2009-10-29 19:55 ` Yinghai Lu
2009-10-30 8:36 ` [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v8 Yinghai Lu
2009-10-30 8:37 ` [PATCH 2/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v8 Yinghai Lu
2009-11-10 8:00 ` [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v8 Kenji Kaneshige
2009-10-29 13:21 ` [PATCH] pci: pciehp update the slot bridge res to get big range for pcie devices Bjorn Helgaas
2009-10-29 15:13 ` Eric W. Biederman
2009-10-29 15:43 ` Bjorn Helgaas
2009-10-29 19:28 ` Eric W. Biederman
2009-10-29 19:36 ` Bjorn Helgaas
[not found] ` <4AE89933.8030809@kernel.org>
2009-10-28 19:20 ` [PATCH 2/2] pci: only release that resource index is less than 3 -v5 Yinghai Lu
2009-10-29 6:34 ` Kenji Kaneshige
2009-10-29 9:03 ` Yinghai Lu
2009-10-28 19:21 ` [PATCH 1/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v4 Yinghai Lu
2009-10-29 8:28 ` Kenji Kaneshige
2009-10-29 8:30 ` Yinghai Lu
2009-10-29 8:55 ` Kenji Kaneshige
2009-10-29 8:57 ` Yinghai Lu
2009-10-29 9:52 ` [PATCH 1/2] pci: release that leaf bridge' resource index is not used -v6 Yinghai Lu
2009-10-29 16:31 ` Jesse Barnes
2009-10-29 17:10 ` Yinghai Lu
2009-10-29 17:51 ` Jesse Barnes
[not found] ` <4AE9657F.7010302@kernel.org>
2009-10-29 9:52 ` [PATCH 2/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v5 Yinghai Lu
2009-11-04 17:30 ` Jesse Barnes
2009-11-04 18:52 ` Yinghai Lu
2009-11-05 1:40 ` [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v9 Yinghai Lu
2009-11-05 1:40 ` [PATCH 2/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v9 Yinghai Lu
2009-11-05 20:47 ` Alex Chiang
2009-11-05 21:06 ` Yinghai Lu
2009-11-07 5:41 ` [PATCH 2/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v10 Yinghai Lu
2009-11-07 5:43 ` Yinghai Lu
2009-11-10 8:07 ` Kenji Kaneshige
2009-11-10 9:48 ` Yinghai Lu
2009-11-13 6:08 ` Kenji Kaneshige
2009-11-13 6:26 ` Yinghai Lu
2009-11-13 8:33 ` Kenji Kaneshige
2009-11-14 8:50 ` [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v11 Yinghai Lu
2009-11-24 1:08 ` Kenji Kaneshige
2009-11-24 1:14 ` Yinghai Lu
[not found] ` <4B0B3C13.9030502@jp.fujit! su.com>
2009-11-24 1:51 ` Kenji Kaneshige
2009-11-24 2:32 ` Yinghai Lu
2009-11-24 23:18 ` Yinghai Lu
2009-11-25 11:24 ` Kenji Kaneshige
2009-11-25 11:25 ` [PATCH 1/2] pciehp: remove redundancy in bridge resource allocation Kenji Kaneshige
2009-11-25 17:37 ` Yinghai Lu
2009-11-25 11:27 ` [PATCH 2/2] pciehp: add support for bridge resource reallocation Kenji Kaneshige
2009-11-25 17:44 ` [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v11 Yinghai Lu
2009-11-26 6:43 ` Kenji Kaneshige
2009-11-26 7:30 ` Yinghai
2009-11-27 7:12 ` Kenji Kaneshige
2009-11-27 7:52 ` Yinghai Lu
2009-11-27 8:26 ` Kenji Kaneshige
2009-11-27 23:13 ` Yinghai Lu
2009-11-25 19:58 ` [PATCH 0/9] pci: update pci bridge resource to get more big range for devices under it - v12 Yinghai Lu
[not found] ` <4B0D88A4.5050904@kerne! l.org>
[not found] ` <4B0D88A4.5050904@kernel.org>
2009-11-25 19:59 ` [PATCH 1/9] pci: separate pci_setup_bridge to small functions Yinghai Lu
2009-11-25 19:59 ` [PATCH 2/9] pci: add pci_bridge_release_unused_res and pci_bus_release_unused_bridge_res Yinghai Lu
2009-11-25 19:59 ` [PATCH 3/9] pci: don't dump it when bus resource flags is not set Yinghai Lu
2009-11-25 19:59 ` [PATCH 4/9] pci: add failed_list to record failed one for pci_bus_assign_resources Yinghai Lu
2009-11-25 19:59 ` [PATCH 5/9] pci: update leaf bridge res to get more big range in pci assign unssign Yinghai Lu
2009-11-25 19:59 ` [PATCH 6/9] pci: don't shrink bridge resources Yinghai Lu
2009-11-25 19:59 ` [PATCH 7/9] pci: introduce pci_assign_unassigned_bridge_resources Yinghai Lu
2009-11-25 19:59 ` [PATCH 8/9] pci: pciehp clean flow in pciehp_configure_device Yinghai Lu
2009-11-25 19:59 ` [PATCH 9/9] pci: pciehp second try to get big range for pcie devices Yinghai Lu
2009-11-28 7:34 ` [PATCH 0/9] pci: update pci bridge resource to get more big range for devices under it - v13 Yinghai Lu
2009-11-28 8:15 ` Yinghai Lu
2009-11-30 7:10 ` Kenji Kaneshige
2009-11-30 7:14 ` Yinghai Lu
2009-11-30 7:26 ` Kenji Kaneshige
2009-11-30 7:43 ` Yinghai Lu
2009-11-30 8:19 ` Yinghai Lu
2009-11-30 8:44 ` Kenji Kaneshige
2009-12-16 20:54 ` Jesse Barnes
2009-12-16 21:11 ` Alex Chiang
2009-12-16 22:21 ` Yinghai Lu
2009-12-16 22:27 ` Yinghai Lu
2009-12-16 22:44 ` Alex Chiang
[not found] ` <4B10D084.8070608@kerne! l.org>
[not found] ` <4B10D084.8070608@kernel.org>
2009-11-28 7:34 ` [PATCH 1/9] pci: separate pci_setup_bridge to small functions Yinghai Lu
2009-12-16 20:41 ` Jesse Barnes
2009-12-17 11:03 ` Rolf Eike Beer
2009-11-28 7:35 ` [PATCH 2/9] pci: add pci_bridge_release_unused_res and pci_bus_release_unused_bridge_res Yinghai Lu
2009-12-16 20:49 ` Jesse Barnes
2009-12-16 22:19 ` Yinghai Lu
2009-11-28 7:35 ` [PATCH 3/9] pci: don't dump it when bus resource flags is not used Yinghai Lu
2009-12-16 20:50 ` Jesse Barnes
2009-12-16 22:20 ` Yinghai Lu
2009-11-28 7:35 ` [PATCH 4/9] pci: add failed_list to record failed one for pci_bus_assign_resources -v2 Yinghai Lu
2009-11-28 7:35 ` [PATCH 5/9] pci: update leaf bridge res to get more big range in pci assign unssign -v2 Yinghai Lu
2009-11-30 21:55 ` [PATCH 5/9] pci: update leaf bridge res to get more big range in pci assign unssign -v3 Yinghai Lu
2009-11-28 7:36 ` [PATCH 6/9] pci: don't shrink bridge resources Yinghai Lu
2009-11-28 7:36 ` [PATCH 7/9] pci: introduce pci_assign_unassigned_bridge_resources -v2 Yinghai Lu
2009-11-28 7:36 ` [PATCH 8/9] pci: pciehp clean flow in pciehp_configure_device Yinghai Lu
2009-11-28 7:36 ` [PATCH 9/9] pci: pciehp second try to get big range for pcie devices -v2 Yinghai Lu
2009-12-01 1:19 ` [PATCH 1/2] pci: pci_bridge_release_res Yinghai Lu
2009-12-07 21:42 ` Patrick Keller
2009-12-07 21:57 ` Yinghai Lu
2009-12-01 1:21 ` [PATCH 2/2] pciehp: add support for bridge resource reallocation -v2 Yinghai Lu
2009-11-14 8:51 ` [PATCH 2/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v11 Yinghai Lu
2009-10-26 8:27 ` [PATCH] pci: pciehp update the slot bridge res to get big range for pcie devices - v3 Yinghai Lu
2009-10-27 8:09 ` [PATCH 1/4] pci: pciehp update the slot bridge res to get big range for pcie devices - v4 Yinghai Lu
[not found] ` <4AE6A9CA.4060106@kernel.org>
2009-10-27 8:09 ` [PATCH 2/4] pci: revert "get larger bridge ranges when space is available" Yinghai Lu
2009-10-27 8:10 ` [PATCH 3/4] pci: only release that resource index is less than 3 -v3 Yinghai Lu
2009-10-27 8:10 ` Yinghai Lu [this message]
2009-10-27 9:20 ` [PATCH 4/4] pci: remove min_size for hotplug bridge Eric W. Biederman
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=4AE6AAF2.7010402@kernel.org \
--to=yinghai@kernel.org \
--cc=achiang@hp.com \
--cc=bjorn.helgaas@hp.com \
--cc=ebiederm@xmission.com \
--cc=ink@jurassic.park.msu.ru \
--cc=jbarnes@virtuousgeek.org \
--cc=kaneshige.kenji@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=mingo@elte.hu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox