pktgen: Fix device name compares
Commit
e6fce5b916cd7f7f7 (pktgen: multiqueue etc.) tried to relax
the pktgen restriction of one device per kernel thread, adding a '@'
tag to device names.
Problem is we dont perform check on full pktgen device name.
This allows adding many time same 'device' to pktgen thread
pgset "add_device eth0@0"
one session later :
pgset "add_device eth0@0"
(This doesnt find previous device)
This consumes ~1.5 MBytes of vmalloc memory per round and also triggers
this warning :
[ 673.186380] proc_dir_entry 'pktgen/eth0@0' already registered
[ 673.186383] Modules linked in: pktgen ixgbe ehci_hcd psmouse mdio mousedev evdev [last unloaded: pktgen]
[ 673.186406] Pid: 6219, comm: bash Tainted: G W
2.6.32-rc7-03302-g41cec6f-dirty #16
[ 673.186410] Call Trace:
[ 673.186417] [<
ffffffff8104a29b>] warn_slowpath_common+0x7b/0xc0
[ 673.186422] [<
ffffffff8104a341>] warn_slowpath_fmt+0x41/0x50
[ 673.186426] [<
ffffffff8114e789>] proc_register+0x109/0x210
[ 673.186433] [<
ffffffff8100bf2e>] ? apic_timer_interrupt+0xe/0x20
[ 673.186438] [<
ffffffff8114e905>] proc_create_data+0x75/0xd0
[ 673.186444] [<
ffffffffa006ad38>] pktgen_thread_write+0x568/0x640 [pktgen]
[ 673.186449] [<
ffffffffa006a7d0>] ? pktgen_thread_write+0x0/0x640 [pktgen]
[ 673.186453] [<
ffffffff81149144>] proc_reg_write+0x84/0xc0
[ 673.186458] [<
ffffffff810f5a58>] vfs_write+0xb8/0x180
[ 673.186463] [<
ffffffff810f5c11>] sys_write+0x51/0x90
[ 673.186468] [<
ffffffff8100b51b>] system_call_fastpath+0x16/0x1b
[ 673.186470] ---[ end trace
ccbb991b0a8d994d ]---
Solution to this problem is to use a odevname field (includes @ tag and suffix),
instead of using netdevice name.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Robert Olsson <robert.olsson@its.uu.se>
Signed-off-by: David S. Miller <davem@davemloft.net>