From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from szxga01-in.huawei.com ([119.145.14.64]:59687 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755584Ab3FQDBi (ORCPT ); Sun, 16 Jun 2013 23:01:38 -0400 Message-ID: <51BE7C01.802@huawei.com> Date: Mon, 17 Jun 2013 11:01:21 +0800 From: Yijing Wang MIME-Version: 1.0 To: Bjorn Helgaas CC: Yinghai Lu , "linux-pci@vger.kernel.org" , Tony Luck , , Fenghua Yu , Hanjun Guo , Jiang Liu , John Keller , Jay Lan , Jack Steiner , Mark Maule Subject: Re: [PATCH -v5 1/8] PCI/IA64: SN: remove sn_pci_window_fixup() References: <1370504093-14908-1-git-send-email-wangyijing@huawei.com> <1370504093-14908-2-git-send-email-wangyijing@huawei.com> <51BAD77D.5030007@huawei.com> In-Reply-To: Content-Type: text/plain; charset="ISO-8859-1" Sender: linux-pci-owner@vger.kernel.org List-ID: On 2013/6/15 8:48, Bjorn Helgaas wrote: > On Fri, Jun 14, 2013 at 2:42 AM, Yijing Wang wrote: >> Hi Bjorn, >> Do you know some body who still maintains SGI related code? I found some email delivery failures >> to John Keller , Jack Steiner , Mark Maule . >> >> Some messages like this: >> ----- The following addresses had permanent delivery errors ----- >> jpk@sgi.com >> steiner@sgi.com >> maule@sgi.com >> >> So these email address does not exist anymore ? > > There are still some @sgi.com email addresses in MAINTAINERS, though I > don't think there's an explicit Altix maintainer anymore. > >> BTW, any chance to merge this series into 3.11? If there are still some problems, I >> will try my best to fix them. > > I'm not opposed to merging it for v3.11, but I poked Tony since it > only touches ia64, and I don't think it actually depends on any > changes in the PCI core. Hi Bjorn, Thanks for your help! I will try to explain this series to Tony, Hope he will like this series. Thanks! Yijing. > > Bjorn > >> On 2013/6/6 15:34, Yijing Wang wrote: >>> Currently, pcibios_bus_to_resource() and pcibios_resource_to_bus() >>> functions use pci_host_bridge_window in pci_host_bridge to translate >>> bus side to/from cpu side addresses. Pci_window in pci_controller >>> under IA64 is no used again, so it's no need to use sn_pci_window_fixup() >>> to setup pci_window again, remove it. >>> >>> Signed-off-by: Yijing Wang >>> Cc: John Keller >>> Cc: Jay Lan >>> Cc: Jack Steiner >>> Cc: Mark Maule >>> Cc: Tony Luck >>> Cc: Fenghua Yu >>> Cc: linux-ia64@vger.kernel.org >>> --- >>> arch/ia64/sn/kernel/io_init.c | 53 ----------------------------------------- >>> 1 files changed, 0 insertions(+), 53 deletions(-) >>> >>> diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c >>> index 238e2c5..06a172c 100644 >>> --- a/arch/ia64/sn/kernel/io_init.c >>> +++ b/arch/ia64/sn/kernel/io_init.c >>> @@ -149,48 +149,6 @@ sn_legacy_pci_window_fixup(struct pci_controller *controller, >>> } >>> >>> /* >>> - * sn_pci_window_fixup() - Create a pci_window for each device resource. >>> - * It will setup pci_windows for use by >>> - * pcibios_bus_to_resource(), pcibios_resource_to_bus(), >>> - * etc. >>> - */ >>> -static void >>> -sn_pci_window_fixup(struct pci_dev *dev, unsigned int count, >>> - s64 * pci_addrs) >>> -{ >>> - struct pci_controller *controller = PCI_CONTROLLER(dev->bus); >>> - unsigned int i; >>> - unsigned int idx; >>> - unsigned int new_count; >>> - struct pci_window *new_window; >>> - >>> - if (count == 0) >>> - return; >>> - idx = controller->windows; >>> - new_count = controller->windows + count; >>> - new_window = kcalloc(new_count, sizeof(struct pci_window), GFP_KERNEL); >>> - BUG_ON(new_window == NULL); >>> - if (controller->window) { >>> - memcpy(new_window, controller->window, >>> - sizeof(struct pci_window) * controller->windows); >>> - kfree(controller->window); >>> - } >>> - >>> - /* Setup a pci_window for each device resource. */ >>> - for (i = 0; i <= PCI_ROM_RESOURCE; i++) { >>> - if (pci_addrs[i] == -1) >>> - continue; >>> - >>> - new_window[idx].offset = dev->resource[i].start - pci_addrs[i]; >>> - new_window[idx].resource = dev->resource[i]; >>> - idx++; >>> - } >>> - >>> - controller->windows = new_count; >>> - controller->window = new_window; >>> -} >>> - >>> -/* >>> * sn_io_slot_fixup() - We are not running with an ACPI capable PROM, >>> * and need to convert the pci_dev->resource >>> * 'start' and 'end' addresses to mapped addresses, >>> @@ -199,9 +157,7 @@ sn_pci_window_fixup(struct pci_dev *dev, unsigned int count, >>> void >>> sn_io_slot_fixup(struct pci_dev *dev) >>> { >>> - unsigned int count = 0; >>> int idx; >>> - s64 pci_addrs[PCI_ROM_RESOURCE + 1]; >>> unsigned long addr, end, size, start; >>> struct pcidev_info *pcidev_info; >>> struct sn_irq_info *sn_irq_info; >>> @@ -229,7 +185,6 @@ sn_io_slot_fixup(struct pci_dev *dev) >>> for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) { >>> >>> if (!pcidev_info->pdi_pio_mapped_addr[idx]) { >>> - pci_addrs[idx] = -1; >>> continue; >>> } >>> >>> @@ -237,11 +192,8 @@ sn_io_slot_fixup(struct pci_dev *dev) >>> end = dev->resource[idx].end; >>> size = end - start; >>> if (size == 0) { >>> - pci_addrs[idx] = -1; >>> continue; >>> } >>> - pci_addrs[idx] = start; >>> - count++; >>> addr = pcidev_info->pdi_pio_mapped_addr[idx]; >>> addr = ((addr << 4) >> 4) | __IA64_UNCACHED_OFFSET; >>> dev->resource[idx].start = addr; >>> @@ -276,11 +228,6 @@ sn_io_slot_fixup(struct pci_dev *dev) >>> IORESOURCE_ROM_BIOS_COPY; >>> } >>> } >>> - /* Create a pci_window in the pci_controller struct for >>> - * each device resource. >>> - */ >>> - if (count > 0) >>> - sn_pci_window_fixup(dev, count, pci_addrs); >>> >>> sn_pci_fixup_slot(dev, pcidev_info, sn_irq_info); >>> } >>> >> >> >> -- >> Thanks! >> Yijing >> > > . > -- Thanks! Yijing