[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <tip-86e587623a0ca8426267dad8d3eaebd6fc2d00f1@git.kernel.org>
Date: Mon, 14 Apr 2014 00:22:42 -0700
From: "tip-bot for Ville Syrjälä" <tipbot@...or.com>
To: linux-tip-commits@...r.kernel.org
Cc: linux-kernel@...r.kernel.org, hpa@...or.com, mingo@...nel.org,
bhelgaas@...gle.com, ville.syrjala@...ux.intel.com,
tglx@...utronix.de
Subject: [tip:x86/urgent] x86/gpu:
Fix sign extension issue in Intel graphics stolen memory quirks
Commit-ID: 86e587623a0ca8426267dad8d3eaebd6fc2d00f1
Gitweb: http://git.kernel.org/tip/86e587623a0ca8426267dad8d3eaebd6fc2d00f1
Author: Ville Syrjälä <ville.syrjala@...ux.intel.com>
AuthorDate: Sun, 13 Apr 2014 12:45:03 +0300
Committer: Ingo Molnar <mingo@...nel.org>
CommitDate: Mon, 14 Apr 2014 08:50:56 +0200
x86/gpu: Fix sign extension issue in Intel graphics stolen memory quirks
Have the KB(),MB(),GB() macros produce unsigned longs to avoid
unintended sign extension issues with the gen2 memory size
detection.
What happens is first the uint8_t returned by
read_pci_config_byte() gets promoted to an int which gets
multiplied by another int from the MB() macro, and finally the
result gets sign extended to size_t.
Although this shouldn't be a problem in practice as all affected
gen2 platforms are 32bit AFAIK, so size_t will be 32 bits.
Reported-by: Bjorn Helgaas <bhelgaas@...gle.com>
Suggested-by: H. Peter Anvin <hpa@...or.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@...ux.intel.com>
Cc: linux-kernel@...r.kernel.org
Link: http://lkml.kernel.org/r/1397382303-17525-1-git-send-email-ville.syrjala@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@...nel.org>
---
arch/x86/kernel/early-quirks.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c
index b0cc380..6e2537c 100644
--- a/arch/x86/kernel/early-quirks.c
+++ b/arch/x86/kernel/early-quirks.c
@@ -240,7 +240,7 @@ static u32 __init intel_stolen_base(int num, int slot, int func, size_t stolen_s
return base;
}
-#define KB(x) ((x) * 1024)
+#define KB(x) ((x) * 1024UL)
#define MB(x) (KB (KB (x)))
#define GB(x) (MB (KB (x)))
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists