diff mbox

drm/vmwgfx: use *_32_bits() macros

Message ID 1460644444.19090.17.camel@perches.com (mailing list archive)
State New, archived
Headers show

Commit Message

Joe Perches April 14, 2016, 2:34 p.m. UTC
On Thu, 2016-04-14 at 13:32 +0200, Paul Bolle wrote:
> 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 <pebolle@tiscali.nl>
> > ---
> > 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?

Test?  Nope.  Seems obviously correct.

It might be clearer removing the temporary though:

Maybe:
---
 drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

Comments

Paul Bolle June 15, 2016, 8:37 a.m. UTC | #1
[Added Sinclair, Thomas, and "VMware Graphics".]

On do, 2016-04-14 at 07:34 -0700, Joe Perches wrote:
> On Thu, 2016-04-14 at 13:32 +0200, Paul Bolle wrote:
> > 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 <pebolle@tiscali.nl>
> > > ---
> > > 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?
> 
> Test?  Nope.  Seems obviously correct.

This warning still shows up when building v4.7-rc3 for 32 bits x86.

Since my previous message an entry for this driver showed up in
MAINTAINERS. So I'd guess Sinclair, Thomas, etc want me to resend this
small patch. Is that correct?

Thanks,


Paul Bolle
Daniel Vetter June 15, 2016, 11:11 a.m. UTC | #2
On Wed, Jun 15, 2016 at 10:37:24AM +0200, Paul Bolle wrote:
> [Added Sinclair, Thomas, and "VMware Graphics".]
> 
> On do, 2016-04-14 at 07:34 -0700, Joe Perches wrote:
> > On Thu, 2016-04-14 at 13:32 +0200, Paul Bolle wrote:
> > > 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 <pebolle@tiscali.nl>
> > > > ---
> > > > 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?
> > 
> > Test?  Nope.  Seems obviously correct.
> 
> This warning still shows up when building v4.7-rc3 for 32 bits x86.
> 
> Since my previous message an entry for this driver showed up in
> MAINTAINERS. So I'd guess Sinclair, Thomas, etc want me to resend this
> small patch. Is that correct?

Sounds more like maintainers asleep at the helm ;-)

I've applied this to drm-misc, Sinclair can apply polish later on if he
wants to.

Thanks, Daniel
Thomas Hellstrom June 15, 2016, 11:59 a.m. UTC | #3
On 06/15/2016 01:11 PM, Daniel Vetter wrote:
> On Wed, Jun 15, 2016 at 10:37:24AM +0200, Paul Bolle wrote:
>> [Added Sinclair, Thomas, and "VMware Graphics".]
>>
>> On do, 2016-04-14 at 07:34 -0700, Joe Perches wrote:
>>> On Thu, 2016-04-14 at 13:32 +0200, Paul Bolle wrote:
>>>> 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 <pebolle@tiscali.nl>
>>>>> ---
>>>>> 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?
>>> Test?  Nope.  Seems obviously correct.
>> This warning still shows up when building v4.7-rc3 for 32 bits x86.
>>
>> Since my previous message an entry for this driver showed up in
>> MAINTAINERS. So I'd guess Sinclair, Thomas, etc want me to resend this
>> small patch. Is that correct?
> Sounds more like maintainers asleep at the helm ;-)
>
> I've applied this to drm-misc, Sinclair can apply polish later on if he
> wants to.
>
> Thanks, Daniel

Thanks for applying this.
FWIW,
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>

/Thomas
diff mbox

Patch

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c
index 67cebb2..330794f 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c
@@ -291,17 +291,12 @@  void vmw_cmdbuf_header_free(struct vmw_cmdbuf_header *header)
 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;
-	vmw_write(man->dev_priv, SVGA_REG_COMMAND_HIGH, val);
-
-	val = (header->handle & 0xFFFFFFFFULL);
-	val |= header->cb_context & SVGA_CB_CONTEXT_MASK;
-	vmw_write(man->dev_priv, SVGA_REG_COMMAND_LOW, val);
+	vmw_write(man->dev_priv, SVGA_REG_COMMAND_HIGH,
+		  upper_32_bits(header->handle));
+	vmw_write(man->dev_priv, SVGA_REG_COMMAND_LOW,
+		  lower_32_bits(header->handle) |
+		  (header->cb_context & SVGA_CB_CONTEXT_MASK));
 
 	return header->cb_header->status;
 }