Re: [PATCH V2] x86/gart: Check for GART support before accessing GART registers

From: Borislav Petkov
Date: Wed Apr 08 2015 - 11:27:41 EST


On Tue, Apr 07, 2015 at 04:46:37PM -0500, Aravind Gopalakrishnan wrote:
> GART registers are not present in newer processors (Fam15h, Model 10h
> and later). So, avoid accesses to GART registers in PCI config
> space by returning early in early_gart_iommu_check() and
> gart_iommu_hole_init() if GART is not available.
>
> Current code doesn't break on existing processors but there are some
> side effects:
>
> We get bogus AGP aperture messages which are simply noise on
> GART-less processors:
>
> AGP: Node 0: aperture [bus addr 0x00000000-0x01ffffff] (32MB)
> AGP: Your BIOS doesn't leave aperture memory hole
> AGP: Please enable the IOMMU option in the BIOS setup
> AGP: This costs you 64MB of RAM
> AGP: Mapping aperture over RAM [mem 0xd4000000-0xd7ffffff]
>
> We can avoid calling allocate_aperture() and would not have to
> wastefully reserve 64MB of RAM with memblock_reserve(). Also, we can
> avoid having to loop through all PCI buses and devices twice, searching
> for a non-existent AGP bridge if we bail out early.
>
> Refactoring the family check used in amd_nb.c into an inline function
> so we can use it here as well as in amd_nb.c
>
> Fix some typos while at it.
> Tested the patch on Fam10h and Fam15h Model 00h-fh and this code
> runs fine. On Fam15h Model 60h-6fh and on Fam16h, we bail early
> as they don't have GART.
>
> Signed-off-by: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@xxxxxxx>
> Reviewed-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@xxxxxxx>
> Cc: Joerg Rodel <joro@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> Cc: H. Peter Anvin <hpa@xxxxxxxxx>
> Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> Cc: x86-ml <x86@xxxxxxxxxx>
> ---
> Changes in V2:
> - move amd_gart_present() before any other checks as it's least intrusive (per Boris)
> - fix typos in code and commit message (per Ingo)
> - minor change to subject line (per Boris' change)
> - Link to V1:http://marc.info/?l=linux-kernel&m=142792069809730&w=2
>
> arch/x86/include/asm/amd_nb.h | 11 +++++++++++
> arch/x86/kernel/amd_nb.c | 4 +---
> arch/x86/kernel/aperture_64.c | 8 +++++++-
> 3 files changed, 19 insertions(+), 4 deletions(-)

Applied, thanks.

--
Regards/Gruss,
Boris.

ECO tip #101: Trim your mails when you reply.
--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/