16 Mar, 2011

4 commits

  • …el/git/tip/linux-2.6-tip

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (27 commits)
    x86: Clean up apic.c and apic.h
    x86: Remove superflous goal definition of tsc_sync
    x86: dt: Correct local apic documentation in device tree bindings
    x86: dt: Cleanup local apic setup
    x86: dt: Fix OLPC=y/INTEL_CE=n build
    rtc: cmos: Add OF bindings
    x86: ce4100: Use OF to setup devices
    x86: ioapic: Add OF bindings for IO_APIC
    x86: dtb: Add generic bus probe
    x86: dtb: Add support for PCI devices backed by dtb nodes
    x86: dtb: Add device tree support for HPET
    x86: dtb: Add early parsing of IO_APIC
    x86: dtb: Add irq domain abstraction
    x86: dtb: Add a device tree for CE4100
    x86: Add device tree support
    x86: e820: Remove conditional early mapping in parse_e820_ext
    x86: OLPC: Make OLPC=n build again
    x86: OLPC: Remove extra OLPC_OPENFIRMWARE_DT indirection
    x86: OLPC: Cleanup config maze completely
    x86: OLPC: Hide OLPC_OPENFIRMWARE config switch
    ...

    Fix up conflicts in arch/x86/platform/ce4100/ce4100.c

    Linus Torvalds
     
  • * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (93 commits)
    x86, tlb, UV: Do small micro-optimization for native_flush_tlb_others()
    x86-64, NUMA: Don't call numa_set_distanc() for all possible node combinations during emulation
    x86-64, NUMA: Don't assume phys node 0 is always online in numa_emulation()
    x86-64, NUMA: Clean up initmem_init()
    x86-64, NUMA: Fix numa_emulation code with node0 without RAM
    x86-64, NUMA: Revert NUMA affine page table allocation
    x86: Work around old gas bug
    x86-64, NUMA: Better explain numa_distance handling
    x86-64, NUMA: Fix distance table handling
    mm: Move early_node_map[] reverse scan helpers under HAVE_MEMBLOCK
    x86-64, NUMA: Fix size of numa_distance array
    x86: Rename e820_table_* to pgt_buf_*
    bootmem: Move __alloc_memory_core_early() to nobootmem.c
    bootmem: Move contig_page_data definition to bootmem.c/nobootmem.c
    bootmem: Separate out CONFIG_NO_BOOTMEM code into nobootmem.c
    x86-64, NUMA: Seperate out numa_alloc_distance() from numa_set_distance()
    x86-64, NUMA: Add proper function comments to global functions
    x86-64, NUMA: Move NUMA emulation into numa_emulation.c
    x86-64, NUMA: Prepare numa_emulation() for moving NUMA emulation into a separate file
    x86-64, NUMA: Do not scan two times for setup_node_bootmem()
    ...

    Fix up conflicts in arch/x86/kernel/smpboot.c

    Linus Torvalds
     
  • * 'stable/irq.cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen: events: remove dom0 specific xen_create_msi_irq
    xen: events: use xen_bind_pirq_msi_to_irq from xen_create_msi_irq
    xen: events: push set_irq_msi down into xen_create_msi_irq
    xen: events: update pirq_to_irq in xen_create_msi_irq
    xen: events: refactor xen_create_msi_irq slightly
    xen: events: separate MSI PIRQ allocation from PIRQ binding to IRQ
    xen: events: assume PHYSDEVOP_get_free_pirq exists
    xen: pci: collapse apic_register_gsi_xen_hvm and xen_hvm_register_pirq
    xen: events: return irq from xen_allocate_pirq_msi
    xen: events: drop XEN_ALLOC_IRQ flag to xen_allocate_pirq_msi
    xen: events: do not leak IRQ from xen_allocate_pirq_msi when no pirq available.
    xen: pci: only define xen_initdom_setup_msi_irqs if CONFIG_XEN_DOM0

    Linus Torvalds
     
  • …el.org/pub/scm/linux/kernel/git/konrad/xen

    * 'stable/irq.rework' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/irq: Cleanup up the pirq_to_irq for DomU PV PCI passthrough guests as well.
    xen: Use IRQF_FORCE_RESUME
    xen/timer: Missing IRQF_NO_SUSPEND in timer code broke suspend.
    xen: Fix compile error introduced by "switch to new irq_chip functions"
    xen: Switch to new irq_chip functions
    xen: Remove stale irq_chip.end
    xen: events: do not free legacy IRQs
    xen: events: allocate GSIs and dynamic IRQs from separate IRQ ranges.
    xen: events: add xen_allocate_irq_{dynamic, gsi} and xen_free_irq
    xen:events: move find_unbound_irq inside CONFIG_PCI_MSI
    xen: handled remapped IRQs when enabling a pcifront PCI device.
    genirq: Add IRQF_FORCE_RESUME

    * 'stable/pcifront-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    pci/xen: When free-ing MSI-X/MSI irq->desc also use generic code.
    pci/xen: Cleanup: convert int** to int[]
    pci/xen: Use xen_allocate_pirq_msi instead of xen_allocate_pirq
    xen-pcifront: Sanity check the MSI/MSI-X values
    xen-pcifront: don't use flush_scheduled_work()

    Linus Torvalds
     

