[Devel] [PATCH rh7 1/2] ixgbe: cleanup ixgbe_enumerate_functions

Konstantin Khorenko khorenko at virtuozzo.com
Tue Nov 17 05:54:41 PST 2015


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 <khorenko at virtuozzo.com>).
>
> 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 <jacob.e.keller at intel.com>
>>>
>>> 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 <jacob.e.keller at intel.com>
>>> Tested-by: Phil Schmitt <phillip.j.schmitt at intel.com>
>>> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
>>>
>>> (cherry picked from commit f1f965793b2bb8a75067e94acbe886a61637cab8)
>>> Signed-off-by: Andrey Ryabinin <aryabinin at virtuozzo.com>
>>> ---
>>>    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
> Devel at openvz.org
> https://lists.openvz.org/mailman/listinfo/devel
>


More information about the Devel mailing list