From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel =?ISO-8859-1?Q?D=E4nzer?= Subject: Re: [PATCH] drm/radeon: make 64bit fences more robust Date: Mon, 10 Sep 2012 13:12:17 +0200 Message-ID: <1347275537.30263.368.camel@thor.local> References: <1347268383-4150-1-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mail.gna.ch (darkcity.gna.ch [195.226.6.51]) by gabe.freedesktop.org (Postfix) with ESMTP id 58F779E79A for ; Mon, 10 Sep 2012 04:12:31 -0700 (PDT) In-Reply-To: <1347268383-4150-1-git-send-email-deathsimple@vodafone.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: Christian =?ISO-8859-1?Q?K=F6nig?= Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org On Mon, 2012-09-10 at 11:13 +0200, Christian K=F6nig wrote: = > Only increase the higher 32bits if we really detect a wrap around. > = > Fixes: > https://bugs.freedesktop.org/show_bug.cgi?id=3D54129 > https://bugs.freedesktop.org/show_bug.cgi?id=3D54662 > = > Possible fixes: > https://bugzilla.redhat.com/show_bug.cgi?id=3D846505 > https://bugzilla.redhat.com/show_bug.cgi?id=3D845639 > = > Signed-off-by: Christian K=F6nig > Cc: stable@vger.kernel.org > --- > drivers/gpu/drm/radeon/radeon_fence.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > = > diff --git a/drivers/gpu/drm/radeon/radeon_fence.c b/drivers/gpu/drm/rade= on/radeon_fence.c > index 7b737b9..4781e13 100644 > --- a/drivers/gpu/drm/radeon/radeon_fence.c > +++ b/drivers/gpu/drm/radeon/radeon_fence.c > @@ -160,7 +160,7 @@ void radeon_fence_process(struct radeon_device *rdev,= int ring) > do { > seq =3D radeon_fence_read(rdev, ring); > seq |=3D last_seq & 0xffffffff00000000LL; > - if (seq < last_seq) { > + if (seq < (last_seq - 0x80000000LL)) { > seq +=3D 0x100000000LL; > } Can you provide a bit more explanation for this change? In particular, how could the code previously detect a wraparound when there was none, and why is this the proper fix? -- = Earthling Michel D=E4nzer | http://www.amd.com Libre software enthusiast | Debian, X and DRI developer