On Fri, May 19, 2023 at 02:19:41PM -0700, Justin Chen wrote:
> Add support for the Broadcom ASP 2.0 Ethernet controller which is first
> introduced with 72165. This controller features two distinct Ethernet
> ports that can be independently operated.
> 
> This patch supports:
> 
> - Wake-on-LAN using magic packets
> - basic ethtool operations (link, counters, message level)
> - MAC destination address filtering (promiscuous, ALL_MULTI, etc.)
> 
> Signed-off-by: Florian Fainelli <florian.faine...@broadcom.com>
> Signed-off-by: Justin Chen <justin.c...@broadcom.com>

...

> +static int bcmasp_netfilt_get_reg_offset(struct bcmasp_priv *priv,
> +                                      struct bcmasp_net_filter *nfilt,
> +                                      enum asp_netfilt_reg_type reg_type,
> +                                      u32 offset)
> +{
> +     u32 block_index, filter_sel;
> +
> +     if (offset < 32) {
> +             block_index = ASP_RX_FILTER_NET_L2;
> +             filter_sel = nfilt->hw_index;
> +     } else if (offset < 64) {
> +             block_index = ASP_RX_FILTER_NET_L2;
> +             filter_sel = nfilt->hw_index + 1;
> +     } else if (offset < 96) {
> +             block_index = ASP_RX_FILTER_NET_L3_0;
> +             filter_sel = nfilt->hw_index;
> +     } else if (offset < 128) {
> +             block_index = ASP_RX_FILTER_NET_L3_0;
> +             filter_sel = nfilt->hw_index + 1;
> +     } else if (offset < 160) {
> +             block_index = ASP_RX_FILTER_NET_L3_1;
> +             filter_sel = nfilt->hw_index;
> +     } else if (offset < 192) {
> +             block_index = ASP_RX_FILTER_NET_L3_1;
> +             filter_sel = nfilt->hw_index + 1;
> +     } else if (offset < 224) {
> +             block_index = ASP_RX_FILTER_NET_L4;
> +             filter_sel = nfilt->hw_index;
> +     } else if (offset < 256) {
> +             block_index = ASP_RX_FILTER_NET_L4;
> +             filter_sel = nfilt->hw_index + 1;
> +     }

Hi Justin,

Perhaps it is not possible.
But it seems to me that it would be nice to have:

        else {
                return -EINVAL;
        }

Otherwise, if that case does occur, block_index and filter_sel
will be used uninitialised.

> +
> +     switch (reg_type) {
> +     case ASP_NETFILT_MATCH:
> +             return ASP_RX_FILTER_NET_PAT(filter_sel, block_index,
> +                                          (offset % 32));
> +     case ASP_NETFILT_MASK:
> +             return ASP_RX_FILTER_NET_MASK(filter_sel, block_index,
> +                                           (offset % 32));
> +     default:
> +             return -EINVAL;
> +     }
> +}

...

Reply via email to