diff options
author | Roman Mashak <mrv@mojatatu.com> | 2017-10-11 10:50:30 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-10-12 22:13:20 -0700 |
commit | d3f24ba895f0bbbc8ab0ecb03de7daa6eccc7ceb (patch) | |
tree | c434958cd7dae909efaf94980c68b5a651db3da2 | |
parent | 8f04748016f3b583e675e0f649d42cfc10812a8b (diff) | |
download | linux-d3f24ba895f0bbbc8ab0ecb03de7daa6eccc7ceb.tar.bz2 |
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: ef6980b6becb ("introduce IFE action")
Signed-off-by: Roman Mashak <mrv@mojatatu.com>
Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/sched/act_ife.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/net/sched/act_ife.c b/net/sched/act_ife.c index 791aeee11c7e..e0bc228c1218 100644 --- a/net/sched/act_ife.c +++ b/net/sched/act_ife.c @@ -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); |