15 Mar, 2011

1 commit


14 Mar, 2011

1 commit


11 Mar, 2011

9 commits


04 Mar, 2011

1 commit

  • This happens to not be an issue currently because we take pains to try
    to ensure that the GSI-IRQ mapping is 1-1 in a PV guest and that
    regular event channels do not clash. However a subsequent patch is
    going to break this 1-1 mapping.

    Signed-off-by: Ian Campbell
    Signed-off-by: Konrad Rzeszutek Wilk
    Cc: Stefano Stabellini
    Cc: Jeremy Fitzhardinge

    Ian Campbell
     

23 Feb, 2011

1 commit


19 Feb, 2011

2 commits

  • This code path is only run when an MSI/MSI-X PCI device is passed
    in to PV DomU.

    In 2.6.37 time-frame we over-wrote the default cleanup handler for
    MSI/MSI-X irq->desc to be "xen_teardown_msi_irqs". That function
    calls the the xen-pcifront driver which can tell the backend to
    cleanup/take back the MSI/MSI-X device.

    However, we forgot to continue the process of free-ing the MSI/MSI-X
    device resources (irq->desc) in the PV domU side. Which is what
    the default cleanup handler: default_teardown_msi_irqs did.

    Hence we would leak IRQ descriptors.

    Without this patch, doing "rmmod igbvf;modprobe igbvf" multiple
    times ends with abandoned IRQ descriptors:

    28: 5 xen-pirq-pcifront-msi-x
    29: 8 xen-pirq-pcifront-msi-x
    ...
    130: 10 xen-pirq-pcifront-msi-x

    with the end result of running out of IRQ descriptors.

    Reviewed-by: Ian Campbell
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     
  • Cleanup code. Cosmetic change to make the code look easier
    to read.

    Reviewed-by: Ian Campbell
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     

18 Feb, 2011

2 commits

  • |arch/x86/pci/ce4100.c: In function `ce4100_conf_read':
    |arch/x86/pci/ce4100.c:257:9: warning: unused variable `retval'

    Signed-off-by: Sebastian Andrzej Siewior
    Cc: dirk.brandewie@gmail.com
    LKML-Reference:
    Signed-off-by: Thomas Gleixner

    Sebastian Andrzej Siewior
     
  • xen_allocate_pirq -> xen_map_pirq_gsi -> PHYSDEVOP_alloc_irq_vector IFF
    xen_initial_domain() in addition to the kernel side book-keeping side of
    things (set chip and handler, update irq_info etc) whereas
    xen_allocate_pirq_msi just does the kernel book keeping.

    Also xen_allocate_pirq allocates an IRQ in the 1-1 GSI space whereas
    xen_allocate_pirq_msi allocates a dynamic one in the >GSI IRQ space.

    All of this is uneccessary as this code path is only executed
    when we run as a domU PV guest with an MSI/MSI-X PCI card passed in.
    Hence we can jump straight to allocating an dynamic IRQ (and
    binding it to the proper PIRQ) and skip the rest.

    In short: this change is a cosmetic one.

    Reviewed-by: Ian Campbell
    Reviewed-by: Stefano Stabellini
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     

