JFYI: filed an issue to RedHat
https://bugzilla.redhat.com/show_bug.cgi?id=1282804

--
Best regards,

Konstantin Khorenko,
Virtuozzo Linux Kernel Team

On 11/10/2015 04:48 PM, Konstantin Khorenko wrote:
Andrey,

please file a bug to RedHat about this (and add me to CC there 
<[email protected]>).

Meanwhile i'm applying those patches in order to unblock debug kernel runs.

--
Best regards,

Konstantin Khorenko,
Virtuozzo Linux Kernel Team

On 11/10/2015 11:21 AM, Vasily Averin wrote:
I think we can just notify Red Hat about this problem

On 10.11.2015 11:06, Andrey Ryabinin wrote:
From: Jacob Keller <[email protected]>

This function previously had the same check as used by the
ixgbe_pcie_from_parent. As the hardcode is due to the device having an internal
switch, this function should simply use the call from ixgbe_pcie_from_parent.
This reduces code complexity and makes it less likely a developer will forget
to update the list in the future.

Signed-off-by: Jacob Keller <[email protected]>
Tested-by: Phil Schmitt <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>

(cherry picked from commit f1f965793b2bb8a75067e94acbe886a61637cab8)
Signed-off-by: Andrey Ryabinin <[email protected]>
---
   drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 13 +++++--------
   1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c 
b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 14f05b8..9fe8787 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -7525,19 +7525,16 @@ static const struct net_device_ops ixgbe_netdev_ops = {
    **/
   static inline int ixgbe_enumerate_functions(struct ixgbe_adapter *adapter)
   {
-       struct ixgbe_hw *hw = &adapter->hw;
        struct list_head *entry;
        int physfns = 0;

-       /* Some cards can not use the generic count PCIe functions method, and
-        * so must be hardcoded to the correct value.
+       /* Some cards can not use the generic count PCIe functions method,
+        * because they are behind a parent switch, so we hardcode these with
+        * the correct number of functions.
         */
-       switch (hw->device_id) {
-       case IXGBE_DEV_ID_82599_SFP_SF_QP:
-       case IXGBE_DEV_ID_82599_QSFP_SF_QP:
+       if (ixgbe_pcie_from_parent(&adapter->hw)) {
                physfns = 4;
-               break;
-       default:
+       } else {
                list_for_each(entry, &adapter->pdev->bus_list) {
                        struct pci_dev *pdev =
                                list_entry(entry, struct pci_dev, bus_list);


_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to