From nobody Tue Apr 11 14:10:35 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Pwnmr2YVyz44vxx; Tue, 11 Apr 2023 14:10:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Pwnmr0SCjz4KY7; Tue, 11 Apr 2023 14:10:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1681222236; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+aSWpDKEfxuvWUVljOD8thAsMJ21YIcTteu/kx5Q4d0=; b=Swhdm6ouvg2ijiQfutH9HTA5GBuZvJRZZ8Dl+Kl/+43GB4xHoKAnBH+1AhYYGRx5nLnBkT aPCRnQsrnLIWIh6hpcCtOhkqgkVrW9d+bA7/xlyxIIaOLCIBfs96xE+9f0TPDg13MzwCDH xI1+WKA5O+5WZ2fad604CjCc6YuHzrhuGnElbo+yqetjktgkM6UqJhc3axVN+k9eNgLOtS VgauRuALBazsO6QZECDAPrIbK5SE5KwVqxu4AoGnqyiHlOmYSuiBwm9Wrn/ifPUokNYdX+ temRpklmX6Ut1GJNHzPfyLUnejLNt+tiANHEAYqSbWX9dPv56Obt7ViJ9SE/cA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1681222236; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+aSWpDKEfxuvWUVljOD8thAsMJ21YIcTteu/kx5Q4d0=; b=A9P/VTyjKRWL8XjjVsNbWHd4AXXU4Jbk8DgZXGNqu6KnR80Oft7yQW2QM9PkOvR7yf/zBj bYNfkDzpo1vwqEeMMO/OWznioGEub1sxLQTPam0Au2tjRND3CwF5+c1xuTaFLPxdOhp2hO qj+UYFjH/fkNimPMQ/QEERfOY/hLMfuAnm+9hhXPGb46eGRnSS48SENWtYf3bZdVCteZqX DHiQMsH175/+Tl+88mRSpUp4Syp1obO/RZiydu0sdGWBvrhfreHx9jEz+UYN1mUlt94d5c y4eLpQzGghRooZIhPoIxEagA1+7Pu8FmDZEwN8NkJ6LlMeJZyptez5b6pgfTJQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1681222236; a=rsa-sha256; cv=none; b=UXd5AtHe002g7JJ4/9XAHSSgg7WxbmcelmZpIla/781fv+J5x4ayCMOSUWdR8tHYNyDYP+ HyLgJ2984pMqeK3TBwInXczCLFB9UUPUw0miSGOqvw01AS8ABA3H43UevYwUF35MxuXoWq q7r+JZokCtO30RgEFQ4C5MsAtVe6TRq+o+XL+mJ2wXwkniuAN9Pfm8PNitatCA/xFMPkln ziSWz3ryvmB55EDkUitJm3ZyNPaXYL4+cYIux+h44tocHy9gs8WgUAiT3ZRWBOxpVQ42St YKECYoF1sqbXJDKnqi1ny+V4U4jhMZ2vTibIzF/ZJuyn9fzoIfF2Qo7I/dIIQA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Pwnmq4szkzKyh; Tue, 11 Apr 2023 14:10:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 33BEAZvc091060; Tue, 11 Apr 2023 14:10:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 33BEAZx7091059; Tue, 11 Apr 2023 14:10:35 GMT (envelope-from git) Date: Tue, 11 Apr 2023 14:10:35 GMT Message-Id: <202304111410.33BEAZx7091059@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: e180d4c124b5 - stable/13 - arm64: Ensure that thread0's PCB flags are initialized List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: e180d4c124b51b7f5958ff64b180a1e2cabf7fb7 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=e180d4c124b51b7f5958ff64b180a1e2cabf7fb7 commit e180d4c124b51b7f5958ff64b180a1e2cabf7fb7 Author: Mark Johnston AuthorDate: 2023-03-31 13:50:34 +0000 Commit: Mark Johnston CommitDate: 2023-04-11 14:09:45 +0000 arm64: Ensure that thread0's PCB flags are initialized On arm64, the PCB is stored at the top of the thread stack. For thread0 this comes from the static "initstack" region, which is placed in the .init_pagetable section, which is not part of the BSS and thus doesn't get zeroed by locore. (See the comment in ldscript.arm64.) It is thus possible for the pcb_flags field to be uninitialized, which can result in PCB_SINGLE_STEP being set. Fix this by simply initializing the field. A separate commit will move initstack out of the .init_pagetable section, since it has no reason to be there, but it is preferable to explicitly initialize PCB fields anyway. In particular, regular kernel stacks are not zeroed upon allocation, so we should be consistent here. Reviewed by: andrew MFC after: 1 week Sponsored by: Klara, Inc. Sponsored by: Juniper Networks Differential Revision: https://reviews.freebsd.org/D39343 (cherry picked from commit a54370f4abb6bc4e3ef25da97adb3262bacb5a4b) --- sys/arm64/arm64/machdep.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/arm64/arm64/machdep.c b/sys/arm64/arm64/machdep.c index 68fcf0257232..adc627f4b085 100644 --- a/sys/arm64/arm64/machdep.c +++ b/sys/arm64/arm64/machdep.c @@ -371,6 +371,7 @@ init_proc0(vm_offset_t kstack) #endif thread0.td_pcb = (struct pcb *)(thread0.td_kstack + thread0.td_kstack_pages * PAGE_SIZE) - 1; + thread0.td_pcb->pcb_flags = 0; thread0.td_pcb->pcb_fpflags = 0; thread0.td_pcb->pcb_fpusaved = &thread0.td_pcb->pcb_fpustate; thread0.td_pcb->pcb_vfpcpu = UINT_MAX;