aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2014-02-25 07:28:51 +0000
committerDimitry Andric <dim@FreeBSD.org>2014-02-25 07:28:51 +0000
commitad3d02dd2a489c4d9f45cd44eb50910d59e1ff00 (patch)
treeca06c4f3d84f7f5ec6323f4e2e9700c78f372094
parent455b654622e6b6695bbe71099cd7888dbbaaf3c4 (diff)
downloadsrc-ad3d02dd2a489c4d9f45cd44eb50910d59e1ff00.tar.gz
src-ad3d02dd2a489c4d9f45cd44eb50910d59e1ff00.zip
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 MFC after: 3 days
Notes
Notes: svn path=/head/; revision=262471
-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 7e51f2dca0c6..7b57e9df6746 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);