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: ef6980b6be
("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>
This commit is contained in:
Родитель
8f04748016
Коммит
d3f24ba895
|
@ -248,6 +248,20 @@ static int ife_validate_metatype(struct tcf_meta_ops *ops, void *val, int len)
|
||||||
return ret;
|
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
|
/* called when adding new meta information
|
||||||
* under ife->tcf_lock for existing action
|
* 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)
|
if (exists)
|
||||||
spin_unlock_bh(&ife->tcf_lock);
|
spin_unlock_bh(&ife->tcf_lock);
|
||||||
rtnl_unlock();
|
rtnl_unlock();
|
||||||
request_module("ife-meta-%u", metaid);
|
request_module("ife-meta-%s", ife_meta_id2name(metaid));
|
||||||
rtnl_lock();
|
rtnl_lock();
|
||||||
if (exists)
|
if (exists)
|
||||||
spin_lock_bh(&ife->tcf_lock);
|
spin_lock_bh(&ife->tcf_lock);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче