2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-02 02:34:05 +08:00
linux-next/drivers/net
Toshiaki Makita 7797b93b75 veth: Free queues on link delete
David Ahern reported memory leak in veth.

=======================================================================
$ cat /sys/kernel/debug/kmemleak
unreferenced object 0xffff8800354d5c00 (size 1024):
  comm "ip", pid 836, jiffies 4294722952 (age 25.904s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [<(____ptrval____)>] kmemleak_alloc+0x70/0x94
    [<(____ptrval____)>] slab_post_alloc_hook+0x42/0x52
    [<(____ptrval____)>] __kmalloc+0x101/0x142
    [<(____ptrval____)>] kmalloc_array.constprop.20+0x1e/0x26 [veth]
    [<(____ptrval____)>] veth_newlink+0x147/0x3ac [veth]
    ...
unreferenced object 0xffff88002e009c00 (size 1024):
  comm "ip", pid 836, jiffies 4294722958 (age 25.898s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [<(____ptrval____)>] kmemleak_alloc+0x70/0x94
    [<(____ptrval____)>] slab_post_alloc_hook+0x42/0x52
    [<(____ptrval____)>] __kmalloc+0x101/0x142
    [<(____ptrval____)>] kmalloc_array.constprop.20+0x1e/0x26 [veth]
    [<(____ptrval____)>] veth_newlink+0x219/0x3ac [veth]
=======================================================================

veth_rq allocated in veth_newlink() was not freed on dellink.

We need to free up them after veth_close() so that any packets will not
reference the queues afterwards. Thus free them in veth_dev_free() in
the same way as freeing stats structure (vstats).

Also move queues allocation to veth_dev_init() to be in line with stats
allocation.

Fixes: 638264dc90 ("veth: Support per queue XDP ring")
Reported-by: David Ahern <dsahern@gmail.com>
Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Reviewed-by: David Ahern <dsahern@gmail.com>
Tested-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-08-16 12:22:31 -07:00
..
appletalk
arcnet
bonding Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net 2018-08-02 10:55:32 -07:00
caif
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-08-15 15:04:25 -07:00
dsa net: dsa: mv88e6xxx: missing unlock on error path 2018-08-14 10:08:07 -07:00
ethernet pci-v4.19-changes 2018-08-16 09:21:54 -07:00
fddi
fjes
hamradio
hippi
hyperv hv/netvsc: Fix NULL dereference at single queue mode fallback 2018-08-14 10:24:12 -07:00
ieee802154 ieee802154: hwsim: using right kind of iteration 2018-08-14 09:58:57 -07:00
ipvlan
netdevsim Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net 2018-08-02 10:55:32 -07:00
phy net: dp83640: Mark expected switch fall-throughs 2018-08-11 11:28:34 -07:00
plip
ppp ppp: mppe: Remove VLA usage 2018-08-03 12:54:54 -07:00
slip
team team: Publish team_port_get_rcu() 2018-07-11 23:10:19 -07:00
usb drivers/net/usb/r8152: remove the unneeded variable "ret" in rtl8152_system_suspend 2018-08-11 11:23:25 -07:00
vmxnet3
wan Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net 2018-08-05 13:04:31 -07:00
wimax wimax: usb-tx: mark expected switch fall-through 2018-08-11 11:29:36 -07:00
wireless pci-v4.19-changes 2018-08-16 09:21:54 -07:00
xen-netback xen-netback: use true and false for boolean values 2018-08-02 14:43:04 -07:00
dummy.c
eql.c
geneve.c
gtp.c gtp: constify nla_policy 2018-07-20 12:33:37 -07:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c
macvlan.c macvlan: Change status when lower device goes down 2018-07-11 23:07:22 -07:00
macvtap.c
Makefile
mdio.c
mii.c
net_failover.c failover: change mtu has RTNL 2018-07-29 12:57:26 -07:00
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c
tun.c tun: not use hardcoded mask value 2018-08-04 13:15:11 -07:00
veth.c veth: Free queues on link delete 2018-08-16 12:22:31 -07:00
virtio_net.c virtio_net: remove duplicated include from virtio_net.c 2018-08-13 09:21:05 -07:00
vrf.c
vsockmon.c
vxlan.c vxlan: fix default fdb entry netlink notify ordering during netdev create 2018-07-22 10:52:37 -07:00
xen-netfront.c xen-netfront: fix warn message as irq device name has '/' 2018-08-14 10:10:35 -07:00