Subject: Re: [PATCH net-next 2/4] ixgbe: Remove driver specific fdb handlers.

From: Vlad Yasevich <[email-masked]>
Date: Fri, 01 Mar 2013 09:35:15 -0500

On 03/01/2013 12:54 AM, John Fastabend wrote:
> On 2/28/2013 3:13 PM, Vlad Yasevich wrote:
>> Remove driver specific fdb handlers since they are the same
>> as the default ones.
>>
>> CC: John Fastabend <[email-masked]>
>> CC: CC: Gregory Rose <[email-masked]>
>> Signed-off-by: Vlad Yasevich <[email-masked]>
>> ---
>>   drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |   81
>> -------------------------
>>   1 files changed, 0 insertions(+), 81 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
>> b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
>> index 68478d6..212b74e 100644
>> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
>> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
>> @@ -6998,84 +6998,6 @@ static int ixgbe_set_features(struct net_device
>> *netdev,
>>       return 0;
>>   }
>>
>> -static int ixgbe_ndo_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
>> -                 struct net_device *dev,
>> -                 const unsigned char *addr,
>> -                 u16 flags)
>> -{
>
> [...]
>
>> -    if (is_unicast_ether_addr(addr) || is_link_local_ether_addr(addr)) {
>> -        u32 rar_uc_entries = IXGBE_MAX_PF_MACVLANS;
>> -
>> -        if (netdev_uc_count(dev) < rar_uc_entries)
>> -            err = dev_uc_add_excl(dev, addr);
>> -        else
>> -            err = -ENOMEM;
>
> OK after talking with Greg I realized there is a problem with
> just removing the add routine.
>
> The problem with this is we lose the ability to indicate the
> hardware table is full and return ENOMEM. Although our set_rx_mode
> routine will put the device in promisc mode this won't forward
> packets from a VF to the PF in the SR-IOV case.
>
> So we either need to leave ixgbe_ndo_fdb_add() or let set_rx_mode
> return an -ENOMEM error. I believe in the first case we can still
> remove the dump and del cases.
>
> Sorry for the hassle took me a second review to catch it.

No problem.  That was the reason I left it in the first version (because
of different error handling).  I'll restore the add function.

-vlad
> .John