From patchwork Tue May 14 12:24:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Grall X-Patchwork-Id: 164182 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp2555048ili; Tue, 14 May 2019 05:26:11 -0700 (PDT) X-Google-Smtp-Source: APXvYqw9udr0vGDijlw/VPxN1SKgm2Ek8NNvYQ+F8dz4RNDhIPj7Q8tj8MZ53ubH9f1Pmq1l9uYI X-Received: by 2002:a02:2b1d:: with SMTP id h29mr22611030jaa.76.1557836770969; Tue, 14 May 2019 05:26:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557836770; cv=none; d=google.com; s=arc-20160816; b=B1o7WUFpnJRRBqineYsYwI5Kad/aECTCSaMZ8D0EzmnxSvNtI0coFn+Puy0ZxMvBjd Q9Mj6jyAbJPsfNjJ4q7s0VjtBhNuFYKGk80xQzA/kmRZQOczja9MaubCW6dEnvbNeN6X Cn5LhpWFoZHvhGgGCChCS6K2JZWHMGd+04f5vy4ItQvgAsyIaTpiFYZz1uid9XCC4Zo0 1fM8d4Dfd81PIGr2otMwvM4vQS4bBi0HlVQXszr7FyE+ItNsEMH7LC3beEnjB8bAhjO4 gtMmX8hW7o4f/uKjzBataC/spIOfmo/EAqn7Xk+UXHc9gazIYeeUhAIpgdQ4ExCqUYWk BNJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc :list-subscribe:list-help:list-post:list-unsubscribe:list-id :precedence:subject:references:in-reply-to:message-id:date:to:from; bh=kumSZGcY2u14dTnJuAA7tUfD8yb4Jj5VGtOy5uAhNTg=; b=BUywOocXe1KxyTebPb30fYmL9Hs+m+75ISXsl0JAiCvb/LmBQwxZN5f2KsqQKglvYG IrRxe4fyO/zu/xBVwjbi5oZd/2baDdJmJAejdg+JS69VE7KX/sT6EEUL5pyxvXsSNTKT kWQ6LkJCovMoZ70QDMyv1gOQ8AJ5EXrF3UUq/ieVqCoV1ujtZdNzFYf8c2jkMVOv8n1F qj9a5ZCNXgLgHovAkky0e8Jgkt6N2P4xAOE07SiJWpM4JV3H4CR8sDYFf9ucWP6mES18 JRqs3HVBia/uwuyfHCjIV0eee6V4CbO2CELC/kgefSkljciDjQJyGSAJ/O69ZOR67vOK i3lw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of xen-devel-bounces@lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Return-Path: Received: from lists.xenproject.org (lists.xenproject.org. [192.237.175.120]) by mx.google.com with ESMTPS id b185si1466709ite.39.2019.05.14.05.26.10 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 14 May 2019 05:26:10 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of xen-devel-bounces@lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of xen-devel-bounces@lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hQWUk-0002ml-JU; Tue, 14 May 2019 12:25:22 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hQWUj-0002l2-L2 for xen-devel@lists.xenproject.org; Tue, 14 May 2019 12:25:21 +0000 X-Inumbo-ID: 56df9e4f-7643-11e9-8980-bc764e045a96 Received: from foss.arm.com (unknown [217.140.101.70]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTP id 56df9e4f-7643-11e9-8980-bc764e045a96; Tue, 14 May 2019 12:25:20 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 49BFE15AB; Tue, 14 May 2019 05:25:20 -0700 (PDT) Received: from e108454-lin.cambridge.arm.com (e108454-lin.cambridge.arm.com [10.1.196.50]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 39E183F71E; Tue, 14 May 2019 05:25:19 -0700 (PDT) From: Julien Grall To: xen-devel@lists.xenproject.org Date: Tue, 14 May 2019 13:24:49 +0100 Message-Id: <20190514122456.28559-13-julien.grall@arm.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190514122456.28559-1-julien.grall@arm.com> References: <20190514122456.28559-1-julien.grall@arm.com> Subject: [Xen-devel] [PATCH MM-PART2 RESEND v2 12/19] xen/arm32: head: Always zero r3 before update a page-table entry X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Oleksandr_Tyshchenko@epam.com, Julien Grall , Stefano Stabellini , Andrii_Anisov@epam.com MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" The boot code is using r2 and r3 to hold the page-table entry value. While r2 is always updated before storing the value, this is not always the case for r3. Thankfully today, r3 will always be zero when we care. But this is difficult to track and error-prone. So always zero r3 within the few instructions before the write the page-table entry. Signed-off-by: Julien Grall Reviewed-by: Andrii Anisov Reviewed-by: Stefano Stabellini --- Changes in v2: - Use 0x0 instead of 0 - Remove a duplicate mov r3, #0 --- xen/arch/arm/arm32/head.S | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm/arm32/head.S b/xen/arch/arm/arm32/head.S index 3448817aab..18ded49a04 100644 --- a/xen/arch/arm/arm32/head.S +++ b/xen/arch/arm/arm32/head.S @@ -270,6 +270,7 @@ cpu_init_done: orr r2, r2, #PT_UPPER(MEM) /* r2:r3 := section map */ orr r2, r2, #PT_LOWER(MEM) lsl r1, r1, #3 /* r1 := Slot offset */ + mov r3, #0x0 strd r2, r3, [r4, r1] /* Mapping of paddr(start) */ mov r6, #1 /* r6 := identity map now in place */ @@ -372,11 +373,11 @@ paging: /* Add UART to the fixmap table */ ldr r1, =xen_fixmap /* r1 := vaddr (xen_fixmap) */ - mov r3, #0 lsr r2, r11, #THIRD_SHIFT lsl r2, r2, #THIRD_SHIFT /* 4K aligned paddr of UART */ orr r2, r2, #PT_UPPER(DEV_L3) orr r2, r2, #PT_LOWER(DEV_L3) /* r2:r3 := 4K dev map including UART */ + mov r3, #0x0 strd r2, r3, [r1, #(FIXMAP_CONSOLE*8)] /* Map it in the first fixmap's slot */ 1: @@ -388,6 +389,7 @@ paging: orr r2, r2, #PT_LOWER(PT) /* r2:r3 := table map of xen_fixmap */ ldr r4, =FIXMAP_ADDR(0) mov r4, r4, lsr #(SECOND_SHIFT - 3) /* r4 := Slot for FIXMAP(0) */ + mov r3, #0x0 strd r2, r3, [r1, r4] /* Map it in the fixmap's slot */ /* Use a virtual address to access the UART. */