Sat, Jan 20, 2018 at 02:44:48AM CET, [email protected] wrote:
>From: Quentin Monnet <[email protected]>
>
>Create a wrapper around tc_can_offload() that takes an additional
>extack pointer argument in order to output an error message if TC
>offload is disabled on the device.
>
>In this way, the error message is handled by the core and can be the
>same for all drivers.
>
>Signed-off-by: Quentin Monnet <[email protected]>
>Reviewed-by: Jakub Kicinski <[email protected]>
>---
> include/net/pkt_cls.h | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
>diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h
>index f497f622580b..2f8f16a4d88e 100644
>--- a/include/net/pkt_cls.h
>+++ b/include/net/pkt_cls.h
>@@ -656,6 +656,17 @@ static inline bool tc_can_offload(const struct net_device
>*dev)
> return dev->features & NETIF_F_HW_TC;
> }
>
>+static inline bool tc_can_offload_extack(const struct net_device *dev,
>+ struct netlink_ext_ack *extack)
I don't like to add tc_can_offload variant for this. It makes sense
the original tc_can_offload to be extended and set the extack message
always.
It would require some more work in drivers (5), sure, but we endup with
nicer and consistent code.
>+{
>+ bool can = tc_can_offload(dev);
>+
>+ if (!can)
>+ NL_SET_ERR_MSG(extack, "TC offload is disabled on net device");
>+
>+ return can;
>+}
>+
> static inline bool tc_skip_hw(u32 flags)
> {
> return (flags & TCA_CLS_FLAGS_SKIP_HW) ? true : false;
>--
>2.15.1
>