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

Re: [PATCH] xen/arm: smmu-v3: Fix MISRA C 2012 Rule 1.3 violations


  • To: xenia <burzalodowa@xxxxxxxxx>
  • From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • Date: Wed, 29 Jun 2022 14:10:30 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=2; 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=Ud/+5UlDKigZrJ+APK41c0mg/Zd9qlvEZ0mAhSJ3m5k=; b=Gym/TCSp7s6ML9BvvYfTAG0VsqZQOKMllL5TGh9B4F9ptd1x7nVEC6kEkAnR2qVCMYcxnUhIMkBwHEi9Xdm7hDjrqvk/DJqRXRLx2WxrhQIK1iJQatQN4sbxdEwVHe42iZ3n4FNaZJULRYQqjuACGh2N3CsuD8fUSTmsI+gFi+SAUoX51ETsLCVpA7wxWa85oCDS/vfiWrNPmJNmK8Php1YQNsl8ljspOVb2/DTidGcnFO+5HGVOB3FpACrnPVn+bdmx9j+WunuH9teukqmKSpN7AqxuT2EwwsiianfzGcdbM2zCIijuQmn8vRs359L4GP1hszSdNMBNrgiDzaNfTw==
  • 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=Ud/+5UlDKigZrJ+APK41c0mg/Zd9qlvEZ0mAhSJ3m5k=; b=afwLNcG8GNdwbeDrdpB+86nooJ7mNoPNrrOxerivJ9DfLowYj2Kj+ZrhSxCvRNp6j16bMuuaUkWM/Lc0zyS55nJPg84n5cREIKDB0US6CdHAh3gUfVln/rs3dk1RQ9CxqoH7oFdj5r9BSDjBveH2oFqnqoEIYTty2pd3HExJJO66kn73hjzJCVsJ/f30mjEEH0HTagTJSIOXfv7iyRh9OCrp9X3QeHgiuOYtcPFm/BlyGTgCFiKMBX05YXsU7K2qmDxoyVLXNkghtyUJpIwa/MA6KEGD7S8YQiMThfoaWIscT9Co6hCL9oaOeCkgOoWbHlIKEXtyxQ52XaqU8UUv9A==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=F5RUAaUarZ7yrnNs52O45ant0jRFbVwc5zcocZl8Cb/X0Ycp2rurd3lls1pO5AY/5ohHPDzv19f4NRIix7+lLHmEsf1ujOOGvBzkiAM4FE4zDIMpkMn4fjt+CECkiVSDoyzgNmefq71UOYn7UsovhdCi4hpeZnRbpG7ofrVfxxfVFc2mZoSmgbgYhMNaHSRuJm3HKI7+FrxsLLtmDDCdY11JYljXbAWD/WjInLRiF/ykKIdyhl4isEI0FWBV8BGU4PryMbjgfrA4XvJKgS7mMUigO40gwQMqomaaeDOmDy8dpuBWyD+zS+p0fNJ4/8q7LYax0rKiAlpyyHxKYC8TZQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cZsn7nkYl7a8oy3Cseclrzo/YAwG52TeijlFAq1nh6UNNtc5BcmgL7Ha/k2qqtHRcRd/ZUEgPPMZxYVn4677n6GiFPo8KxBUYzko5Gt9U3dTqW1BqMh4uBAdxH+U1faJJ6LVuAIuUVArHGuo+pBoQ7ORwi6ZAHrmmHog7Icb4C3nR7YVtoO1G+InjKGXsYS40d4KpCjejoXX+j3ie+dPcFT+CkC4zjKv/TIGkyzod2Y5tgox+c3SBV6UbHrzVNA+g78e72hbIBYCDXxqHhjbswShir0bfseiG7L0+cBjtCIS5wOWQpt/XZ84XYDkSsOTRYI72XvUmKM0t/qpBdvELQ==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Rahul Singh <Rahul.Singh@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
  • Delivery-date: Wed, 29 Jun 2022 14:10:51 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Original-authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Thread-index: AQHYiwEFKAxihkpP+kCxp/TNi89h5q1l/I6AgAAZcwCAAAIrgIAAVcuA
  • Thread-topic: [PATCH] xen/arm: smmu-v3: Fix MISRA C 2012 Rule 1.3 violations

