Subject: Re: [RFC PATCH 3/3] mlx4: Use default fdb handlers when not multifunction.

From: John Fastabend <[email-masked]>
Date: Wed, 27 Feb 2013 20:27:51 -0800

On 2/27/2013 9:46 AM, Vlad Yasevich wrote:
> Allow the use of ndo_dflt_fdb_<add|del|dump> when the
> adapter is not configured with virtual functins (!mlx4_is_mfunc())
> This allows proper IFF_UNICAST_FLT support and allows for
> additional handling by the driver if needed.
>
> CC: Amir Vadai <[email-masked]>
> Signed-off-by: Vlad Yasevich <[email-masked]>
> ---
>   drivers/net/ethernet/mellanox/mlx4/en_netdev.c |   12 +++---------
>   1 files changed, 3 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
> index 5385474..5732025 100644
> --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
> +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
> @@ -1934,7 +1934,7 @@ static int mlx4_en_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],

Amir are the default ops good enough here?

>   	int err;
>
>   	if (!mlx4_is_mfunc(mdev))
> -		return -EOPNOTSUPP;
> +		return ndo_dflt_fdb_add(ndm, tb, dev, addr, flags);
>
>   	/* Hardware does not support aging addresses, allow only
>   	 * permanent addresses if ndm_state is given
> @@ -1968,7 +1968,7 @@ static int mlx4_en_fdb_del(struct ndmsg *ndm,
>   	int err;
>
>   	if (!mlx4_is_mfunc(mdev))
> -		return -EOPNOTSUPP;
> +		return ndo_dflt_fdb_del(ndm, tb, dev, addr);
>
>   	if (ndm->ndm_state && !(ndm->ndm_state & NUD_PERMANENT)) {
>   		en_info(priv, "Del FDB only supports static addresses\n");
> @@ -1989,13 +1989,7 @@ static int mlx4_en_fdb_dump(struct sk_buff *skb,
>   			    struct netlink_callback *cb,
>   			    struct net_device *dev, int idx)
>   {

same comment here. Don't define this op and we get the same behavior?

.John