summaryrefslogtreecommitdiff
path: root/net/sched
diff options
context:
space:
mode:
authorRoman Mashak <mrv@mojatatu.com>2017-10-11 17:50:30 +0300
committerDavid S. Miller <davem@davemloft.net>2017-10-13 08:13:20 +0300
commitd3f24ba895f0bbbc8ab0ecb03de7daa6eccc7ceb (patch)
treec434958cd7dae909efaf94980c68b5a651db3da2 /net/sched
parent8f04748016f3b583e675e0f649d42cfc10812a8b (diff)
downloadlinux-d3f24ba895f0bbbc8ab0ecb03de7daa6eccc7ceb.tar.xz
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>
Diffstat (limited to 'net/sched')
-rw-r--r--net/sched/act_ife.c16
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);