From patchwork Sun Sep 14 13:16:37 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Noever X-Patchwork-Id: 389065 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 463DB140168 for ; Sun, 14 Sep 2014 23:17:01 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752628AbaINNQ7 (ORCPT ); Sun, 14 Sep 2014 09:16:59 -0400 Received: from mail-qa0-f46.google.com ([209.85.216.46]:57143 "EHLO mail-qa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752594AbaINNQ7 (ORCPT ); Sun, 14 Sep 2014 09:16:59 -0400 Received: by mail-qa0-f46.google.com with SMTP id k15so2623029qaq.19 for ; Sun, 14 Sep 2014 06:16:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=y5er47lZ8Y7POF1AoBodPdNNTvekn0d38kwWHztENxM=; b=iCxW0pxbi/4KKvDImuuXW3fzHPWCFCL1W9YSW5p+OVvQltRy6ibCago5dUt86NWbBe A9laOE1bIRnsOZhH3TyCQRQH8knskcluOiP//mPROjh8aEK0p6OuYmGIJCb4D8LQtgfy RA8bOwMEj9D6ggKIZHooy/M3kIq/QoNNYZp7LRI4JuV/VoLPNYsuHbrW2sgAJ8MpQ+xz +f5BKKMFVoL5pc0F+JdjRGkxUC/18sHNAYf0KTiZeOEw2K56qS/bjlaY7C835XadQnKc RPqYfK7p/l3Yookio4hVGuwZaKbhnMIfg1ST5yhuBWrueltITBBM0KXE1rNwzhJjCTzO kQYg== X-Received: by 10.224.95.9 with SMTP id b9mr28669314qan.61.1410700618237; Sun, 14 Sep 2014 06:16:58 -0700 (PDT) Received: from linuxbook.fritz.box (HSI-KBW-095-208-100-070.hsi5.kabel-badenwuerttemberg.de. [95.208.100.70]) by mx.google.com with ESMTPSA id h2sm7358886qah.35.2014.09.14.06.16.56 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 14 Sep 2014 06:16:57 -0700 (PDT) From: Andreas Noever To: Dirk Gouders Cc: Andreas Noever , Yinghai Lu , Linus Torvalds , Linux Kernel , linux-pci@vger.kernel.org, Bjorn Helgaas Subject: Re: [BUG] Bisected Problem with LSI PCI FC Adapter Date: Sun, 14 Sep 2014 15:16:37 +0200 Message-Id: <1410700597-27265-1-git-send-email-andreas.noever@gmail.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: References: Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org Updated version with dmi strings. Dirk can you test this (without pci=nocrs) and look for PCI: Ignoring host bridge windows from ACPI If it does not show up then I have messed up the DMI_MATCH macros. In that case please try to boot with pci=nocrs. Bjorn, this would expand the meaning of nocrs to also ignore the bus window from crs. I can also add a separate flag (like pci_ignore_seg) and match the old behavior. Thanks, Andreas --- arch/x86/pci/acpi.c | 17 +++++++++++++---- arch/x86/pci/bus_numa.c | 12 +----------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c index cfd1b13..c9ebc36 100644 --- a/arch/x86/pci/acpi.c +++ b/arch/x86/pci/acpi.c @@ -107,6 +107,16 @@ static const struct dmi_system_id pci_crs_quirks[] __initconst = { DMI_MATCH(DMI_BIOS_VERSION, "6JET85WW (1.43 )"), }, }, + /* https://bugzilla.kernel.org/show_bug.cgi?id=84281 */ + { + .callback = set_nouse_crs, + .ident = "TYAN Transport VX50 B4985", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "TYAN Computer Corporation"), + DMI_MATCH(DMI_BOARD_NAME, "Tyan Transport VX50-B4985"), + DMI_MATCH(DMI_BIOS_VERSION, "TYAN Transport VX50 B4985 BIOS V3.01.B30"), + }, + }, /* https://bugzilla.kernel.org/show_bug.cgi?id=15362 */ { @@ -522,15 +532,14 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root) } else { probe_pci_root_info(info, device, busnum, domain); - /* insert busn res at first */ - pci_add_resource(&resources, &root->secondary); /* * _CRS with no apertures is normal, so only fall back to * defaults or native bridge info if we're ignoring _CRS. */ - if (pci_use_crs) + if (pci_use_crs) { + pci_add_resource(&resources, &root->secondary); add_resources(info, &resources); - else { + } else { free_pci_root_info_res(info); x86_pci_root_bus_resources(busnum, &resources); } diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c index f3a2cfc..b735d0e 100644 --- a/arch/x86/pci/bus_numa.c +++ b/arch/x86/pci/bus_numa.c @@ -31,8 +31,6 @@ void x86_pci_root_bus_resources(int bus, struct list_head *resources) { struct pci_root_info *info = x86_find_pci_root_info(bus); struct pci_root_res *root_res; - struct pci_host_bridge_window *window; - bool found = false; if (!info) goto default_resources; @@ -40,15 +38,7 @@ void x86_pci_root_bus_resources(int bus, struct list_head *resources) printk(KERN_DEBUG "PCI: root bus %02x: hardware-probed resources\n", bus); - /* already added by acpi ? */ - list_for_each_entry(window, resources, list) - if (window->res->flags & IORESOURCE_BUS) { - found = true; - break; - } - - if (!found) - pci_add_resource(resources, &info->busn); + pci_add_resource(resources, &info->busn); list_for_each_entry(root_res, &info->resources, list) { struct resource *res;