[dpdk-dev] [PATCH v4 05/10] qede: Add core driver

Stephen Hemminger stephen at networkplumber.org
Wed Mar 30 18:49:02 CEST 2016


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.


More information about the dev mailing list