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

Commit 55330f05 authored by Hadar Hen Zion's avatar Hadar Hen Zion Committed by David S. Miller
Browse files

net/sched: Add separate check for skip_hw flag



Creating a difference between two possible cases:
1. Not offloading tc rule since the user sets 'skip_hw' flag.
2. Not offloading tc rule since the device doesn't support offloading.

This patch doesn't add any new functionality.

Signed-off-by: default avatarHadar Hen Zion <hadarh@mellanox.com>
Reviewed-by: default avatarJiri Pirko <jiri@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 25429d7b
Loading
Loading
Loading
Loading
+15 −4
Original line number Diff line number Diff line
@@ -425,16 +425,14 @@ struct tc_cls_u32_offload {
	};
};

static inline bool tc_should_offload(const struct net_device *dev,
				     const struct tcf_proto *tp, u32 flags)
static inline bool tc_can_offload(const struct net_device *dev,
				  const struct tcf_proto *tp)
{
	const struct Qdisc *sch = tp->q;
	const struct Qdisc_class_ops *cops = sch->ops->cl_ops;

	if (!(dev->features & NETIF_F_HW_TC))
		return false;
	if (flags & TCA_CLS_FLAGS_SKIP_HW)
		return false;
	if (!dev->netdev_ops->ndo_setup_tc)
		return false;
	if (cops && cops->tcf_cl_offload)
@@ -443,6 +441,19 @@ static inline bool tc_should_offload(const struct net_device *dev,
	return true;
}

static inline bool tc_skip_hw(u32 flags)
{
	return (flags & TCA_CLS_FLAGS_SKIP_HW) ? true : false;
}

static inline bool tc_should_offload(const struct net_device *dev,
				     const struct tcf_proto *tp, u32 flags)
{
	if (tc_skip_hw(flags))
		return false;
	return tc_can_offload(dev, tp);
}

static inline bool tc_skip_sw(u32 flags)
{
	return (flags & TCA_CLS_FLAGS_SKIP_SW) ? true : false;