hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c
....@@ -851,9 +851,11 @@
851851 rp_pdev = pci_get_domain_bus_and_slot(0, 0, devfn);
852852 if (rp_pdev && rp_pdev->subordinate) {
853853 bus = rp_pdev->subordinate->number;
854
+ pci_dev_put(rp_pdev);
854855 return pci_get_domain_bus_and_slot(0, bus, 0);
855856 }
856857
858
+ pci_dev_put(rp_pdev);
857859 return NULL;
858860 }
859861
....@@ -870,6 +872,7 @@
870872 struct ixgbe_adapter *adapter = hw->back;
871873 struct pci_dev *pdev = adapter->pdev;
872874 struct pci_dev *func0_pdev;
875
+ bool has_mii = false;
873876
874877 /* For the C3000 family of SoCs (x550em_a) the internal ixgbe devices
875878 * are always downstream of root ports @ 0000:00:16.0 & 0000:00:17.0
....@@ -880,15 +883,16 @@
880883 func0_pdev = ixgbe_get_first_secondary_devfn(PCI_DEVFN(0x16, 0));
881884 if (func0_pdev) {
882885 if (func0_pdev == pdev)
883
- return true;
884
- else
885
- return false;
886
+ has_mii = true;
887
+ goto out;
886888 }
887889 func0_pdev = ixgbe_get_first_secondary_devfn(PCI_DEVFN(0x17, 0));
888890 if (func0_pdev == pdev)
889
- return true;
891
+ has_mii = true;
890892
891
- return false;
893
+out:
894
+ pci_dev_put(func0_pdev);
895
+ return has_mii;
892896 }
893897
894898 /**