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

Commit d3f24ba8 authored by Roman Mashak's avatar Roman Mashak Committed by David S. Miller
Browse files

net sched actions: fix module auto-loading



Macro __stringify_1() can stringify a macro argument, however IFE_META_*
are enums, so they never expand, however request_module expects an integer
in IFE module name, so as a result it always fails to auto-load.

Fixes: ef6980b6 ("introduce IFE action")
Signed-off-by: default avatarRoman Mashak <mrv@mojatatu.com>
Acked-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 8f047480
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -248,6 +248,20 @@ static int ife_validate_metatype(struct tcf_meta_ops *ops, void *val, int len)
	return ret;
}

static const char *ife_meta_id2name(u32 metaid)
{
	switch (metaid) {
	case IFE_META_SKBMARK:
		return "skbmark";
	case IFE_META_PRIO:
		return "skbprio";
	case IFE_META_TCINDEX:
		return "tcindex";
	default:
		return "unknown";
	}
}

/* called when adding new meta information
 * under ife->tcf_lock for existing action
*/
@@ -263,7 +277,7 @@ static int load_metaops_and_vet(struct tcf_ife_info *ife, u32 metaid,
		if (exists)
			spin_unlock_bh(&ife->tcf_lock);
		rtnl_unlock();
		request_module("ife-meta-%u", metaid);
		request_module("ife-meta-%s", ife_meta_id2name(metaid));
		rtnl_lock();
		if (exists)
			spin_lock_bh(&ife->tcf_lock);