PCI: vmd: Fix uninitialized variable usage in vmd_enable_domain()
authorXinghui Li <korantli@tencent.com>
Thu, 20 Apr 2023 09:43:31 +0000 (17:43 +0800)
committerKrzysztof Wilczyński <kwilczynski@kernel.org>
Sat, 24 Jun 2023 16:09:16 +0000 (16:09 +0000)
The ret variable in the vmd_enable_domain() function was used
uninitialized when printing a warning message upon failure of
the pci_reset_bus() function.

Thus, fix the issue by assigning ret with the value returned from
pci_reset_bus() before referencing it in the warning message.

This was detected by Smatch:

  drivers/pci/controller/vmd.c:931 vmd_enable_domain() error: uninitialized symbol 'ret'.

[kwilczynski: drop the second patch from the series, add missing reported
by tag, commit log]
Fixes: 0a584655ef89 ("PCI: vmd: Fix secondary bus reset for Intel bridges")
Link: https://lore.kernel.org/all/202305270219.B96IiIfv-lkp@intel.com
Link: https://lore.kernel.org/linux-pci/20230420094332.1507900-2-korantwork@gmail.com
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Xinghui Li <korantli@tencent.com>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Reviewed-by: Nirmal Patel <nirmal.patel@linux.intel.com>
drivers/pci/controller/vmd.c

index 30ec18283aaf4e5ec360672b986c3070e5a05f40..e718a816d4814479afddded5b98eb8deaae0869c 100644 (file)
@@ -927,7 +927,8 @@ static int vmd_enable_domain(struct vmd_dev *vmd, unsigned long features)
                if (!list_empty(&child->devices)) {
                        dev = list_first_entry(&child->devices,
                                               struct pci_dev, bus_list);
-                       if (pci_reset_bus(dev))
+                       ret = pci_reset_bus(dev);
+                       if (ret)
                                pci_warn(dev, "can't reset device: %d\n", ret);
 
                        break;