Roman Mashak
37f1c63e3e
net sched actions: do not overwrite status of action creation.
...
nla_memdup_cookie was overwriting err value, declared at function
scope and earlier initialized with result of ->init(). At success
nla_memdup_cookie() returns 0, and thus module refcnt decremented,
although the action was installed.
$ sudo tc actions add action pass index 1 cookie 1234
$ sudo tc actions ls action gact
action order 0: gact action pass
random type none pass val 0
index 1 ref 1 bind 0
$
$ lsmod
Module Size Used by
act_gact 16384 0
...
$
$ sudo rmmod act_gact
[ 52.310283] ------------[ cut here ]------------
[ 52.312551] WARNING: CPU: 1 PID: 455 at kernel/module.c:1113
module_put+0x99/0xa0
[ 52.316278] Modules linked in: act_gact(-) crct10dif_pclmul crc32_pclmul
ghash_clmulni_intel psmouse pcbc evbug aesni_intel aes_x86_64 crypto_simd
serio_raw glue_helper pcspkr cryptd
[ 52.322285] CPU: 1 PID: 455 Comm: rmmod Not tainted 4.10.0+ #11
[ 52.324261] Call Trace:
[ 52.325132] dump_stack+0x63/0x87
[ 52.326236] __warn+0xd1/0xf0
[ 52.326260] warn_slowpath_null+0x1d/0x20
[ 52.326260] module_put+0x99/0xa0
[ 52.326260] tcf_hashinfo_destroy+0x7f/0x90
[ 52.326260] gact_exit_net+0x27/0x40 [act_gact]
[ 52.326260] ops_exit_list.isra.6+0x38/0x60
[ 52.326260] unregister_pernet_operations+0x90/0xe0
[ 52.326260] unregister_pernet_subsys+0x21/0x30
[ 52.326260] tcf_unregister_action+0x68/0xa0
[ 52.326260] gact_cleanup_module+0x17/0xa0f [act_gact]
[ 52.326260] SyS_delete_module+0x1ba/0x220
[ 52.326260] entry_SYSCALL_64_fastpath+0x1e/0xad
[ 52.326260] RIP: 0033:0x7f527ffae367
[ 52.326260] RSP: 002b:00007ffeb402a598 EFLAGS: 00000202 ORIG_RAX:
00000000000000b0
[ 52.326260] RAX: ffffffffffffffda RBX: 0000559b069912a0 RCX: 00007f527ffae367
[ 52.326260] RDX: 000000000000000a RSI: 0000000000000800 RDI: 0000559b06991308
[ 52.326260] RBP: 0000000000000003 R08: 00007f5280264420 R09: 00007ffeb4029511
[ 52.326260] R10: 000000000000087b R11: 0000000000000202 R12: 00007ffeb4029580
[ 52.326260] R13: 0000000000000000 R14: 0000000000000000 R15: 0000559b069912a0
[ 52.354856] ---[ end trace 90d89401542b0db6 ]---
$
With the fix:
$ sudo modprobe act_gact
$ lsmod
Module Size Used by
act_gact 16384 0
...
$ sudo tc actions add action pass index 1 cookie 1234
$ sudo tc actions ls action gact
action order 0: gact action pass
random type none pass val 0
index 1 ref 1 bind 0
$
$ lsmod
Module Size Used by
act_gact 16384 1
...
$ sudo rmmod act_gact
rmmod: ERROR: Module act_gact is in use
$
$ sudo /home/mrv/bin/tc actions del action gact index 1
$ sudo rmmod act_gact
$ lsmod
Module Size Used by
$
Fixes: 1045ba77a ("net sched actions: Add support for user cookies")
Signed-off-by: Roman Mashak <mrv@mojatatu.com>
Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-26 21:31:32 -05:00
..
2017-02-26 21:31:32 -05:00
2017-01-16 14:03:31 -05:00
2016-11-18 10:59:15 -05:00
2017-01-09 14:36:57 -05:00
2016-11-18 10:59:15 -05:00
2017-02-03 15:16:46 -05:00
2016-11-18 10:59:15 -05:00
2016-03-01 17:15:23 -05:00
2016-03-01 17:15:23 -05:00
2016-09-19 21:55:28 -04:00
2017-02-07 11:42:34 -05:00
2016-11-18 10:59:15 -05:00
2017-02-10 13:18:33 -05:00
2016-12-05 15:21:59 -05:00
2017-02-01 14:10:03 -05:00
2016-11-18 10:59:15 -05:00
2016-11-18 10:59:15 -05:00
2016-11-18 10:59:15 -05:00
2016-12-23 11:59:56 -05:00
2016-11-18 10:59:15 -05:00
2017-02-14 11:44:14 -05:00
2016-11-28 10:47:35 -05:00
2017-02-17 12:08:06 -05:00
2016-11-28 10:47:35 -05:00
2017-02-02 14:31:53 +01:00
2017-02-17 12:08:05 -05:00
2016-09-19 22:04:14 -04:00
2017-02-17 12:08:06 -05:00
2016-09-23 06:51:49 -04:00
2016-11-28 10:47:35 -05:00
2016-11-28 10:47:35 -05:00
2017-02-17 12:08:06 -05:00
2014-10-06 18:02:32 -04:00
2016-11-03 10:56:21 +01:00
2016-10-23 17:31:25 -04:00
2014-10-06 18:02:32 -04:00
2015-02-22 15:59:54 -05:00
2015-02-20 15:30:56 -05:00
2017-02-03 15:16:46 -05:00
2017-01-24 13:44:28 -05:00
2017-02-17 15:10:18 -05:00
2017-02-10 11:38:08 -05:00
2016-06-25 12:19:35 -04:00
2017-02-10 11:38:08 -05:00
2017-02-10 11:38:08 -05:00
2016-09-19 01:47:18 -04:00
2016-12-05 15:21:59 -05:00
2017-02-10 11:38:08 -05:00
2016-09-19 01:47:18 -04:00
2017-02-10 11:38:08 -05:00
2016-12-20 14:22:48 -05:00
2016-12-29 15:38:35 -05:00
2016-06-25 12:19:35 -04:00
2016-12-05 15:21:59 -05:00
2017-02-11 21:38:58 -05:00
2017-02-10 11:38:08 -05:00
2017-02-10 11:38:08 -05:00
2017-02-11 21:38:58 -05:00
2017-02-11 21:38:58 -05:00
2017-02-10 11:38:08 -05:00
2017-01-08 20:58:52 -05:00
2016-09-19 01:47:18 -04:00
2016-06-25 12:19:35 -04:00
2017-02-10 11:38:08 -05:00
2016-12-05 15:21:59 -05:00
2016-06-25 12:19:35 -04:00
2017-02-10 11:38:08 -05:00
2017-02-11 21:38:58 -05:00
2016-06-25 12:19:35 -04:00
2017-01-08 17:51:44 -05:00