[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 1/7] intel_iommu: Fix mask may be uninitialized in vtd_con
From: |
Auger Eric |
Subject: |
Re: [PATCH v2 1/7] intel_iommu: Fix mask may be uninitialized in vtd_context_device_invalidate |
Date: |
Thu, 25 Feb 2021 17:33:58 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 |
Hi Philippe,
On 2/25/21 11:08 AM, Philippe Mathieu-Daudé wrote:
> On 2/25/21 10:14 AM, Eric Auger wrote:
>> With -Werror=maybe-uninitialized configuration we get
>> ../hw/i386/intel_iommu.c: In function ‘vtd_context_device_invalidate’:
>> ../hw/i386/intel_iommu.c:1888:10: error: ‘mask’ may be used
>> uninitialized in this function [-Werror=maybe-uninitialized]
>> 1888 | mask = ~mask;
>> | ~~~~~^~~~~~~
>>
>> Add a g_assert_not_reached() to avoid the error.
>>
>> Signed-off-by: Eric Auger <eric.auger@redhat.com>
>> ---
>> hw/i386/intel_iommu.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
>> index b4f5094259..3206f379f8 100644
>> --- a/hw/i386/intel_iommu.c
>> +++ b/hw/i386/intel_iommu.c
>> @@ -1884,6 +1884,8 @@ static void
>> vtd_context_device_invalidate(IntelIOMMUState *s,
>> case 3:
>> mask = 7; /* Mask bit 2:0 in the SID field */
>> break;
>> + default:
>> + g_assert_not_reached();
>> }
>> mask = ~mask;
>
> Unrelated to this patch, but I wonder why we don't directly assign the
> correct value of the mask in the switch cases...
After reading the vtd spec again, I think this is aligned with the spec
description. FM = function mask encodes the bits to mask. Then you
actually compute the mask by ~mask.
>
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Thanks!
Eric
>
> set the mask
> diuse the
>>
>>
>
- [PATCH v2 0/7] Some vIOMMU fixes, Eric Auger, 2021/02/25
- [PATCH v2 1/7] intel_iommu: Fix mask may be uninitialized in vtd_context_device_invalidate, Eric Auger, 2021/02/25
- [PATCH v2 3/7] virtio-iommu: Handle non power of 2 range invalidations, Eric Auger, 2021/02/25
- [PATCH v2 2/7] dma: Introduce dma_aligned_pow2_mask(), Eric Auger, 2021/02/25
- [PATCH v2 4/7] hw/arm/smmu-common: Fix smmu_iotlb_inv_iova when asid is not set, Eric Auger, 2021/02/25
- [PATCH v2 5/7] hw/arm/smmuv3: Enforce invalidation on a power of two range, Eric Auger, 2021/02/25
- [PATCH v2 6/7] hw/arm/smmuv3: Fix SMMU_CMD_CFGI_STE_RANGE handling, Eric Auger, 2021/02/25
- [PATCH v2 7/7] hw/arm/smmuv3: Uniformize sid traces, Eric Auger, 2021/02/25