[PATCH net-next v6 2/3] net: ti: icssm-prueth: Adds switchdev support for icssm_prueth driver

Jakub Kicinski kuba at kernel.org
Mon Nov 24 20:03:22 PST 2025


On Mon, 24 Nov 2025 19:25:11 +0530 Parvathi Pudi wrote:
> Subject: [PATCH net-next v6 2/3] net: ti: icssm-prueth: Adds switchdev support for icssm_prueth driver

Adds -> Add

> This patch adds support for offloading the RSTP switch feature to the

s/This patch adds/Add/

imperative mood, please..

> +static void icssm_prueth_sw_fdb_work(struct work_struct *work)
> +{
> +	struct icssm_prueth_sw_fdb_work *fdb_work =
> +		container_of(work, struct icssm_prueth_sw_fdb_work, work);
> +	struct prueth_emac *emac = fdb_work->emac;
> +
> +	rtnl_lock();
> +
> +	/* Interface is not up */
> +	if (!emac->prueth->fdb_tbl)
> +		goto free;
> +
> +	switch (fdb_work->event) {
> +	case FDB_LEARN:
> +		icssm_prueth_sw_insert_fdb_entry(emac, fdb_work->addr, 0);
> +		break;
> +	case FDB_PURGE:
> +		icssm_prueth_sw_do_purge_fdb(emac);
> +		break;
> +	default:
> +		break;
> +	}
> +
> +free:
> +	rtnl_unlock();
> +	kfree(fdb_work);
> +	dev_put(emac->ndev);

please use netdev_put() and a netdev tracker

> +}
> +
> +int icssm_prueth_sw_learn_fdb(struct prueth_emac *emac, u8 *src_mac)
> +{
> +	struct icssm_prueth_sw_fdb_work *fdb_work;
> +
> +	fdb_work = kzalloc(sizeof(*fdb_work), GFP_ATOMIC);
> +	if (WARN_ON(!fdb_work))
> +		return -ENOMEM;
> +
> +	INIT_WORK(&fdb_work->work, icssm_prueth_sw_fdb_work);
> +
> +	fdb_work->event = FDB_LEARN;
> +	fdb_work->emac  = emac;
> +	ether_addr_copy(fdb_work->addr, src_mac);
> +
> +	dev_hold(emac->ndev);

same here.

This significantly helps debugging in case some code leaks a reference.
-- 
pw-bot: cr



More information about the linux-arm-kernel mailing list