Re: [PATCH v2 net-next 06/13] octeontx2-pf: Add support for unicast MAC address filtering

From: Saeed Mahameed
Date: Fri Nov 06 2020 - 17:16:16 EST


On Thu, 2020-11-05 at 14:58 +0530, Naveen Mamindlapalli wrote:
> From: Hariprasad Kelam <hkelam@xxxxxxxxxxx>
>
> Add unicast MAC address filtering support using install flow
> message. Total of 8 MCAM entries are allocated for adding
> unicast mac filtering rules. If the MCAM allocation fails,
> the unicast filtering support will not be advertised.
>
> Signed-off-by: Hariprasad Kelam <hkelam@xxxxxxxxxxx>
> Signed-off-by: Sunil Goutham <sgoutham@xxxxxxxxxxx>
> Signed-off-by: Naveen Mamindlapalli <naveenm@xxxxxxxxxxx>
> ---
> .../ethernet/marvell/octeontx2/nic/otx2_common.h | 10 ++
> .../ethernet/marvell/octeontx2/nic/otx2_flows.c | 138
> +++++++++++++++++++--
> .../net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 5 +
> 3 files changed, 146 insertions(+), 7 deletions(-)
>

> +int otx2_add_macfilter(struct net_device *netdev, const u8 *mac)
> +{
> + struct otx2_nic *pf = netdev_priv(netdev);
> + int err;
> +
> + err = otx2_do_add_macfilter(pf, mac);
> + if (err) {
> + netdev->flags |= IFF_PROMISC;

I don't think you are allowed to change netdev->flags inside the driver
like this, this can easily conflict with other users of this netdev;
netdev promiscuity is managed by the stack via refcount Please see:
__dev_set_promiscuity() and dev_set_promiscuity()

And you will need to notify stack and userspace of flags changes.