Hi,

In fact the patch was committed before we started this discussion as Rahul R-b 
was enough.
But I would still be interested to have other maintainers view on this.

> On 29 Jun 2022, at 10:03, Bertrand Marquis <Bertrand.Marquis@xxxxxxx> wrote:
> 
> Hi Xenia,
> 
>> On 29 Jun 2022, at 09:55, xenia <burzalodowa@xxxxxxxxx> wrote:
>> 
>> Hi Bertrand,
>> 
>> On 6/29/22 10:24, Bertrand Marquis wrote:
>>> Hi Xenia,
>>> 
>>>> On 28 Jun 2022, at 16:08, Xenia Ragiadakou <burzalodowa@xxxxxxxxx> wrote:
>>>> 
>>>> The expression 1 << 31 produces undefined behaviour because the type of 
>>>> integer
>>>> constant 1 is (signed) int and the result of shifting 1 by 31 bits is not
>>>> representable in the (signed) int type.
>>>> Change the type of 1 to unsigned int by adding the U suffix.
>>>> 
>>>> Signed-off-by: Xenia Ragiadakou <burzalodowa@xxxxxxxxx>
>>>> ---
>>>> Q_OVERFLOW_FLAG has already been fixed in upstream kernel code.
>>>> For GBPA_UPDATE I will submit a patch.
>>>> 
>>>> xen/drivers/passthrough/arm/smmu-v3.c | 4 ++--
>>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>> 
>>>> diff --git a/xen/drivers/passthrough/arm/smmu-v3.c 
>>>> b/xen/drivers/passthrough/arm/smmu-v3.c
>>>> index 1e857f915a..f2562acc38 100644
>>>> --- a/xen/drivers/passthrough/arm/smmu-v3.c
>>>> +++ b/xen/drivers/passthrough/arm/smmu-v3.c
>>>> @@ -338,7 +338,7 @@ static int platform_get_irq_byname_optional(struct 
>>>> device *dev,
>>>> #define CR2_E2H                            (1 << 0)
>>>> 
>>>> #define ARM_SMMU_GBPA                      0x44
>>>> -#define GBPA_UPDATE                       (1 << 31)
>>>> +#define GBPA_UPDATE                       (1U << 31)
>>>> #define GBPA_ABORT                 (1 << 20)
>>>> 
>>>> #define ARM_SMMU_IRQ_CTRL          0x50
>>>> @@ -410,7 +410,7 @@ static int platform_get_irq_byname_optional(struct 
>>>> device *dev,
>>>> 
>>>> #define Q_IDX(llq, p)                      ((p) & ((1 << 
>>>> (llq)->max_n_shift) - 1))
>>>> #define Q_WRP(llq, p)                      ((p) & (1 << 
>>>> (llq)->max_n_shift))
>>> Could also make sense to fix those 2 to be coherent.
>> According to the spec, the maximum value that max_n_shift can take is 19.
>> Hence, 1 << (llq)->max_n_shift cannot produce undefined behavior.
> 
> I agree with that but my preference would be to not rely on deep analysis on 
> the code for those kind of cases and use 1U whenever possible.
> 
> What other maintainers think on this ?
> 
>> 
>> Personally, I have no problem to submit another patch that adds U/UL 
>> suffixes to all shifted integer constants in the file :) but ...
>> It seems that this driver has been ported from linux and this file still 
>> uses linux coding style, probably because deviations will reduce its 
>> maintainability.
>> Adding a U suffix to those two might be considered an unjustified deviation.
> 
> At this stage the SMMU code is starting to deviate a lot from Linux so it 
> will not be possible to update it easily to sync with latest linux code.
> And the decision should be are we fixing it or should we fully skip this file 
> saying that it is coming from linux and should not be fixed.
> We started to have a discussion during the FuSa meeting on this but we need 
> to come up with a conclusion per file.
> 
> On this one I would say keeping it with linux code style and near from the 
> linux one is not needed.
> Rahul, Julien, Stefano: what do you think here ?
> 
> Cheers
> Bertrand

Cheers
Bertrand




 


Rackspace

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