10 Feb, 2011

1 commit


15 Jan, 2011

3 commits

  • * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
    PCI/PM: Report wakeup events before resuming devices
    PCI/PM: Use pm_wakeup_event() directly for reporting wakeup events
    PCI: sysfs: Update ROM to include default owner write access
    x86/PCI: make Broadcom CNB20LE driver EMBEDDED and EXPERIMENTAL
    x86/PCI: don't use native Broadcom CNB20LE driver when ACPI is available
    PCI/ACPI: Request _OSC control once for each root bridge (v3)
    PCI: enable pci=bfsort by default on future Dell systems
    PCI/PCIe: Clear Root PME Status bits early during system resume
    PCI: pci-stub: ignore zero-length id parameters
    x86/PCI: irq and pci_ids patch for Intel Patsburg
    PCI: Skip id checking if no id is passed
    PCI: fix __pci_device_probe kernel-doc warning
    PCI: make pci_restore_state return void
    PCI: Disable ASPM if BIOS asks us to
    PCI: Add mask bit definition for MSI-X table
    PCI: MSI: Move MSI-X entry definition to pci_regs.h

    Fix up trivial conflicts in drivers/net/{skge.c,sky2.c} that had in the
    meantime been converted to not use legacy PCI power management, and thus
    no longer use pci_restore_state() at all (and that caused trivial
    conflicts with the "make pci_restore_state return void" patch)

    Linus Torvalds
     
  • The broadcom_bus.c quirk was written (without benefit of documentation)
    to support PCI hotplug on an old system that doesn't have ACPI. As
    such, we should only use it when the system doesn't have ACPI.

    If the system does have ACPI and we need the host bridge description, we
    should get it from the ACPI _CRS method. On machines older than 2008,
    we currently ignore _CRS, but that doesn't mean we should use
    broadcom_bus.c. It means we should either (a) do what we've done in the
    past and assume everything in the PCI gap is routed to bus 0 (so hotplug
    may not work), or (b) arrange to use _CRS. This patch does (a).

    Reference: https://bugzilla.redhat.com/show_bug.cgi?id=665109
    Acked-by: Ira W. Snyder
    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • This patch enables pci=bfsort by default on future Dell systems.
    It reads SMBIOS type 0xB1 vendor specific record and sets pci=bfsort
    accordingly.

    Offset Name Length Value Description

    04 Flags0 Word Varies Bits 9-10
    - 10:9 = 00 Unknown
    - 10:9 = 01 Breadth First
    - 10:9 = 10 Depth First
    - 10:9 = 11 Reserved

    1. Any time pci=bfsort has to be enabled on a system, we need to add the
    model number of the system to the white list. With this patch, that
    is not required.

    2. Typically, model number has to be added to the white list when the
    system is under development. With this change, that is not required.

    Signed-off-by: Jordan Hargrave
    Signed-off-by: Narendra K
    Signed-off-by: Jesse Barnes

    Narendra_K@Dell.com
     

11 Jan, 2011

1 commit

  • While both methods should work equivalently well for the native
    case, the Xen Dom0 case can't reliably work with the MSR one,
    since there's no guarantee that the virtual CPUs it has
    available fully cover all necessary physical ones.

    As per the suggestion of Robert Richter the patch only adds the
    PCI method, but leaves the MSR one as a fallback to cover new
    systems the PCI IDs of which may not have got added to the code
    base yet.

    The only change in v2 is the breaking out of the new CPI
    initialization method into a separate function, as requested by
    Ingo.

    Signed-off-by: Jan Beulich
    Acked-by: Robert Richter
    Cc: Andreas Herrmann3
    Cc: Joerg Roedel
    Cc: Jeremy Fitzhardinge
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Jan Beulich
     

07 Jan, 2011

