summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2014-02-28 20:22:48 +0000
committerdim <dim@FreeBSD.org>2014-02-28 20:22:48 +0000
commit4e1ef40864cfab777177fc8c42d8c9692085bad0 (patch)
tree59c9e860494d2f0850a876dc2ef6a0720ddc40ac
parenteef07bdd956f190ce8714cf198d340eb8e2562e3 (diff)
downloadFreeBSD-src-4e1ef40864cfab777177fc8c42d8c9692085bad0.zip
FreeBSD-src-4e1ef40864cfab777177fc8c42d8c9692085bad0.tar.gz
MFC r262471:
In sys/sparc64/sparc64/spitfire.c, prevent signed shift overflow by casting to the appropriate type. (Note this fix cannot be done in sys/sparc64/sparc64/spitfire.c, since that file is also included by assembly source files.) Reviewed by: marius
-rw-r--r--sys/sparc64/sparc64/spitfire.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/sparc64/sparc64/spitfire.c b/sys/sparc64/sparc64/spitfire.c
index 7e51f2d..7b57e9d 100644
--- a/sys/sparc64/sparc64/spitfire.c
+++ b/sys/sparc64/sparc64/spitfire.c
@@ -130,7 +130,7 @@ spitfire_icache_page_inval(vm_paddr_t pa)
: "=r" (tag) : "r" (addr), "n" (ASI_ICACHE_TAG));
if (((tag >> IC_VALID_SHIFT) & IC_VALID_MASK) == 0)
continue;
- tag &= IC_TAG_MASK << IC_TAG_SHIFT;
+ tag &= (u_long)IC_TAG_MASK << IC_TAG_SHIFT;
if (tag == target) {
PMAP_STATS_INC(spitfire_icache_npage_inval_match);
stxa_sync(addr, ASI_ICACHE_TAG, tag);
OpenPOWER on IntegriCloud