NetBSD Problem Report #50635

From www@NetBSD.org  Fri Jan  8 21:51:54 2016
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.NetBSD.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.netbsd.org", Issuer "Postmaster NetBSD.org" (verified OK))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 618C47A20F
	for <gnats-bugs@gnats.NetBSD.org>; Fri,  8 Jan 2016 21:51:54 +0000 (UTC)
Message-Id: <20160108215153.601B37ACCA@mollari.NetBSD.org>
Date: Fri,  8 Jan 2016 21:51:53 +0000 (UTC)
From: frank.zerangue@gmail.com
Reply-To: frank.zerangue@gmail.com
To: gnats-bugs@NetBSD.org
Subject: arm11_setup() cpuctrlmask value causes CPU_CONTROL_VECRELOC bit to toggle
X-Send-Pr-Version: www-1.0

>Number:         50635
>Category:       port-arm
>Synopsis:       arm11_setup() cpuctrlmask value causes CPU_CONTROL_VECRELOC bit to toggle
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-arm-maintainer
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jan 08 21:55:01 +0000 2016
>Closed-Date:    Tue Aug 30 10:05:27 +0000 2022
>Last-Modified:  Tue Aug 30 10:05:27 +0000 2022
>Originator:     Frank Zerangue
>Release:        NetBSD-7.0
>Organization:
>Environment:
Darwin Franks-Mac-Pro-3.local 14.5.0 Darwin Kernel Version 14.5.0: Wed Jul 29 02:26:53 PDT 2015; root:xnu-2782.40.9~1/RELEASE_X86_64 x86_64
>Description:
arch/arm/arm/cpufunc.c:  arm11_setup()

// When using high vectors, code below sets CPU_CONTROL_VECRELOC bit in cpuctrl.
// When cpu_control(cpuctrlmask,cpuctrl) is called later cpu_control() will toggle bit if already set rather than set it because cpuctrlmask does not contain this bit.

#ifndef ARM_HAS_VBAR
	if (vector_page == ARM_VECTORS_HIGH)
		cpuctrl |= CPU_CONTROL_VECRELOC;
#endif
>How-To-Repeat:

>Fix:

#ifndef ARM_HAS_VBAR
	if (vector_page == ARM_VECTORS_HIGH) {
		cpuctrl |= CPU_CONTROL_VECRELOC;
                cpuctrlmask |= CPU_CONTROL_VECRELOC;
        }
#endif

>Release-Note:

>Audit-Trail:

State-Changed-From-To: open->closed
State-Changed-By: skrll@NetBSD.org
State-Changed-When: Tue, 30 Aug 2022 10:05:27 +0000
State-Changed-Why:
----------------------------
revision 1.184
date: 2022-05-16 08:07:17 +0100;  author: skrll;  state: Exp;  lines: +5 -4;  commitid: CiWBCtxMjHh0wfED;
port-arm/50635: arm11_setup() cpuctrlmask value causes CPU_CONTROL_VECRELOC bit to toggle

Fix slightly differently to as suggested in the PR.  Annotate arm10_setup
while I'm here.


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.46 2020/01/03 16:35:01 leot Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2020 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.