From owner-p4-projects@FreeBSD.ORG Sun Nov 4 16:18:20 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 16EA090D; Sun, 4 Nov 2012 16:18:20 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id BF92D90B for ; Sun, 4 Nov 2012 16:18:19 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 9FFAD8FC08 for ; Sun, 4 Nov 2012 16:18:19 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id qA4GIJYZ045660 for ; Sun, 4 Nov 2012 16:18:19 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id qA4GIJip045657 for perforce@freebsd.org; Sun, 4 Nov 2012 16:18:19 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 4 Nov 2012 16:18:19 GMT Message-Id: <201211041618.qA4GIJip045657@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson Subject: PERFORCE change 219567 for review To: Perforce Change Reviews Precedence: bulk X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.14 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Nov 2012 16:18:20 -0000 http://p4web.freebsd.org/@@219567?ac=10 Change 219567 by rwatson@rwatson_svr_ctsrd_mipsbuild on 2012/11/04 16:17:47 CSetTag does not behave the same way as other CHERI register field assignment instructions, in that it "modifies in place". Put it later in the capability setup sequence so that the target is tagged as a capability before we start. Affected files ... .. //depot/projects/ctsrd/cheribsd/src/sys/mips/cheri/cheri.c#4 edit Differences ... ==== //depot/projects/ctsrd/cheribsd/src/sys/mips/cheri/cheri.c#4 (text+ko) ==== @@ -79,10 +79,10 @@ * temporary preserved during kernel execution to avoid this. */ s = intr_disable(); - CHERI_CSETTYPE(CHERI_CR_KR1C, CHERI_CR_KDC, (register_t)otypep); - CHERI_CINCBASE(CHERI_CR_KR1C, CHERI_CR_KR1C, (register_t)basep); + CHERI_CINCBASE(CHERI_CR_KR1C, CHERI_CR_KDC, (register_t)basep); CHERI_CSETLEN(CHERI_CR_KR1C, CHERI_CR_KR1C, (register_t)length); CHERI_CANDPERM(CHERI_CR_KR1C, CHERI_CR_KR1C, (register_t)perms); + CHERI_CSETTYPE(CHERI_CR_KR1C, CHERI_CR_KR1C, (register_t)otypep); CHERI_CSC(CHERI_CR_KR1C, CHERI_CR_KDC, (register_t)cp, 0); intr_restore(s); }