On Tue, 29 Mar 2016 22:28:20 -0700
Rasesh Mody <rasesh.mody at qlogic.com> wrote:

> +
> +void qede_config_rx_mode(struct rte_eth_dev *eth_dev)
> +{
> +     struct qede_dev *qdev = eth_dev->data->dev_private;
> +     struct ecore_dev *edev = &qdev->edev;
> +     /* TODO: - QED_FILTER_TYPE_UCAST */
> +     enum qed_filter_rx_mode_type accept_flags =
> +                     QED_FILTER_RX_MODE_TYPE_REGULAR;
> +     struct qed_filter_params rx_mode;
> +     int rc;
> +
> +     /* Configure the struct for the Rx mode */
> +     memset(&rx_mode, 0, sizeof(struct qed_filter_params));
> +     rx_mode.type = QED_FILTER_TYPE_RX_MODE;
> +
> +     rc = qede_set_ucast_rx_mac(qdev, QED_FILTER_XCAST_TYPE_REPLACE,
> +                                eth_dev->data->mac_addrs[0].addr_bytes);
> +     if (rte_eth_promiscuous_get(eth_dev->data->port_id) == 1) {
> +             accept_flags = QED_FILTER_RX_MODE_TYPE_PROMISC;
> +     } else {
> +             rc = qede_set_ucast_rx_mac(qdev, QED_FILTER_XCAST_TYPE_ADD,
> +                                        eth_dev->data->
> +                                        mac_addrs[0].addr_bytes);
> +             if (rc) {
> +                     DP_ERR(edev, "Unable to add filter\n");
> +                     return;
> +             }
> +     }
> +
> +     /* take care of VLAN mode */
> +     if (rte_eth_promiscuous_get(eth_dev->data->port_id) == 1) {
> +             qede_config_accept_any_vlan(qdev, true);
> +     } else if (!qdev->non_configured_vlans) {
> +             /* If we dont have non-configured VLANs and promisc
> +              * is not set, then check if we need to disable
> +              * accept_any_vlan mode.
> +              * Because in this case, accept_any_vlan mode is set
> +              * as part of IFF_RPOMISC flag handling.
> +              */
> +             qede_config_accept_any_vlan(qdev, false);
> +     }
> +     rx_mode.filter.accept_flags = accept_flags;
> +     (void)qdev->ops->filter_config(edev, &rx_mode);

Please don't use lint suppressing dummy (void) casts. I don't think GCC or any
check tool needs these. Better yet check the return value and log errors.

Reply via email to