From: tip-bot for Joerg Roedel <joerg.roedel@amd.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@redhat.com,
joerg.roedel@amd.com, stable@kernel.org, tglx@linutronix.de
Subject: [tip:x86/urgent] x86, gart: Make sure GART does not map physmem above 1TB
Date: Mon, 18 Apr 2011 16:40:51 GMT [thread overview]
Message-ID: <tip-665d3e2af83c8fbd149534db8f57d82fa6fa6753@git.kernel.org> (raw)
In-Reply-To: <1303134346-5805-5-git-send-email-joerg.roedel@amd.com>
Commit-ID: 665d3e2af83c8fbd149534db8f57d82fa6fa6753
Gitweb: http://git.kernel.org/tip/665d3e2af83c8fbd149534db8f57d82fa6fa6753
Author: Joerg Roedel <joerg.roedel@amd.com>
AuthorDate: Mon, 18 Apr 2011 15:45:46 +0200
Committer: H. Peter Anvin <hpa@zytor.com>
CommitDate: Mon, 18 Apr 2011 09:26:49 -0700
x86, gart: Make sure GART does not map physmem above 1TB
The GART can only map physical memory below 1TB. Make sure
the gart driver in the kernel does not try to map memory
above 1TB.
Cc: <stable@kernel.org>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Link: http://lkml.kernel.org/r/1303134346-5805-5-git-send-email-joerg.roedel@amd.com
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
---
arch/x86/kernel/pci-gart_64.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/arch/x86/kernel/pci-gart_64.c b/arch/x86/kernel/pci-gart_64.c
index 82ada01..b117efd 100644
--- a/arch/x86/kernel/pci-gart_64.c
+++ b/arch/x86/kernel/pci-gart_64.c
@@ -81,6 +81,9 @@ static u32 gart_unmapped_entry;
#define AGPEXTERN
#endif
+/* GART can only remap to physical addresses < 1TB */
+#define GART_MAX_PHYS_ADDR (1ULL << 40)
+
/* backdoor interface to AGP driver */
AGPEXTERN int agp_memory_reserved;
AGPEXTERN __u32 *agp_gatt_table;
@@ -212,9 +215,13 @@ static dma_addr_t dma_map_area(struct device *dev, dma_addr_t phys_mem,
size_t size, int dir, unsigned long align_mask)
{
unsigned long npages = iommu_num_pages(phys_mem, size, PAGE_SIZE);
- unsigned long iommu_page = alloc_iommu(dev, npages, align_mask);
+ unsigned long iommu_page;
int i;
+ if (unlikely(phys_mem + size > GART_MAX_PHYS_ADDR))
+ return bad_dma_addr;
+
+ iommu_page = alloc_iommu(dev, npages, align_mask);
if (iommu_page == -1) {
if (!nonforced_iommu(dev, phys_mem, size))
return phys_mem;
prev parent reply other threads:[~2011-04-18 16:41 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-18 13:45 [PATCH 0/4] gart cleanups and fixes Joerg Roedel
2011-04-18 13:45 ` [PATCH 1/4] x86, gart: Don't enforce GART aperture lower-bound by alignment Joerg Roedel
2011-04-18 14:45 ` H. Peter Anvin
2011-04-18 14:56 ` Roedel, Joerg
2011-04-18 15:51 ` H. Peter Anvin
2011-04-18 17:36 ` Joerg Roedel
2011-04-18 17:39 ` H. Peter Anvin
2011-04-18 17:50 ` Joerg Roedel
2011-04-18 19:06 ` Joerg Roedel
2011-04-18 19:40 ` H. Peter Anvin
2011-04-18 18:29 ` Yinghai Lu
2011-04-18 18:39 ` [tip:x86/gart] " tip-bot for Joerg Roedel
2011-04-18 13:45 ` [PATCH 2/4] x86, gart: Convert spaces to tabs in enable_gart_translation Joerg Roedel
2011-04-18 16:39 ` [tip:x86/urgent] " tip-bot for Joerg Roedel
2011-04-18 13:45 ` [PATCH 3/4] x86, gart: Set DISTLBWALKPRB bit always Joerg Roedel
2011-04-18 16:40 ` [tip:x86/urgent] " tip-bot for Joerg Roedel
2011-04-18 13:45 ` [PATCH 4/4] x86, gart: Make sure GART does not map physmem above 1TB Joerg Roedel
2011-04-18 14:46 ` H. Peter Anvin
2011-04-18 14:52 ` Roedel, Joerg
2011-04-18 15:53 ` H. Peter Anvin
2011-04-18 14:54 ` H. Peter Anvin
2011-04-18 14:59 ` Roedel, Joerg
2011-04-18 15:50 ` Ingo Molnar
2011-04-19 6:12 ` Roedel, Joerg
2011-04-19 7:25 ` Ingo Molnar
2011-04-19 9:15 ` [PATCH] x86, gart: Rename pci-gart_64.c to amd64_gart.c Roedel, Joerg
2011-04-19 13:43 ` [PATCH 4/4] x86, gart: Make sure GART does not map physmem above 1TB H. Peter Anvin
2011-04-19 14:29 ` Roedel, Joerg
2011-04-20 17:38 ` H. Peter Anvin
2011-05-10 15:32 ` [PATCH] x86, gart: Rename pci-gart_64.c to amd_gart_64.c 1TB Roedel, Joerg
2011-04-18 16:40 ` tip-bot for Joerg Roedel [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-665d3e2af83c8fbd149534db8f57d82fa6fa6753@git.kernel.org \
--to=joerg.roedel@amd.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=stable@kernel.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox