Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7f8a6a1b authored by Madalin Bucur's avatar Madalin Bucur
Browse files

dpaa_eth: do not ignore port api return value

parent 5accb282
Loading
Loading
Loading
Loading
+43 −22
Original line number Diff line number Diff line
@@ -1063,7 +1063,7 @@ static int dpaa_fq_free(struct device *dev, struct list_head *list)
	return err;
}

static void dpaa_eth_init_tx_port(struct fman_port *port, struct dpaa_fq *errq,
static int dpaa_eth_init_tx_port(struct fman_port *port, struct dpaa_fq *errq,
				 struct dpaa_fq *defq,
				 struct dpaa_buffer_layout *buf_layout)
{
@@ -1084,20 +1084,26 @@ static void dpaa_eth_init_tx_port(struct fman_port *port, struct dpaa_fq *errq,
	params.specific_params.non_rx_params.dflt_fqid = defq->fqid;

	err = fman_port_config(port, &params);
	if (err)
	if (err) {
		pr_err("%s: fman_port_config failed\n", __func__);
		return err;
	}

	err = fman_port_cfg_buf_prefix_content(port, &buf_prefix_content);
	if (err)
	if (err) {
		pr_err("%s: fman_port_cfg_buf_prefix_content failed\n",
		       __func__);
		return err;
	}

	err = fman_port_init(port);
	if (err)
		pr_err("%s: fm_port_init failed\n", __func__);

	return err;
}

static void dpaa_eth_init_rx_port(struct fman_port *port, struct dpaa_bp **bps,
static int dpaa_eth_init_rx_port(struct fman_port *port, struct dpaa_bp **bps,
				 size_t count, struct dpaa_fq *errq,
				 struct dpaa_fq *defq,
				 struct dpaa_buffer_layout *buf_layout)
@@ -1128,20 +1134,26 @@ static void dpaa_eth_init_rx_port(struct fman_port *port, struct dpaa_bp **bps,
	}

	err = fman_port_config(port, &params);
	if (err)
	if (err) {
		pr_err("%s: fman_port_config failed\n", __func__);
		return err;
	}

	err = fman_port_cfg_buf_prefix_content(port, &buf_prefix_content);
	if (err)
	if (err) {
		pr_err("%s: fman_port_cfg_buf_prefix_content failed\n",
		       __func__);
		return err;
	}

	err = fman_port_init(port);
	if (err)
		pr_err("%s: fm_port_init failed\n", __func__);

	return err;
}

static void dpaa_eth_init_ports(struct mac_device *mac_dev,
static int dpaa_eth_init_ports(struct mac_device *mac_dev,
			       struct dpaa_bp **bps, size_t count,
			       struct fm_port_fqs *port_fqs,
			       struct dpaa_buffer_layout *buf_layout,
@@ -1149,11 +1161,17 @@ static void dpaa_eth_init_ports(struct mac_device *mac_dev,
{
	struct fman_port *rxport = mac_dev->port[RX];
	struct fman_port *txport = mac_dev->port[TX];
	int err;

	dpaa_eth_init_tx_port(txport, port_fqs->tx_errq,
	err = dpaa_eth_init_tx_port(txport, port_fqs->tx_errq,
				    port_fqs->tx_defq, &buf_layout[TX]);
	dpaa_eth_init_rx_port(rxport, bps, count, port_fqs->rx_errq,
	if (err)
		return err;

	err = dpaa_eth_init_rx_port(rxport, bps, count, port_fqs->rx_errq,
				    port_fqs->rx_defq, &buf_layout[RX]);

	return err;
}

static int dpaa_bman_release(const struct dpaa_bp *dpaa_bp,
@@ -2649,8 +2667,10 @@ static int dpaa_eth_probe(struct platform_device *pdev)
	priv->rx_headroom = dpaa_get_headroom(&priv->buf_layout[RX]);

	/* All real interfaces need their ports initialized */
	dpaa_eth_init_ports(mac_dev, dpaa_bps, DPAA_BPS_NUM, &port_fqs,
	err = dpaa_eth_init_ports(mac_dev, dpaa_bps, DPAA_BPS_NUM, &port_fqs,
				  &priv->buf_layout[0], dev);
	if (err)
		goto init_ports_failed;

	priv->percpu_priv = devm_alloc_percpu(dev, *priv->percpu_priv);
	if (!priv->percpu_priv) {
@@ -2683,6 +2703,7 @@ static int dpaa_eth_probe(struct platform_device *pdev)
napi_add_failed:
	dpaa_napi_del(net_dev);
alloc_percpu_failed:
init_ports_failed:
	dpaa_fq_free(dev, &priv->dpaa_fq_list);
fq_alloc_failed:
	qman_delete_cgr_safe(&priv->ingress_cgr);