From owner-cvs-all@FreeBSD.ORG Wed May 28 16:43:13 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CD0541065679; Wed, 28 May 2008 16:43:13 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from out1.smtp.messagingengine.com (out1.smtp.messagingengine.com [66.111.4.25]) by mx1.freebsd.org (Postfix) with ESMTP id B43DE8FC2D; Wed, 28 May 2008 16:43:13 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from compute2.internal (compute2.internal [10.202.2.42]) by out1.messagingengine.com (Postfix) with ESMTP id DD95B1103C9; Wed, 28 May 2008 12:43:12 -0400 (EDT) Received: from heartbeat1.messagingengine.com ([10.202.2.160]) by compute2.internal (MEProxy); Wed, 28 May 2008 12:43:12 -0400 X-Sasl-enc: OqRgRohAIrnCQXWyG8kFssBpqSWvr+NM5LvPrJ9PFmsY 1211992992 Received: from empiric.lon.incunabulum.net (82-35-112-254.cable.ubr07.dals.blueyonder.co.uk [82.35.112.254]) by mail.messagingengine.com (Postfix) with ESMTPSA id 2DDEF76E; Wed, 28 May 2008 12:43:12 -0400 (EDT) Message-ID: <483D8B9E.9060909@FreeBSD.org> Date: Wed, 28 May 2008 17:43:10 +0100 From: "Bruce M. Simpson" User-Agent: Thunderbird 2.0.0.14 (X11/20080514) MIME-Version: 1.0 To: Marcel Moolenaar References: <200805281641.m4SGf3ix052304@repoman.freebsd.org> In-Reply-To: <200805281641.m4SGf3ix052304@repoman.freebsd.org> X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/ia64/include atomic.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 May 2008 16:43:14 -0000 Marcel Moolenaar wrote: > ...the cmpxchg instruction was comparing > 0x0000000080000000LU to 0xffffffff80000000LU and obviously didn't > perform the exchange. > > ...Subsequent locking requests found rw_state non-zero > and the thread in question entered the kernel and block indefinitely. Man, this must have been a total nightmare to track down. I guess the bigger question is, why was gcc sign-extending a constant marked U in the first place?