2 commits

  • …el/git/tip/linux-2.6-tip

    * 'x86-security-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    module: Move RO/NX module protection to after ftrace module update
    x86: Resume trampoline must be executable
    x86: Add RO/NX protection for loadable kernel modules
    x86: Add NX protection for kernel data
    x86: Fix improper large page preservation

    Linus Torvalds
     
  • …el/git/tip/linux-2.6-tip

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86, earlyprintk: Move mrst early console to platform/ and fix a typo
    x86, apbt: Setup affinity for apb timers acting as per-cpu timer
    ce4100: Add errata fixes for UART on CE4100
    x86: platform: Move iris to x86/platform where it belongs
    x86, mrst: Check platform_device_register() return code
    x86/platform: Add Eurobraille/Iris power off support
    x86, mrst: Add explanation for using 1960 as the year offset for vrtc
    x86, mrst: Fix dependencies of "select INTEL_SCU_IPC"
    x86, mrst: The shutdown for MRST requires the SCU IPC mechanism
    x86: Ce4100: Add reboot_fixup() for CE4100
    ce4100: Add PCI register emulation for CE4100
    x86: Add CE4100 platform support
    x86: mrst: Set vRTC's IRQ to level trigger type
    x86: mrst: Add audio driver bindings
    rtc: Add drivers/rtc/rtc-mrst.c
    x86: mrst: Add vrtc driver which serves as a wall clock device
    x86: mrst: Add Moorestown specific reboot/shutdown support
    x86: mrst: Parse SFI timer table for all timer configs
    x86/mrst: Add SFI platform device parsing code

    Linus Torvalds
     

24 Dec, 2010

1 commit


23 Dec, 2010

1 commit


18 Dec, 2010

2 commits


02 Dec, 2010

1 commit

  • When remapping MSIs into pirqs for PV on HVM guests, qemu is responsible
    for doing the actual mapping and unmapping.
    We only give qemu the desired pirq number when we ask to do the mapping
    the first time, after that we should be reading back the pirq number
    from qemu every time we want to re-enable the MSI.

    This fixes a bug in xen_hvm_setup_msi_irqs that manifests itself when
    trying to enable the same MSI for the second time: the old MSI to pirq
    mapping is still valid at this point but xen_hvm_setup_msi_irqs would
    try to assign a new pirq anyway.
    A simple way to reproduce this bug is to assign an MSI capable network
    card to a PV on HVM guest, if the user brings down the corresponding
    ethernet interface and up again, Linux would fail to enable MSIs on the
    device.

    Signed-off-by: Stefano Stabellini

    Stefano Stabellini
     

18 Nov, 2010

