Andreas Noever <andreas.noe...@gmail.com> writes:

> This is an implementation of fix 1 (Add a quirk to fix the _CRS information
> based on what amd_bus.c read from the hardware) which makes pci=nocrs ignore 
> bus numbers from crs.
>
> If this works then we can add the board to the crs blacklist (Dirk can you 
> attach the output of dmidecode to the bugzilla report?).

I attached the information to the bugzilla report.

Do you want me to test this fix as is or should I wait (e.g. for an
updated crs blacklist)?

Dirk

>
>
>
> ---
>  arch/x86/pci/acpi.c     |  7 +++----
>  arch/x86/pci/bus_numa.c | 12 +-----------
>  2 files changed, 4 insertions(+), 15 deletions(-)
>
> diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
> index cfd1b13..b073948 100644
> --- a/arch/x86/pci/acpi.c
> +++ b/arch/x86/pci/acpi.c
> @@ -522,15 +522,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;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to