[PATCH 1/2] drm/ofdrm: Cast PCI IDs to u32 for comparing

Thomas Zimmermann tzimmermann at suse.de
Thu Oct 27 14:04:34 UTC 2022


Hi

Am 27.10.22 um 15:07 schrieb Alexander Stein:
> Hello Thomas,
> 
> Am Donnerstag, 27. Oktober 2022, 13:57:06 CEST schrieb Thomas Zimmermann:
>> Properties of 32-bit integers are returned from the OF device tree
>> as type __be32. Cast PCI vendor and device IDs from __be32 to u32
>> before comparing them to constants. Fixes sparse warnings shown below.
>>
>>    drivers/gpu/drm/tiny/ofdrm.c:237:17: warning: restricted __be32 degrades
>> to integer drivers/gpu/drm/tiny/ofdrm.c:238:18: warning: restricted __be32
>> degrades to integer drivers/gpu/drm/tiny/ofdrm.c:238:54: warning:
>> restricted __be32 degrades to integer
>>
>> See [1] for the bug report.
>>
>> Reported-by: kernel test robot <lkp at intel.com>
>> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
>> Link: https://lore.kernel.org/dri-devel/202210192208.D888I6X7-lkp@intel.com/
>> # [1] ---
>>   drivers/gpu/drm/tiny/ofdrm.c | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/tiny/ofdrm.c b/drivers/gpu/drm/tiny/ofdrm.c
>> index 0e1cc2369afcc..0da8b248ccc6e 100644
>> --- a/drivers/gpu/drm/tiny/ofdrm.c
>> +++ b/drivers/gpu/drm/tiny/ofdrm.c
>> @@ -231,8 +231,11 @@ static u64 display_get_address_of(struct drm_device
>> *dev, struct device_node *of return address;
>>   }
>>
>> -static bool is_avivo(__be32 vendor, __be32 device)
>> +static bool is_avivo(__be32 vendor_id, __be32 device_id)
>>   {
>> +	u32 vendor = (__force u32)vendor_id;
>> +	u32 device = (__force u32)device_id;
> 
> I don't have much context, but just from reading this, shouldn't this be
> be32_to_cpu() instead?

I should have explained that in the commit message. The values are 
supposed to be in big endian. We compare to PCI ids. The code originally 
was taken from [1], which does the right thing. The next version will 
add this info to the commit message.

Best regards
Thomas

[1] 
https://elixir.bootlin.com/linux/v6.0.5/source/drivers/video/fbdev/offb.c#L357

> 
> Best regards,
> Alexander
> 
>> +
>>   	/* This will match most R5xx */
>>   	return (vendor == PCI_VENDOR_ID_ATI) &&
>>   	       ((device >= PCI_VENDOR_ID_ATI_R520 && device < 0x7800) ||
> 
> 
> 
> 

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20221027/ba0c9b86/attachment.sig>


More information about the dri-devel mailing list