[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <rfwgp73zuyctbjgxvdgs67gq7g6glfxdd5peimqjiw5inw5h4g@cgmif7gyplct>
Date: Wed, 8 Oct 2025 15:24:29 +0200
From: Alessandro Zanni <alessandrozanni.dev@...il.com>
To: Shuah Khan <skhan@...uxfoundation.org>
Cc: Alessandro Zanni <alessandro.zanni87@...il.com>, jgg@...pe.ca,
kevin.tian@...el.com, shuah@...nel.org, iommu@...ts.linux.dev,
linux-kselftest@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] Fix to avoid the usage of the `res` variable
uninitialized in the following macro expansions.
On Tue, Oct 07, 2025 at 03:28:29PM -0600, Shuah Khan wrote:
> On 9/24/25 10:57, Alessandro Zanni wrote:
>
> Fix to avoid the usage of the `res` variable uninitialized in the following macro expansions.
>
> ret not res?
>
> You can simplify the shortlog "Fix ret unitialized warning" perhaps.
>
>
> > It solves the following warning:
>
> Fix the following warning.
>
> > In function ‘iommufd_viommu_vdevice_alloc’,
> > inlined from ‘wrapper_iommufd_viommu_vdevice_alloc’ at
> > iommufd.c:2889:1:
> > ../kselftest_harness.h:760:12: warning: ‘ret’ may be used uninitialized
> > [-Wmaybe-uninitialized]
> > 760 | if (!(__exp _t __seen)) { \
> > | ^
> > ../kselftest_harness.h:513:9: note: in expansion of macro ‘__EXPECT’
> > 513 | __EXPECT(expected, #expected, seen, #seen, ==, 1)
> > | ^~~~~~~~
> > iommufd_utils.h:1057:9: note: in expansion of macro ‘ASSERT_EQ’
> > 1057 | ASSERT_EQ(0, _test_cmd_trigger_vevents(self->fd, dev_id,
> > nvevents))
> > | ^~~~~~~~~
> > iommufd.c:2924:17: note: in expansion of macro
> > ‘test_cmd_trigger_vevents’
> > 2924 | test_cmd_trigger_vevents(dev_id, 3);
> > | ^~~~~~~~~~~~~~~~~~~~~~~~
> >
> > The issue can be reproduced, building the tests, with the command:
> > make -C tools/testing/selftests TARGETS=iommu
> >
> > Signed-off-by: Alessandro Zanni <alessandro.zanni87@...il.com>
> > ---
> > tools/testing/selftests/iommu/iommufd_utils.h | 8 +++-----
> > 1 file changed, 3 insertions(+), 5 deletions(-)
> >
> > diff --git a/tools/testing/selftests/iommu/iommufd_utils.h b/tools/testing/selftests/iommu/iommufd_utils.h
> > index 3c3e08b8c90e..772ca1db6e59 100644
> > --- a/tools/testing/selftests/iommu/iommufd_utils.h
> > +++ b/tools/testing/selftests/iommu/iommufd_utils.h
> > @@ -1042,15 +1042,13 @@ static int _test_cmd_trigger_vevents(int fd, __u32 dev_id, __u32 nvevents)
> > .dev_id = dev_id,
> > },
> > };
> > - int ret;
> > while (nvevents--) {
> > - ret = ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_TRIGGER_VEVENT),
> > - &trigger_vevent_cmd);
> > - if (ret < 0)
> > + if (!ioctl(fd, _IOMMU_TEST_CMD(IOMMU_TEST_OP_TRIGGER_VEVENT),
> > + &trigger_vevent_cmd))
> > return -1;
> > }
> > - return ret;
>
> Hmm. with this change -1 is returned instead of ret
>
> > + return 0;
> > }
> > #define test_cmd_trigger_vevents(dev_id, nvevents) \
>
> thanks,
> -- Shuah
>
This patch has a malformed title. Please refer to the patch called
'[PATCH v2] selftests/iommu: prevent use of uninitialized variable'.
But the typo `res`->`ret` is still present. Sorry for that.
About the fix, the assert test just checks if the return value is 0 or
not. That's why the variable has been deleted.
By the way, if we prefer to return also the error values, the patch
v1 just solves the warnings returning the negative values.
Let me know which version is preferable.
Thank you,
Alessandro
Powered by blists - more mailing lists