20 Nov, 2016
4 commits
-
The comment block in socket.c describing the locking policy is
obsolete, and does not reflect current reality. We remove it in this
commit.Since the current locking policy is much simpler and follows a
mainstream approach, we see no need to add a new description.Signed-off-by: Jon Maloy
Signed-off-by: David S. Miller -
If the link is filtered out, loop index should also be updated. If not,
loop index will not be correct.Fixes: dc599f76c22b0 ("net: Add support for filtering link dump by master device and kind")
Signed-off-by: Zhang Shengju
Acked-by: David Ahern
Signed-off-by: David S. Miller -
Lock socket before checking the SOCK_ZAPPED flag in l2tp_ip6_bind().
Without lock, a concurrent call could modify the socket flags between
the sock_flag(sk, SOCK_ZAPPED) test and the lock_sock() call. This way,
a socket could be inserted twice in l2tp_ip6_bind_table. Releasing it
would then leave a stale pointer there, generating use-after-free
errors when walking through the list or modifying adjacent entries.BUG: KASAN: use-after-free in l2tp_ip6_close+0x22e/0x290 at addr ffff8800081b0ed8
Write of size 8 by task syz-executor/10987
CPU: 0 PID: 10987 Comm: syz-executor Not tainted 4.8.0+ #39
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014
ffff880031d97838 ffffffff829f835b ffff88001b5a1640 ffff8800081b0ec0
ffff8800081b15a0 ffff8800081b6d20 ffff880031d97860 ffffffff8174d3cc
ffff880031d978f0 ffff8800081b0e80 ffff88001b5a1640 ffff880031d978e0
Call Trace:
[] dump_stack+0xb3/0x118 lib/dump_stack.c:15
[] kasan_object_err+0x1c/0x70 mm/kasan/report.c:156
[< inline >] print_address_description mm/kasan/report.c:194
[] kasan_report_error+0x1f6/0x4d0 mm/kasan/report.c:283
[< inline >] kasan_report mm/kasan/report.c:303
[] __asan_report_store8_noabort+0x3e/0x40 mm/kasan/report.c:329
[< inline >] __write_once_size ./include/linux/compiler.h:249
[< inline >] __hlist_del ./include/linux/list.h:622
[< inline >] hlist_del_init ./include/linux/list.h:637
[] l2tp_ip6_close+0x22e/0x290 net/l2tp/l2tp_ip6.c:239
[] inet_release+0xed/0x1c0 net/ipv4/af_inet.c:415
[] inet6_release+0x50/0x70 net/ipv6/af_inet6.c:422
[] sock_release+0x8d/0x1d0 net/socket.c:570
[] sock_close+0x16/0x20 net/socket.c:1017
[] __fput+0x28c/0x780 fs/file_table.c:208
[] ____fput+0x15/0x20 fs/file_table.c:244
[] task_work_run+0xf9/0x170
[] do_exit+0x85e/0x2a00
[] do_group_exit+0x108/0x330
[] get_signal+0x617/0x17a0 kernel/signal.c:2307
[] do_signal+0x7f/0x18f0
[] exit_to_usermode_loop+0xbf/0x150 arch/x86/entry/common.c:156
[< inline >] prepare_exit_to_usermode arch/x86/entry/common.c:190
[] syscall_return_slowpath+0x1a0/0x1e0 arch/x86/entry/common.c:259
[] entry_SYSCALL_64_fastpath+0xc4/0xc6
Object at ffff8800081b0ec0, in cache L2TP/IPv6 size: 1448
Allocated:
PID = 10987
[ 1116.897025] [] save_stack_trace+0x16/0x20
[ 1116.897025] [] save_stack+0x46/0xd0
[ 1116.897025] [] kasan_kmalloc+0xad/0xe0
[ 1116.897025] [] kasan_slab_alloc+0x12/0x20
[ 1116.897025] [< inline >] slab_post_alloc_hook mm/slab.h:417
[ 1116.897025] [< inline >] slab_alloc_node mm/slub.c:2708
[ 1116.897025] [< inline >] slab_alloc mm/slub.c:2716
[ 1116.897025] [] kmem_cache_alloc+0xc8/0x2b0 mm/slub.c:2721
[ 1116.897025] [] sk_prot_alloc+0x69/0x2b0 net/core/sock.c:1326
[ 1116.897025] [] sk_alloc+0x38/0xae0 net/core/sock.c:1388
[ 1116.897025] [] inet6_create+0x2d7/0x1000 net/ipv6/af_inet6.c:182
[ 1116.897025] [] __sock_create+0x37b/0x640 net/socket.c:1153
[ 1116.897025] [< inline >] sock_create net/socket.c:1193
[ 1116.897025] [< inline >] SYSC_socket net/socket.c:1223
[ 1116.897025] [] SyS_socket+0xef/0x1b0 net/socket.c:1203
[ 1116.897025] [] entry_SYSCALL_64_fastpath+0x23/0xc6
Freed:
PID = 10987
[ 1116.897025] [] save_stack_trace+0x16/0x20
[ 1116.897025] [] save_stack+0x46/0xd0
[ 1116.897025] [] kasan_slab_free+0x71/0xb0
[ 1116.897025] [< inline >] slab_free_hook mm/slub.c:1352
[ 1116.897025] [< inline >] slab_free_freelist_hook mm/slub.c:1374
[ 1116.897025] [< inline >] slab_free mm/slub.c:2951
[ 1116.897025] [] kmem_cache_free+0xc8/0x330 mm/slub.c:2973
[ 1116.897025] [< inline >] sk_prot_free net/core/sock.c:1369
[ 1116.897025] [] __sk_destruct+0x32b/0x4f0 net/core/sock.c:1444
[ 1116.897025] [] sk_destruct+0x44/0x80 net/core/sock.c:1452
[ 1116.897025] [] __sk_free+0x53/0x220 net/core/sock.c:1460
[ 1116.897025] [] sk_free+0x23/0x30 net/core/sock.c:1471
[ 1116.897025] [] sk_common_release+0x28c/0x3e0 ./include/net/sock.h:1589
[ 1116.897025] [] l2tp_ip6_close+0x1fe/0x290 net/l2tp/l2tp_ip6.c:243
[ 1116.897025] [] inet_release+0xed/0x1c0 net/ipv4/af_inet.c:415
[ 1116.897025] [] inet6_release+0x50/0x70 net/ipv6/af_inet6.c:422
[ 1116.897025] [] sock_release+0x8d/0x1d0 net/socket.c:570
[ 1116.897025] [] sock_close+0x16/0x20 net/socket.c:1017
[ 1116.897025] [] __fput+0x28c/0x780 fs/file_table.c:208
[ 1116.897025] [] ____fput+0x15/0x20 fs/file_table.c:244
[ 1116.897025] [] task_work_run+0xf9/0x170
[ 1116.897025] [] do_exit+0x85e/0x2a00
[ 1116.897025] [] do_group_exit+0x108/0x330
[ 1116.897025] [] get_signal+0x617/0x17a0 kernel/signal.c:2307
[ 1116.897025] [] do_signal+0x7f/0x18f0
[ 1116.897025] [] exit_to_usermode_loop+0xbf/0x150 arch/x86/entry/common.c:156
[ 1116.897025] [< inline >] prepare_exit_to_usermode arch/x86/entry/common.c:190
[ 1116.897025] [] syscall_return_slowpath+0x1a0/0x1e0 arch/x86/entry/common.c:259
[ 1116.897025] [] entry_SYSCALL_64_fastpath+0xc4/0xc6
Memory state around the buggy address:
ffff8800081b0d80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
ffff8800081b0e00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>ffff8800081b0e80: fc fc fc fc fc fc fc fc fb fb fb fb fb fb fb fb
^
ffff8800081b0f00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
ffff8800081b0f80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb==================================================================
The same issue exists with l2tp_ip_bind() and l2tp_ip_bind_table.
Fixes: c51ce49735c1 ("l2tp: fix oops in L2TP IP sockets for connect() AF_UNSPEC case")
Reported-by: Baozeng Ding
Reported-by: Andrey Konovalov
Tested-by: Baozeng Ding
Signed-off-by: Guillaume Nault
Signed-off-by: David S. Miller -
Simon Wunderlich says:
====================
Here are two batman-adv bugfix patches:- Revert a splat on disabling interface which created another problem,
by Sven Eckelmann- Fix error handling when the primary interface disappears during a
throughput meter test, by Sven Eckelmann
====================Signed-off-by: David S. Miller
19 Nov, 2016
14 commits
-
at91ether_start_xmit() does not check for dma mapping errors.
Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: Alexey Khoroshilov
Signed-off-by: David S. Miller -
Add missing NDA_VLAN attribute's size.
Fixes: 1e53d5bb8878 ("net: Pass VLAN ID to rtnl_fdb_notify.")
Signed-off-by: Sabrina Dubroca
Signed-off-by: David S. Miller -
The argument to get_net_ns_by_fd() is a /proc/$PID/ns/net file
descriptor not a pid. Fix the typo.Signed-off-by: Stefan Hajnoczi
Acked-by: Rami Rosen
Signed-off-by: David S. Miller -
…kernel/git/jberg/mac80211
Johannes Berg says:
====================
A few more bugfixes:
* limit # of scan results stored in memory - this is a long-standing bug
Jouni and I only noticed while discussing other things in Santa Fe
* revert AP_LINK_PS patch that was causing issues (Felix)
* various A-MSDU/A-MPDU fixes for TXQ code (Felix)
* interoperability workaround for peers with broken VHT capabilities
(Filip Matusiak)
* add bitrate definition for a VHT MCS that's supposed to be invalid
but gets used by some hardware anyway (Thomas Pedersen)
* beacon timer fix in hwsim (Benjamin Beichler)
====================Signed-off-by: David S. Miller <davem@davemloft.net>
-
Commit 2b15af6f95 ("af_unix: use freezable blocking calls in read")
converts schedule_timeout() to its freezable version, it was probably
correct at that time, but later, commit 2b514574f7e8
("net: af_unix: implement splice for stream af_unix sockets") breaks
the strong requirement for a freezable sleep, according to
commit 0f9548ca1091:We shouldn't try_to_freeze if locks are held. Holding a lock can cause a
deadlock if the lock is later acquired in the suspend or hibernate path
(e.g. by dpm). Holding a lock can also cause a deadlock in the case of
cgroup_freezer if a lock is held inside a frozen cgroup that is later
acquired by a process outside that group.The pipe_lock is still held at that point.
So use freezable version only for the recvmsg call path, avoid impact for
Android.Fixes: 2b514574f7e8 ("net: af_unix: implement splice for stream af_unix sockets")
Reported-by: Dmitry Vyukov
Cc: Tejun Heo
Cc: Colin Cross
Cc: Rafael J. Wysocki
Cc: Hannes Frederic Sowa
Signed-off-by: Cong Wang
Signed-off-by: David S. Miller -
Johan Hovold says:
====================
net: cpsw: fix leaks and probe deferralThis series fixes as number of leaks and issues in the cpsw probe-error
and driver-unbind paths, some which specifically prevented deferred
probing.v2
- Keep platform device runtime-resumed throughout probe instead of
resuming in the probe error path as suggested by Grygorii (patch
1/7).- Runtime-resume platform device before registering any children in
order to make sure it is synchronously suspended after deregistering
children in the error path (patch 3/7).
====================Signed-off-by: David S. Miller
-
Make sure to propagate errors from of_phy_register_fixed_link() which
can fail with -EPROBE_DEFER.Fixes: 1f71e8c96fc6 ("drivers: net: cpsw: Add support for fixed-link
PHY")
Signed-off-by: Johan Hovold
Signed-off-by: David S. Miller -
Make sure to check for allocation failures before dereferencing a
NULL-pointer during probe.Fixes: 649a1688c960 ("net: ethernet: ti: cpsw: create common struct to
hold shared driver data")
Signed-off-by: Johan Hovold
Signed-off-by: David S. Miller -
Make sure to deregister the primary device in case the secondary emac
fails to probe.kernel BUG at /home/johan/work/omicron/src/linux/net/core/dev.c:7743!
...
[] (free_netdev) from [] (cpsw_probe+0x9cc/0xe50)
[] (cpsw_probe) from [] (platform_drv_probe+0x5c/0xc0)Fixes: d9ba8f9e6298 ("driver: net: ethernet: cpsw: dual emac interface
implementation")
Signed-off-by: Johan Hovold
Signed-off-by: David S. Miller -
Make sure to drop references taken and deregister devices registered
during probe on probe errors (including deferred probe) and driver
unbind.Specifically, PHY of-node references were never released and fixed-link
PHY devices were never deregistered.Fixes: 9e42f715264f ("drivers: net: cpsw: add phy-handle parsing")
Fixes: 1f71e8c96fc6 ("drivers: net: cpsw: Add support for fixed-link
PHY")
Signed-off-by: Johan Hovold
Signed-off-by: David S. Miller -
Make sure to deregister all child devices also on probe errors to avoid
leaks and to fix probe deferral:cpsw 4a100000.ethernet: omap_device: omap_device_enable() called from invalid state 1
cpsw 4a100000.ethernet: use pm_runtime_put_sync_suspend() in driver?
cpsw: probe of 4a100000.ethernet failed with error -22Add generic helper to undo the effects of cpsw_probe_dt(), which will
also be used in a follow-on patch to fix further leaks that have been
introduced more recently.Note that the platform device is now runtime-resumed before registering
any child devices in order to make sure that it is synchronously
suspended after having deregistered the children in the error path.Fixes: 1fb19aa730e4 ("net: cpsw: Add parentchild relation support
between cpsw and mdio")
Signed-off-by: Johan Hovold
Signed-off-by: David S. Miller -
Make sure to drop the reference taken by of_find_device_by_node() when
looking up an mdio device from a phy_id property during probe.Fixes: 549985ee9c72 ("cpsw: simplify the setup of the register
pointers")
Signed-off-by: Johan Hovold
Signed-off-by: David S. Miller -
Make sure to keep the platform device runtime-resumed throughout probe
to avoid accessing the CPSW registers in the error path (e.g. for
deferred probe) with clocks disabled:Unhandled fault: external abort on non-linefetch (0x1008) at 0xd0872d08
...
[] (cpsw_ale_control_set) from [] (cpsw_ale_destroy+0x2c/0x44)
[] (cpsw_ale_destroy) from [] (cpsw_probe+0xbd0/0x10c4)
[] (cpsw_probe) from [] (platform_drv_probe+0x5c/0xc0)Fixes: df828598a755 ("netdev: driver: ethernet: Add TI CPSW driver")
Signed-off-by: Johan Hovold
Signed-off-by: David S. Miller -
The sky2 frequently crashes during machine shutdown with:
sky2_get_stats+0x60/0x3d8 [sky2]
dev_get_stats+0x68/0xd8
rtnl_fill_stats+0x54/0x140
rtnl_fill_ifinfo+0x46c/0xc68
rtmsg_ifinfo_build_skb+0x7c/0xf0
rtmsg_ifinfo.part.22+0x3c/0x70
rtmsg_ifinfo+0x50/0x5c
netdev_state_change+0x4c/0x58
linkwatch_do_dev+0x50/0x88
__linkwatch_run_queue+0x104/0x1a4
linkwatch_event+0x30/0x3c
process_one_work+0x140/0x3e0
worker_thread+0x60/0x44c
kthread+0xdc/0xf0
ret_from_fork+0x10/0x50This is caused by the sky2 being called after it has been shutdown.
A previous thread about this can be found here:https://lkml.org/lkml/2016/4/12/410
An alternative fix is to assure that IFF_UP gets cleared by
calling dev_close() during shutdown. This is similar to what the
bnx2/tg3/xgene and maybe others are doing to assure that the driver
isn't being called following _shutdown().Signed-off-by: Jeremy Linton
Signed-off-by: David S. Miller
18 Nov, 2016
8 commits
-
It's possible to make scanning consume almost arbitrary amounts
of memory, e.g. by sending beacon frames with random BSSIDs at
high rates while somebody is scanning.Limit the number of BSS table entries we're willing to cache to
1000, limiting maximum memory usage to maybe 4-5MB, but lower
in practice - that would be the case for having both full-sized
beacon and probe response frames for each entry; this seems not
possible in practice, so a limit of 1000 entries will likely be
closer to 0.5 MB.Cc: stable@vger.kernel.org
Signed-off-by: Johannes Berg -
Userland client should be able to read an event, and reflect it back to
the kernel, therefore it needs to extract complete set of netlink flags.For example, this will allow "tc monitor" to distinguish Add and Replace
operations.Signed-off-by: Roman Mashak
Signed-off-by: Jamal Hadi Salim
Signed-off-by: David S. Miller -
If an ip6 tunnel is configured to inherit the traffic class from
the inner header, the dst_cache must be disabled or it will foul
the policy routing.The issue is apprently there since at leat Linux-2.6.12-rc2.
Reported-by: Liam McBirnie
Cc: Liam McBirnie
Acked-by: Hannes Frederic Sowa
Signed-off-by: Paolo Abeni
Signed-off-by: David S. Miller -
Johan Hovold says:
====================
net: phy: fix of_node and device leaksThese patches fix a couple of of_node leaks in the fixed-link code and a
device reference leak in a phy helper.
====================Signed-off-by: David S. Miller
-
Make sure to drop the of_node reference taken in fixed_phy_register()
when deregistering a PHY.Fixes: a75951217472 ("net: phy: extend fixed driver with
fixed_phy_register()")Signed-off-by: Johan Hovold
Signed-off-by: David S. Miller -
Make sure to drop the reference taken by bus_find_device() before
returning NULL from of_phy_find_device() when the found device is not a
PHY.Fixes: 6ed742363b9c ("of: of_mdio: Ensure mdio device is a PHY")
Signed-off-by: Johan Hovold
Signed-off-by: David S. Miller -
Make sure to drop the of_node reference also on failure to parse the
speed property in of_phy_register_fixed_link().Fixes: 3be2a49e5c08 ("of: provide a binding for fixed link PHYs")
Signed-off-by: Johan Hovold
Signed-off-by: David S. Miller -
Andrei reports we still allocate netns ID from idr after we destroy
it in cleanup_net().cleanup_net():
...
idr_destroy(&net->netns_ids);
...
list_for_each_entry_reverse(ops, &pernet_list, list)
ops_exit_list(ops, &net_exit_list);
-> rollback_registered_many()
-> rtmsg_ifinfo_build_skb()
-> rtnl_fill_ifinfo()
-> peernet2id_alloc()After that point we should not even access net->netns_ids, we
should check the death of the current netns as early as we can in
peernet2id_alloc().For net-next we can consider to avoid sending rtmsg totally,
it is a good optimization for netns teardown path.Fixes: 0c7aecd4bde4 ("netns: add rtnl cmd to add and get peer netns ids")
Reported-by: Andrei Vagin
Cc: Nicolas Dichtel
Signed-off-by: Cong Wang
Acked-by: Andrei Vagin
Signed-off-by: Nicolas Dichtel
Signed-off-by: David S. Miller
17 Nov, 2016
14 commits
-
Add a missing synchronize_net() call to avoid potential use after free,
since we explicitly call napi_hash_del() to factorize the RCU grace
period.Fixes: c0c050c58d84 ("bnxt_en: New Broadcom ethernet driver.")
Signed-off-by: Eric Dumazet
Cc: Michael Chan
Acked-by: Michael Chan
Signed-off-by: David S. Miller -
We currently have a fundamental problem in how we treat the CPU port and
its VLAN membership. As soon as a second VLAN is configured to be
untagged, the CPU automatically becomes untagged for that VLAN as well,
and yet, we don't gracefully make sure that the CPU becomes tagged in
the other VLANs it could be a member of. This results in only one VLAN
being effectively usable from the CPU's perspective.Instead of having some pretty complex logic which tries to maintain the
CPU port's default VLAN and its untagged properties, just do something
very simple which consists in neither altering the CPU port's PVID
settings, nor its untagged settings:- whenever a VLAN is added, the CPU is automatically a member of this
VLAN group, as a tagged member
- PVID settings for downstream ports do not alter the CPU port's PVID
since it now is part of all VLANs in the systemThis means that a typical example where e.g: LAN ports are in VLAN1, and
WAN port is in VLAN2, now require having two VLAN interfaces for the
host to properly terminate and send traffic from/to.Fixes: Fixes: a2482d2ce349 ("net: dsa: b53: Plug in VLAN support")
Reported-by: Hartmut Knaack
Signed-off-by: Florian Fainelli
Signed-off-by: David S. Miller -
With RGMII, we need a 1.5 to 2ns skew between clock and data lines. The
VSC8601 can handle this internally. While the VSC8601 can set more
fine-grained delays, the standard skew settings work out of the box.
The same heuristic is used to determine when this skew should be enabled
as in vsc824x_config_init().Tested on custom board with AM3352 SOC and VSC801 PHY.
Signed-off-by: Alexandru Gagniuc
Signed-off-by: David S. Miller -
Calling napi_hash_del() before netif_napi_del() is dangerous
if a synchronize_rcu() is not enforced before NAPI struct freeing.Lets leave this detail to core networking stack and feel
more comfortable.Signed-off-by: Eric Dumazet
Cc: Hariprasad S
Signed-off-by: David S. Miller -
Calling napi_hash_del() before netif_napi_del() is dangerous
if a synchronize_rcu() is not enforced before NAPI struct freeing.Lets leave this detail to core networking stack and feel
more comfortable.Signed-off-by: Eric Dumazet
Cc: Sathya Perla
Cc: Ajit Khaparde
Cc: Sriharsha Basavapatna
Cc: Somnath Kotur
Signed-off-by: David S. Miller -
It seems many drivers do not respect napi_hash_del() contract.
When napi_hash_del() is used before netif_napi_del(), an RCU grace
period is needed before freeing NAPI object.Fixes: 91815639d880 ("virtio-net: rx busy polling support")
Signed-off-by: Eric Dumazet
Cc: Jason Wang
Cc: Michael S. Tsirkin
Acked-by: Michael S. Tsirkin
Signed-off-by: David S. Miller -
Sunil Goutham says:
====================
net: thunderx: Miscellaneous fixesThis patchset includes fixes for incorrect LMAC credits,
unreliable driver statistics, memory leak upon interface
down e.t.cChanges from v1:
- As suggested replaced bit shifting with BIT() macro
in the patch 'Fix configuration of L3/L4 length checking'.
====================Signed-off-by: David S. Miller
-
This patch fixes the following
1. When interface is being teardown and queues are being cleaned up,
free pending SKBs that are in SQ which are either not transmitted
or freed as NAPI is disabled by that time.
2. While interface initialization, delay CFG_DONE notification till
the end to avoid corner cases where TXQs are enabled but CQ
interrupts are not which results blocking transmission and kicking
off watchdog.
3. Check for IFF_UP while re-enabling RBDR interrupts from tasklet.Signed-off-by: Sunil Goutham
Signed-off-by: David S. Miller -
This patch fixes multiple issues
1. Convert all driver statistics to percpu counters for accuracy.
2. To avoid multiple CQEs posted by a TSO packet appended to HW,
TSO pkt's SQE has 'post_cqe' not set but a dummy SQE is added
for getting HW transmit completion notification. This dummy
SQE has 'dont_send' set and HW drops the pkt pointed to in this
thus Tx drop counter increases. This patch fixes this by subtracting
SW tx tso counter from HW Tx drop counter for actual packet drop counter.
3. Reset all individual queue's and VNIC HW stats when interface is going down.
4. Getrid off unnecessary counters in hot path.
5. Bringout all CQE error stats i.e both Rx and Tx.Signed-off-by: Sunil Goutham
Signed-off-by: David S. Miller -
This patch fixes enabling of HW verification of L3/L4 length and
TCP/UDP checksum which is currently being cleared. Also fixed VLAN
stripping config which is being cleared when multiqset is enabled.Signed-off-by: Sunil Goutham
Signed-off-by: David S. Miller -
Programming LMAC credits taking 9K frame size by default is incorrect
as for an interface which is one of the many on the same BGX/QLM
no of credits available will be less as Tx FIFO will be divided
across all interfaces. So let's say a BGX with 40G interface and another
BGX with multiple 10G, bandwidth of 10G interfaces will be effected when
traffic is running on both 40G and 10G interfaces simultaneously.This patch fixes this issue by programming credits based on netdev's MTU.
Also fixed configuring MTU to HW and added CQE counter for pkts which
exceed this value.Signed-off-by: Sunil Goutham
Signed-off-by: David S. Miller -
This patch fixes the 'bgx_id' determination on 83xx where there are
4 BGX blocks instead of 2 on other platforms.Signed-off-by: Radha Mohan Chintakuntla
Signed-off-by: Sunil Goutham
Signed-off-by: David S. Miller -
Alexander Duyck says:
====================
ipv4: Fix memory leaks and reference issues in fibThis series fixes one major issue and one minor issue in the fib tables.
The major issue is that we had lost the functionality that was flushing the
local table entries from main after we had unmerged the two tries. In
order to regain the functionality I have performed a partial revert and
then moved the functionality for flushing the external entries from main
into fib_unmerge.The minor issue was a memory leak that could occur in the event that we
weren't able to add an alias to the local trie resulting in the fib alias
being leaked.
====================Signed-off-by: David S. Miller
-
Fix a small memory leak that can occur where we leak a fib_alias in the
event of us not being able to insert it into the local table.Fixes: 0ddcf43d5d4a0 ("ipv4: FIB Local/MAIN table collapse")
Reported-by: Eric Dumazet
Signed-off-by: Alexander Duyck
Acked-by: Eric Dumazet
Signed-off-by: David S. Miller