1 commit

  • This patch expands functionality of CONFIG_DEBUG_RODATA to set main
    (static) kernel data area as NX.

    The following steps are taken to achieve this:

    1. Linker script is adjusted so .text always starts and ends on a page bound
    2. Linker script is adjusted so .rodata always start and end on a page boundary
    3. NX is set for all pages from _etext through _end in mark_rodata_ro.
    4. free_init_pages() sets released memory NX in arch/x86/mm/init.c
    5. bios rom is set to x when pcibios is used.

    The results of patch application may be observed in the diff of kernel page
    table dumps:

    pcibios:

    -- data_nx_pt_before.txt 2009-10-13 07:48:59.000000000 -0400
    ++ data_nx_pt_after.txt 2009-10-13 07:26:46.000000000 -0400
    0x00000000-0xc0000000 3G pmd
    ---[ Kernel Mapping ]---
    -0xc0000000-0xc0100000 1M RW GLB x pte
    +0xc0000000-0xc00a0000 640K RW GLB NX pte
    +0xc00a0000-0xc0100000 384K RW GLB x pte
    -0xc0100000-0xc03d7000 2908K ro GLB x pte
    +0xc0100000-0xc0318000 2144K ro GLB x pte
    +0xc0318000-0xc03d7000 764K ro GLB NX pte
    -0xc03d7000-0xc0600000 2212K RW GLB x pte
    +0xc03d7000-0xc0600000 2212K RW GLB NX pte
    0xc0600000-0xf7a00000 884M RW PSE GLB NX pmd
    0xf7a00000-0xf7bfe000 2040K RW GLB NX pte
    0xf7bfe000-0xf7c00000 8K pte

    No pcibios:

    -- data_nx_pt_before.txt 2009-10-13 07:48:59.000000000 -0400
    ++ data_nx_pt_after.txt 2009-10-13 07:26:46.000000000 -0400
    0x00000000-0xc0000000 3G pmd
    ---[ Kernel Mapping ]---
    -0xc0000000-0xc0100000 1M RW GLB x pte
    +0xc0000000-0xc0100000 1M RW GLB NX pte
    -0xc0100000-0xc03d7000 2908K ro GLB x pte
    +0xc0100000-0xc0318000 2144K ro GLB x pte
    +0xc0318000-0xc03d7000 764K ro GLB NX pte
    -0xc03d7000-0xc0600000 2212K RW GLB x pte
    +0xc03d7000-0xc0600000 2212K RW GLB NX pte
    0xc0600000-0xf7a00000 884M RW PSE GLB NX pmd
    0xf7a00000-0xf7bfe000 2040K RW GLB NX pte
    0xf7bfe000-0xf7c00000 8K pte

    The patch has been originally developed for Linux 2.6.34-rc2 x86 by
    Siarhei Liakh and Xuxian Jiang .

    -v1: initial patch for 2.6.30
    -v2: patch for 2.6.31-rc7
    -v3: moved all code into arch/x86, adjusted credits
    -v4: fixed ifdef, removed credits from CREDITS
    -v5: fixed an address calculation bug in mark_nxdata_nx()
    -v6: added acked-by and PT dump diff to commit log
    -v7: minor adjustments for -tip
    -v8: rework with the merge of "Set first MB as RW+NX"

    Signed-off-by: Siarhei Liakh
    Signed-off-by: Xuxian Jiang
    Signed-off-by: Matthieu CASTET
    Cc: Arjan van de Ven
    Cc: James Morris
    Cc: Andi Kleen
    Cc: Rusty Russell
    Cc: Stephen Rothwell
    Cc: Dave Jones
    Cc: Kees Cook
    Cc: Linus Torvalds
    LKML-Reference:
    [ minor cleanliness edits ]
    Signed-off-by: Ingo Molnar

    Matthieu Castet
     

16 Nov, 2010

1 commit


12 Nov, 2010

2 commits

  • This patch provides access methods for PCI registers that mis-behave on
    the CE4100. Each register can be assigned a private init, read and
    write routine. The exception to this is the bridge device. The
    bridge device is the only device on bus zero (0) that requires any
    fixup so it is a special case.

    [ tglx: minor coding style cleanups, __init annotation and
    simplification of ce4100_conf_read/write ]

    Signed-off-by: Dirk Brandewie
    LKML-Reference:
    Signed-off-by: Thomas Gleixner

    Dirk Brandewie
     
  • Some BIOSes provide PCI host bridge windows that overlap, e.g.,

    pci_root PNP0A03:00: host bridge window [mem 0xb0000000-0xffffffff]
    pci_root PNP0A03:00: host bridge window [mem 0xafffffff-0xdfffffff]
    pci_root PNP0A03:00: host bridge window [mem 0xf0000000-0xffffffff]

    If we simply insert these as children of iomem_resource, the second window
    fails because it conflicts with the first, and the third is inserted as a
    child of the first, i.e.,

    b0000000-ffffffff PCI Bus 0000:00
    f0000000-ffffffff PCI Bus 0000:00

    When we claim PCI device resources, this can cause collisions like this
    if we put them in the first window:

    pci 0000:00:01.0: address space collision: [mem 0xff300000-0xff4fffff] conflicts with PCI Bus 0000:00 [mem 0xf0000000-0xffffffff]

    Host bridge windows are top-level resources by definition, so it doesn't
    make sense to make the third window a child of the first. This patch
    coalesces any host bridge windows that overlap. For the example above,
    the result is this single window:

    pci_root PNP0A03:00: host bridge window [mem 0xafffffff-0xffffffff]

    This fixes a 2.6.34 regression.

    Reference: https://bugzilla.kernel.org/show_bug.cgi?id=17011
    Reported-and-tested-by: Anisse Astier
    Reported-and-tested-by: Pramod Dematagoda
    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     

