vfio/type1: Initialize resv_msi_base
Subsystems (2)
PATCH 1/1 vfio/type1: Initialize resv_msi_base
From: Joerg Roedel <[email protected]>
After enabling CONFIG_IOMMU_DMA on X86 a new warning appears when compiling vfio:
drivers/vfio/vfio_iommu_type1.c: In function ‘vfio_iommu_type1_attach_group’:drivers/vfio/vfio_iommu_type1.c:1827:7: warning: ‘resv_msi_base’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ret = iommu_get_msi_cookie(domain->domain, resv_msi_base); ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The warning is a false positive, because the call to iommu_get_msi_cookie() only happens when vfio_iommu_has_sw_msi() returned true. And that only happens when it also set resv_msi_base.
But initialize the variable anyway to get rid of the warning.
--- drivers/vfio/vfio_iommu_type1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/vfio/vfio_iommu_type1.c +1 -1
@@ -1658,7 +1658,7 @@ static int vfio_iommu_type1_attach_group(void *iommu_data,struct bus_type *bus =NULL ;int ret;bool resv_msi, msi_remap; -phys_addr_t resv_msi_base; +phys_addr_t resv_msi_base =0 ;struct iommu_domain_geometry geo;LIST_HEAD (iova_copy);LIST_HEAD (group_resv_regions);
Signature · 1 line
2.16.4
Hi Joerg,
Quoted 27 lines · Joerg Roedel
From: Joerg Roedel <[email protected]>
After enabling
CONFIG_IOMMU_DMAon X86 a new warning appears when compiling vfio:
drivers/vfio/vfio_iommu_type1.c: In function ‘vfio_iommu_type1_attach_group’:drivers/vfio/vfio_iommu_type1.c:1827:7: warning: ‘resv_msi_base’ may be used uninitialized in this function [-Wmaybe-uninitialized]ret = iommu_get_msi_cookie(domain->domain, resv_msi_base); ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~The warning is a false positive, because the call to
iommu_get_msi_cookie()only happens whenvfio_iommu_has_sw_msi()returned true. And that only happens when it also setresv_msi_base.But initialize the variable anyway to get rid of the warning.
Signed-off-by Joerg Roedel <[email protected]>--- drivers/vfio/vfio_iommu_type1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/vfio/vfio_iommu_type1.c +0
-0
drivers/vfio/vfio_iommu_type1.c static int vfio_iommu_type1_attach_group(void *iommu_data, · line 1664
Quoted 8 lines
drivers/vfio/vfio_iommu_type1.c +1
-1@@ -1658,7 +1658,7 @@ static int vfio_iommu_type1_attach_group(void *iommu_data,struct bus_type *bus =NULL ;int ret;bool resv_msi, msi_remap; -phys_addr_t resv_msi_base; +phys_addr_t resv_msi_base =0 ;struct iommu_domain_geometry geo;LIST_HEAD (iova_copy);LIST_HEAD (group_resv_regions);
Thanks
Eric
Quoted 26 lines · On Tue, 15 Oct 2019 17:16:50 +0200 Joerg Roedel <[email protected]> wrote:
From: Joerg Roedel <[email protected]>
After enabling
CONFIG_IOMMU_DMAon X86 a new warning appears when compiling vfio:
drivers/vfio/vfio_iommu_type1.c: In function ‘vfio_iommu_type1_attach_group’:drivers/vfio/vfio_iommu_type1.c:1827:7: warning: ‘resv_msi_base’ may be used uninitialized in this function [-Wmaybe-uninitialized]ret = iommu_get_msi_cookie(domain->domain, resv_msi_base); ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~The warning is a false positive, because the call to
iommu_get_msi_cookie()only happens whenvfio_iommu_has_sw_msi()returned true. And that only happens when it also setresv_msi_base.But initialize the variable anyway to get rid of the warning.
Signed-off-by Joerg Roedel <[email protected]>--- drivers/vfio/vfio_iommu_type1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/vfio/vfio_iommu_type1.c +0
-0
drivers/vfio/vfio_iommu_type1.c static int vfio_iommu_type1_attach_group(void *iommu_data, · line 1664
Quoted 8 lines
drivers/vfio/vfio_iommu_type1.c +1
-1@@ -1658,7 +1658,7 @@ static int vfio_iommu_type1_attach_group(void *iommu_data,struct bus_type *bus =NULL ;int ret;bool resv_msi, msi_remap; -phys_addr_t resv_msi_base; +phys_addr_t resv_msi_base =0 ;struct iommu_domain_geometry geo;LIST_HEAD (iova_copy);LIST_HEAD (group_resv_regions);
Quoted 26 lines · On Tue, 15 Oct 2019 17:16:50 +0200 Joerg Roedel <[email protected]> wrote:
From: Joerg Roedel <[email protected]>
After enabling
CONFIG_IOMMU_DMAon X86 a new warning appears when compiling vfio:
drivers/vfio/vfio_iommu_type1.c: In function ‘vfio_iommu_type1_attach_group’:drivers/vfio/vfio_iommu_type1.c:1827:7: warning: ‘resv_msi_base’ may be used uninitialized in this function [-Wmaybe-uninitialized]ret = iommu_get_msi_cookie(domain->domain, resv_msi_base); ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~The warning is a false positive, because the call to
iommu_get_msi_cookie()only happens whenvfio_iommu_has_sw_msi()returned true. And that only happens when it also setresv_msi_base.But initialize the variable anyway to get rid of the warning.
Signed-off-by Joerg Roedel <[email protected]>--- drivers/vfio/vfio_iommu_type1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/vfio/vfio_iommu_type1.c +0
-0
drivers/vfio/vfio_iommu_type1.c static int vfio_iommu_type1_attach_group(void *iommu_data, · line 1664
Quoted 8 lines
drivers/vfio/vfio_iommu_type1.c +1
-1@@ -1658,7 +1658,7 @@ static int vfio_iommu_type1_attach_group(void *iommu_data,struct bus_type *bus =NULL ;int ret;bool resv_msi, msi_remap; -phys_addr_t resv_msi_base; +phys_addr_t resv_msi_base =0 ;struct iommu_domain_geometry geo;LIST_HEAD (iova_copy);LIST_HEAD (group_resv_regions);
Thanks Joerg! Added to vfio for-linus branch with Connie and Eric's reviews for v5.4. Thanks,
Alex