• Stephen Kitt's avatar
    agp: ensure GART has an address before enabling it · a70b95c0
    Stephen Kitt authored
    Some BIOSs (eg.  the AMI BIOS on the Asus P4P800 motherboard) don't
    initialise the GART address, and pcibios_assign_resources() can ignore it
    because it can be marked as a host bridge (see
    https://bugzilla.kernel.org/show_bug.cgi?id=24392#c5 for details).  This
    was handled correctly up to 2.6.35, but the pci_enable_device() cleanup in
    2.6.36 96576a9e ("agp: intel-agp: do not use PCI resources before
    pci_enable_device()") means that the kernel tries to enable the GART
    before assigning it an address; in such cases the GART overlaps with other
    device assignments and ends up being disabled.
    
    This patch fixes https://bugzilla.kernel.org/show_bug.cgi?id=24392
    
    Note that I imagine efficeon-agp.c probably has the same problem, but
    I can't test that and I'd like to make sure this patch is suitable for
    -stable (since 2.6.36 and 2.6.37 are affected).
    Signed-off-by: default avatarStephen Kitt <steve@sk2.org>
    Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
    Cc: Maciej Rutecki <maciej.rutecki@gmail.com>
    Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
    Cc: Kulikov Vasiliy <segooon@gmail.com>
    Cc: Florian Mickler <florian@mickler.org>
    Cc: <stable@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    a70b95c0
intel-agp.c 28.5 KB