09 Nov, 2010

1 commit

  • Stanse found that xen_setup_msi_irqs leaks memory when
    xen_allocate_pirq fails. Free the memory in that fail path.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Konrad Rzeszutek Wilk
    Cc: xen-devel@lists.xensource.com
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: x86@kernel.org

    Jiri Slaby
     

29 Oct, 2010

1 commit

  • and branch 'for-linus' of git://xenbits.xen.org/people/sstabellini/linux-pvhvm

    * 'for-linus' of git://xenbits.xen.org/people/sstabellini/linux-pvhvm:
    xen: register xen pci notifier
    xen: initialize cpu masks for pv guests in xen_smp_init
    xen: add a missing #include to arch/x86/pci/xen.c
    xen: mask the MTRR feature from the cpuid
    xen: make hvc_xen console work for dom0.
    xen: add the direct mapping area for ISA bus access
    xen: Initialize xenbus for dom0.
    xen: use vcpu_ops to setup cpu masks
    xen: map a dummy page for local apic and ioapic in xen_set_fixmap
    xen: remap MSIs into pirqs when running as initial domain
    xen: remap GSIs as pirqs when running as initial domain
    xen: introduce XEN_DOM0 as a silent option
    xen: map MSIs into pirqs
    xen: support GSI -> pirq remapping in PV on HVM guests
    xen: add xen hvm acpi_register_gsi variant
    acpi: use indirect call to register gsi in different modes
    xen: implement xen_hvm_register_pirq
    xen: get the maximum number of pirqs from xen
    xen: support pirq != irq

    * 'stable/xen-pcifront-0.8.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen: (27 commits)
    X86/PCI: Remove the dependency on isapnp_disable.
    xen: Update Makefile with CONFIG_BLOCK dependency for biomerge.c
    MAINTAINERS: Add myself to the Xen Hypervisor Interface and remove Chris Wright.
    x86: xen: Sanitse irq handling (part two)
    swiotlb-xen: On x86-32 builts, select SWIOTLB instead of depending on it.
    MAINTAINERS: Add myself for Xen PCI and Xen SWIOTLB maintainer.
    xen/pci: Request ACS when Xen-SWIOTLB is activated.
    xen-pcifront: Xen PCI frontend driver.
    xenbus: prevent warnings on unhandled enumeration values
    xenbus: Xen paravirtualised PCI hotplug support.
    xen/x86/PCI: Add support for the Xen PCI subsystem
    x86: Introduce x86_msi_ops
    msi: Introduce default_[teardown|setup]_msi_irqs with fallback.
    x86/PCI: Export pci_walk_bus function.
    x86/PCI: make sure _PAGE_IOMAP it set on pci mappings
    x86/PCI: Clean up pci_cache_line_size
    xen: fix shared irq device passthrough
    xen: Provide a variant of xen_poll_irq with timeout.
    xen: Find an unbound irq number in reverse order (high to low).
    xen: statically initialize cpu_evtchn_mask_p
    ...

    Fix up trivial conflicts in drivers/pci/Makefile

    Linus Torvalds
     

27 Oct, 2010

1 commit

  • Allocate from the end of a region, not the beginning.

    For example, if we need to allocate 0x800 bytes for a device on bus
    0000:00 given these resources:

    [mem 0xbff00000-0xdfffffff] PCI Bus 0000:00
    [mem 0xc0000000-0xdfffffff] PCI Bus 0000:02

    the available space at [mem 0xbff00000-0xbfffffff] is passed to the
    alignment callback (pcibios_align_resource()). Prior to this patch, we
    would put the new 0x800 byte resource at the beginning of that available
    space, i.e., at [mem 0xbff00000-0xbff007ff].

    With this patch, we put it at the end, at [mem 0xbffff800-0xbfffffff].

    Reference: https://bugzilla.kernel.org/show_bug.cgi?id=16228#c41
    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas