From owner-freebsd-arch@FreeBSD.ORG  Tue Oct 21 11:50:16 2014
Return-Path: <owner-freebsd-arch@FreeBSD.ORG>
Delivered-To: arch@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by hub.freebsd.org (Postfix) with ESMTPS id EEC5AAE7
 for <arch@freebsd.org>; Tue, 21 Oct 2014 11:50:16 +0000 (UTC)
Received: from smtp.vangyzen.net (hotblack.vangyzen.net
 [IPv6:2607:fc50:1000:7400:216:3eff:fe72:314f])
 by mx1.freebsd.org (Postfix) with ESMTP id D2DBAF85
 for <arch@freebsd.org>; Tue, 21 Oct 2014 11:50:16 +0000 (UTC)
Received: from marvin.lab.vangyzen.net (c-24-125-214-90.hsd1.va.comcast.net
 [24.125.214.90])
 by smtp.vangyzen.net (Postfix) with ESMTPSA id 005F756467;
 Tue, 21 Oct 2014 06:50:15 -0500 (CDT)
Message-ID: <54464876.80905@vangyzen.net>
Date: Tue, 21 Oct 2014 07:50:14 -0400
From: Eric van Gyzen <eric@vangyzen.net>
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64;
 rv:31.0) Gecko/20100101 Thunderbird/31.0
MIME-Version: 1.0
To: Konstantin Belousov <kostikbel@gmail.com>
Subject: Re: RfC: fueword(9) and casueword(9)
References: <20141021094539.GA1877@kib.kiev.ua>
In-Reply-To: <20141021094539.GA1877@kib.kiev.ua>
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: 7bit
Cc: arch@freebsd.org
X-BeenThere: freebsd-arch@freebsd.org
X-Mailman-Version: 2.1.18-1
Precedence: list
List-Id: Discussion related to FreeBSD architecture <freebsd-arch.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/options/freebsd-arch>,
 <mailto:freebsd-arch-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-arch/>
List-Post: <mailto:freebsd-arch@freebsd.org>
List-Help: <mailto:freebsd-arch-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-arch>,
 <mailto:freebsd-arch-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 21 Oct 2014 11:50:17 -0000

On 10/21/2014 05:45, Konstantin Belousov wrote:
> @@ -921,7 +933,9 @@ do_lock_normal(struct thread *td, struct umutex *m, uint32_t flags,
>  	 * can fault on any access.
>  	 */
>  	for (;;) {
> -		owner = fuword32(__DEVOLATILE(void *, &m->m_owner));
> +		rv = fueword32(__DEVOLATILE(void *, &m->m_owner), &owner);
> +		if (error == -1)
> +			return (EFAULT);

rv is assigned, but error is tested.

I only reviewed kern_umtx.c, and very quickly.  I'll try to review more
thoroughly later today.

Eric