[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [XEN PATCH v2 09/13] xen/public: fix violations of MISRA C:2012 Rule 7.2


  • To: Juergen Gross <jgross@xxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Thu, 6 Jul 2023 09:43:24 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=VuKre1ml5J9+q2ccCSZj/nPbIAuvM31TeYDtCVeOiJs=; b=R4jD3rTg+5H+VMKH6tnJUBPTJxV0YnXQo2joCFQYOVyGrmMowGOczBGvw7PX0SjQPO+VXDM+VOcwciplv3UAjcpiZvv4OP2hp3Ktk94nMSi6csuntPEqakmk3t1QOySjZ3fDSh1RN9QhiLTksVne7xg3udpvfqU3wRBMd2bL16yH1KdqWFZVW9xoaLTpxUSs0nROQhwRHJZrlXcdV3pBN9wEt0P/+wf3WZfkcmHoX7SraXlFepfQ0gY9FTqAtuROi4eA3dzJru9JtxqVA4Aj1Ys94wER+FbOhwFXhXN38PL//EC3YYwDVa0Bhtaq5bLWxtL7hQNvQFJjKxjv+Zg2iw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HBmKOHxTC4J+rH/cU6LYHYQayG9GYzhIfkYkJ8tHQi4W8++a8BbdmjSCecijSq94gYuZYGQY557dH9XqTM2tzP1Y8824kZOWVyAr86cMibqiyYD7kaX33pxDYqqIxJuiMQ+ja864egUd5OR9fnzT1TIF02wURX/y/EYHAMAhQvFh1Y5LZJETbTlOZ3DbFyEwRpGytU8Ymk0CN5MuQ/oHFAiee8AbwxZT+IEHANd/iM5YFN3i+gTU9ivmfhFL3OgN4MAIOUxYLC07QzIjw1D6pPBajBqnUeeUzouw0zfjMlfNlDfQcbXyeiHjrDVpUtT7CLMWt8iw68ezLWEJFqOPxQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: consulting@xxxxxxxxxxx, Gianluca Luparini <gianluca.luparini@xxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Xenia Ragiadakou <Xenia.Ragiadakou@xxxxxxx>, Ayan Kumar Halder <ayan.kumar.halder@xxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx, Simone Ballarin <simone.ballarin@xxxxxxxxxxx>
  • Delivery-date: Thu, 06 Jul 2023 07:43:54 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 05.07.2023 17:33, Juergen Gross wrote:
> On 05.07.23 17:26, Simone Ballarin wrote:
>> From: Gianluca Luparini <gianluca.luparini@xxxxxxxxxxx>
>>
>> The xen sources contains violations of MISRA C:2012 Rule 7.2 whose
>> headline states:
>> "A 'u' or 'U' suffix shall be applied to all integer constants
>> that are represented in an unsigned type".
>>
>> Add the 'U' suffix to integers literals with unsigned type and also to other
>> literals used in the same contexts or near violations, when their positive
>> nature is immediately clear. The latter changes are done for the sake of
>> uniformity.
>>
>> Signed-off-by: Simone Ballarin <simone.ballarin@xxxxxxxxxxx>
>> Signed-off-by: Gianluca Luparini <gianluca.luparini@xxxxxxxxxxx>
>> ---
>> Changes in v2:
>> - minor change to commit title
>> - change commit message
>> - correct macros code style
>> ---
>>   xen/include/public/io/ring.h | 10 +++++-----
>>   1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/xen/include/public/io/ring.h b/xen/include/public/io/ring.h
>> index 025939278b..0cae4367be 100644
>> --- a/xen/include/public/io/ring.h
>> +++ b/xen/include/public/io/ring.h
>> @@ -36,11 +36,11 @@
>>   typedef unsigned int RING_IDX;
>>   
>>   /* Round a 32-bit unsigned constant down to the nearest power of two. */
>> -#define __RD2(_x)  (((_x) & 0x00000002) ? 0x2                  : ((_x) & 
>> 0x1))
>> -#define __RD4(_x)  (((_x) & 0x0000000c) ? __RD2((_x)>>2)<<2    : __RD2(_x))
>> -#define __RD8(_x)  (((_x) & 0x000000f0) ? __RD4((_x)>>4)<<4    : __RD4(_x))
>> -#define __RD16(_x) (((_x) & 0x0000ff00) ? __RD8((_x)>>8)<<8    : __RD8(_x))
>> -#define __RD32(_x) (((_x) & 0xffff0000) ? __RD16((_x)>>16)<<16 : __RD16(_x))
>> +#define __RD2(x)  (((x) & 0x00000002U) ? 0x2                     : ((x) & 
>> 0x1))
> 
> Shouldn't this be rather:
> 
> +#define __RD2(x)  (((x) & 0x00000002U) ? 0x2U                   : ((x) & 
> 0x1U))

I don't think it matters much (as the comment says, the input is expected
to be unsigned anyway), and I expect even the one U that was added here
was only added for consistency. The sole one that really matter is imo ...

>> +#define __RD4(x)  (((x) & 0x0000000cU) ? __RD2((x) >> 2) << 2    : __RD2(x))
>> +#define __RD8(x)  (((x) & 0x000000f0U) ? __RD4((x) >> 4) << 4    : __RD4(x))
>> +#define __RD16(x) (((x) & 0x0000ff00U) ? __RD8((x) >> 8) << 8    : __RD8(x))
>> +#define __RD32(x) (((x) & 0xffff0000U) ? __RD16((x) >> 16) << 16 : 
>> __RD16(x))

... this single one.

Jan



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.