From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753791AbcDNLc1 (ORCPT ); Thu, 14 Apr 2016 07:32:27 -0400 Received: from lb3-smtp-cloud3.xs4all.net ([194.109.24.30]:51932 "EHLO lb3-smtp-cloud3.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752595AbcDNLcZ (ORCPT ); Thu, 14 Apr 2016 07:32:25 -0400 Message-ID: <1460633540.2728.6.camel@tiscali.nl> Subject: Re: [PATCH] drm/vmwgfx: use *_32_bits() macros From: Paul Bolle To: David Airlie Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Date: Thu, 14 Apr 2016 13:32:20 +0200 In-Reply-To: <1457000770-2317-1-git-send-email-pebolle@tiscali.nl> References: <1457000770-2317-1-git-send-email-pebolle@tiscali.nl> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.16.5 (3.16.5-3.fc22) Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On do, 2016-03-03 at 11:26 +0100, Paul Bolle wrote: > Use the upper_32_bits() macro instead of the four line equivalent that > triggers a GCC warning on 32 bits x86: > drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c: In function > 'vmw_cmdbuf_header_submit': > drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c:297:25: warning: right > shift count >= width of type [-Wshift-count-overflow] > val = (header->handle >> 32); > ^ > > And use the lower_32_bits() macro instead of and-ing with a 32 bits > mask. > > Signed-off-by: Paul Bolle > --- > Note: compile tested only (I don't use any of vmware's products). The warning can still be seen on v4.6-rc3 for 32 bits x86. This patch applies cleanly to that rc. Has anyone had a chance to look at this patch, and perhaps even test it? Thanks, Paul Bolle > drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c > b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c > index 67cebb23c940..aa04fb0159a7 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c > @@ -293,13 +293,10 @@ static int vmw_cmdbuf_header_submit(struct > vmw_cmdbuf_header *header) > struct vmw_cmdbuf_man *man = header->man; > u32 val; > > - if (sizeof(header->handle) > 4) > - val = (header->handle >> 32); > - else > - val = 0; > + val = upper_32_bits(header->handle); > vmw_write(man->dev_priv, SVGA_REG_COMMAND_HIGH, val); > > - val = (header->handle & 0xFFFFFFFFULL); > + val = lower_32_bits(header->handle); > val |= header->cb_context & SVGA_CB_CONTEXT_MASK; > vmw_write(man->dev_priv, SVGA_REG_COMMAND_LOW, val); >