Netdev List
 help / color / mirror / Atom feed
* Re: [PATCH 1/2] net/ibmvnic: unlock rtnl_lock in reset so linkwatch_event can run
From: David Miller @ 2019-08-22  4:06 UTC (permalink / raw)
  To: julietk; +Cc: netdev, linuxppc-dev
In-Reply-To: <20190820213120.19880-1-julietk@linux.vnet.ibm.com>

From: Juliet Kim <julietk@linux.vnet.ibm.com>
Date: Tue, 20 Aug 2019 17:31:19 -0400

> Commit a5681e20b541 ("net/ibmnvic: Fix deadlock problem in reset") 
> made the change to hold the RTNL lock during a reset to avoid deadlock 
> but linkwatch_event is fired during the reset and needs the RTNL lock.  
> That keeps linkwatch_event process from proceeding until the reset 
> is complete. The reset process cannot tolerate the linkwatch_event 
> processing after reset completes, so release the RTNL lock during the 
> process to allow a chance for linkwatch_event to run during reset. 
> This does not guarantee that the linkwatch_event will be processed as 
> soon as link state changes, but is an improvement over the current code
> where linkwatch_event processing is always delayed, which prevents 
> transmissions on the device from being deactivated leading transmit 
> watchdog timer to time-out. 
> 
> Release the RTNL lock before link state change and re-acquire after 
> the link state change to allow linkwatch_event to grab the RTNL lock 
> and run during the reset.
> 
> Fixes: a5681e20b541 ("net/ibmnvic: Fix deadlock problem in reset")
> Signed-off-by: Juliet Kim <julietk@linux.vnet.ibm.com>

Conditional locking, especialy such extensive use of conditional
locking as is being done here, is strongly discouraged and is always
indicative of bad design.

Please try to rework this change such that the code paths that want
to lock things a certain way are %100 segregated functionally into
different code paths and functions.

Or feel free to find a cleaner way to fix this.

^ permalink raw reply

* Re: [PATCH] selftests: net: add missing NFT_FWD_NETDEV to config
From: David Miller @ 2019-08-22  4:04 UTC (permalink / raw)
  To: anders.roxell; +Cc: shuah, netdev, linux-kselftest, linux-kernel
In-Reply-To: <20190820134102.25636-1-anders.roxell@linaro.org>

From: Anders Roxell <anders.roxell@linaro.org>
Date: Tue, 20 Aug 2019 15:41:02 +0200

> When running xfrm_policy.sh we see the following
> 
>  # sysctl cannot stat /proc/sys/net/ipv4/conf/eth1/forwarding No such file or directory
>  cannot: stat_/proc/sys/net/ipv4/conf/eth1/forwarding #

I don't understand how a netfilter config options is going to make that
generic ipv4 protocol per-device sysctl appear.

If it's unrelated to your change, don't include it in the commit message
as it is confusing.

Thank you.

^ permalink raw reply

* Re: [PATCH net-next v2] net: openvswitch: Set OvS recirc_id from tc chain index
From: David Miller @ 2019-08-22  3:57 UTC (permalink / raw)
  To: paulb
  Cc: pshelar, netdev, jpettit, simon.horman, marcelo.leitner, vladbu,
	jiri, roid, yossiku, ronye, ozsh
In-Reply-To: <1566304251-15795-1-git-send-email-paulb@mellanox.com>

From: Paul Blakey <paulb@mellanox.com>
Date: Tue, 20 Aug 2019 15:30:51 +0300

> @@ -4050,6 +4060,9 @@ enum skb_ext_id {
>  #ifdef CONFIG_XFRM
>  	SKB_EXT_SEC_PATH,
>  #endif
> +#if IS_ENABLED(CONFIG_NET_TC_SKB_EXT)
> +	TC_SKB_EXT,
> +#endif
>  	SKB_EXT_NUM, /* must be last */
>  };

Sorry, no.

The SKB extensions are not a dumping ground for people to use when they can't
figure out another more reasonable place to put their values.  Try to use
the normal cb[], and if you can't you must explain in exhaustive detail
why you cannot in any way whatsoever make that work.

Again, SKB extensions are not a dumping ground.

^ permalink raw reply

* Re: New skb extension for use by LSMs (skb "security blob")?
From: David Miller @ 2019-08-22  3:54 UTC (permalink / raw)
  To: paul; +Cc: netdev, linux-security-module, selinux
In-Reply-To: <CAHC9VhRLexftb5mK8_izVQkv9w46m=aPukws2d2m+yrMvHUF_g@mail.gmail.com>

From: Paul Moore <paul@paul-moore.com>
Date: Wed, 21 Aug 2019 23:27:03 -0400

> On Wed, Aug 21, 2019 at 6:50 PM David Miller <davem@davemloft.net> wrote:
>> From: Paul Moore <paul@paul-moore.com>
>> Date: Wed, 21 Aug 2019 18:00:09 -0400
>>
>> > I was just made aware of the skb extension work, and it looks very
>> > appealing from a LSM perspective.  As some of you probably remember,
>> > we (the LSM folks) have wanted a proper security blob in the skb for
>> > quite some time, but netdev has been resistant to this idea thus far.
>> >
>> > If I were to propose a patchset to add a SKB_EXT_SECURITY skb
>> > extension (a single extension ID to be shared among the different
>> > LSMs), would that be something that netdev would consider merging, or
>> > is there still a philosophical objection to things like this?
>>
>> Unlike it's main intended user (MPTCP), it sounds like LSM's would use
>> this in a way such that it would be enabled on most systems all the
>> time.
>>
>> That really defeats the whole purpose of making it dynamic. :-/
> 
> I would be okay with only adding a skb extension when we needed it,
> which I'm currently thinking would only be when we had labeled
> networking actually configured at runtime and not just built into the
> kernel.  In SELinux we do something similar today when it comes to our
> per-packet access controls; if labeled networking is not configured we
> bail out of the LSM hooks early to improve performance (we would just
> be comparing unlabeled_t to unlabeled_t anyway).  I think the other
> LSMs would be okay with this usage as well.
> 
> While a number of distros due enable some form of LSM and the labeled
> networking bits at build time, vary few (if any?) provide a default
> configuration so I would expect no additional overhead in the common
> case.
> 
> Would that be acceptable?

I honestly don't know, I kinda feared that once the SKB extension went in
people would start dumping things there and that's exactly what's happening.
I just so happened to be reviewing:

	https://patchwork.ozlabs.org/patch/1150091/

while you were writing this email.

It's rediculous, the vultures are out.

^ permalink raw reply

* Re: [PATCH v2 net] gve: Copy and paste bug in gve_get_stats()
From: David Miller @ 2019-08-22  3:50 UTC (permalink / raw)
  To: dan.carpenter
  Cc: csully, sagis, jonolson, willemb, lrizzo, hslester96, netdev,
	kernel-janitors
In-Reply-To: <20190820090739.GB1845@kadam>

From: Dan Carpenter <dan.carpenter@oracle.com>
Date: Tue, 20 Aug 2019 12:11:44 +0300

> There is a copy and paste error so we have "rx" where "tx" was intended
> in the priv->tx[] array.
> 
> Fixes: f5cedc84a30d ("gve: Add transmit and receive support")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> ---
> v2: fix a typo in the subject: buy -> bug (Thanks Walter Harms)

Applied, thanks.

^ permalink raw reply

* Re: [PATCH net-next v3 0/4] Improve phc2sys precision for mv88e6xxx switch in combination with imx6-fec
From: David Miller @ 2019-08-22  3:49 UTC (permalink / raw)
  To: h.feurstein
  Cc: netdev, linux-kernel, andrew, richardcochran, mlichvar,
	vivien.didelot, f.fainelli, hkallweit1, olteanv, fugang.duan
In-Reply-To: <20190820084833.6019-1-hubert.feurstein@vahle.at>

From: Hubert Feurstein <h.feurstein@gmail.com>
Date: Tue, 20 Aug 2019 10:48:29 +0200

> From: Hubert Feurstein <h.feurstein@gmail.com>
> 
> Changelog:
>  v3: mv88e6xxx_smi_indirect_write: forward ptp_sts only on the last write
>      Copied Miroslav Lichvar because of PTP offset compensation patch
>  v2: Added patch for PTP offset compensation
>      Removed mdiobus_write_sts as there was no user
>      Removed ptp_sts_supported-boolean and introduced flags instead
> 
> With this patchset the phc2sys synchronisation precision improved to +/-555ns on
> an IMX6DL with an MV88E6220 switch attached.
> 
> This patchset takes into account the comments from the following discussions:
> - https://lkml.org/lkml/2019/8/2/1364
> - https://lkml.org/lkml/2019/8/5/169
> 
> Patch 01 adds the required infrastructure in the MDIO layer.
> Patch 02 adds additional PTP offset compensation.
> Patch 03 adds support for the PTP_SYS_OFFSET_EXTENDED ioctl in the mv88e6xxx driver.
> Patch 04 adds support for the PTP system timestamping in the imx-fec driver.

It looks like there is still some active discussion about these changes and
there will likely be another spin.

^ permalink raw reply

* Re: [PATCH] net: fix icmp_socket_deliver argument 2 input
From: David Miller @ 2019-08-22  3:43 UTC (permalink / raw)
  To: lirongqing; +Cc: netdev
In-Reply-To: <1566269160-11031-1-git-send-email-lirongqing@baidu.com>

From: Li RongQing <lirongqing@baidu.com>
Date: Tue, 20 Aug 2019 10:46:00 +0800

> it expects a unsigned int, but got a __be32
> 
> Signed-off-by: Li RongQing <lirongqing@baidu.com>
> Signed-off-by: Zhang Yu <zhangyu31@baidu.com>

Applied, but this causes no functional problems because all of the
per-protocol handlers ignore the info argument for redirects.

^ permalink raw reply

* Re: [PATCHv2 net] ipv6/addrconf: allow adding multicast addr if IFA_F_MCAUTOJOIN is set
From: David Miller @ 2019-08-22  3:40 UTC (permalink / raw)
  To: liuhangbin; +Cc: netdev, challa, dsahern, jishi
In-Reply-To: <20190820021947.22718-1-liuhangbin@gmail.com>

From: Hangbin Liu <liuhangbin@gmail.com>
Date: Tue, 20 Aug 2019 10:19:47 +0800

> In commit 93a714d6b53d ("multicast: Extend ip address command to enable
> multicast group join/leave on") we added a new flag IFA_F_MCAUTOJOIN
> to make user able to add multicast address on ethernet interface.
> 
> This works for IPv4, but not for IPv6. See the inet6_addr_add code.
> 
> static int inet6_addr_add()
> {
> 	...
> 	if (cfg->ifa_flags & IFA_F_MCAUTOJOIN) {
> 		ipv6_mc_config(net->ipv6.mc_autojoin_sk, true...)
> 	}
> 
> 	ifp = ipv6_add_addr(idev, cfg, true, extack); <- always fail with maddr
> 	if (!IS_ERR(ifp)) {
> 		...
> 	} else if (cfg->ifa_flags & IFA_F_MCAUTOJOIN) {
> 		ipv6_mc_config(net->ipv6.mc_autojoin_sk, false...)
> 	}
> }
> 
> But in ipv6_add_addr() it will check the address type and reject multicast
> address directly. So this feature is never worked for IPv6.
> 
> We should not remove the multicast address check totally in ipv6_add_addr(),
> but could accept multicast address only when IFA_F_MCAUTOJOIN flag supplied.
> 
> v2: update commit description
> 
> Reported-by: Jianlin Shi <jishi@redhat.com>
> Fixes: 93a714d6b53d ("multicast: Extend ip address command to enable multicast group join/leave on")
> Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>

Applied and queued up for -stable.

^ permalink raw reply

* Re: [PATCH net] net: dsa: bcm_sf2: Do not configure PHYLINK on CPU port
From: David Miller @ 2019-08-22  3:35 UTC (permalink / raw)
  To: f.fainelli; +Cc: netdev, andrew, vivien.didelot, linux-kernel
In-Reply-To: <20190822000747.3036-1-f.fainelli@gmail.com>

From: Florian Fainelli <f.fainelli@gmail.com>
Date: Wed, 21 Aug 2019 17:07:46 -0700

> The SF2 binding does not specify that the CPU port should have
> properties mandatory for successfully instantiating a PHYLINK object. As
> such, there will be missing properties (including fixed-link) and when
> attempting to validate and later configure link modes, we will have an
> incorrect set of parameters (interface, speed, duplex).
> 
> Simply prevent the CPU port from being configured through PHYLINK since
> bcm_sf2_imp_setup() takes care of that already.
> 
> Fixes: 0e27921816ad ("net: dsa: Use PHYLINK for the CPU/DSA ports")
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>

Applied, thanks Florian.

^ permalink raw reply

* Re: [PATCH net-next 01/10] net: dsa: mv88e6xxx: support 2500base-x in SGMII IRQ handler
From: Marek Behún @ 2019-08-22  3:33 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, andrew, vivien.didelot, f.fainelli, olteanv
In-Reply-To: <20190821.202542.800433879227385529.davem@davemloft.net>

On Wed, 21 Aug 2019 20:25:42 -0700 (PDT)
David Miller <davem@davemloft.net> wrote:

> From: Marek Behún <marek.behun@nic.cz>
> Date: Thu, 22 Aug 2019 01:27:15 +0200
> 
> > int port, int lane) {
> >  	struct dsa_switch *ds = chip->ds;
> > +	u8 cmode = chip->ports[port].cmode;
> >  	int duplex = DUPLEX_UNKNOWN;
> >  	int speed = SPEED_UNKNOWN;
> >  	int link, err;
> > +	phy_interface_t mode;
> >  	u16 status;  
> 
> Please retain the reverse christmas tree ordering of local variables
> here.
> 
> Thank you.

:DDDDDDDDDDDDDDDDDD
Okay, I shall do so in next version.

^ permalink raw reply

* Re: KMSAN: uninit-value in rtm_new_nexthop
From: David Ahern @ 2019-08-22  3:31 UTC (permalink / raw)
  To: syzbot, davem, dsahern, glider, kuznet, linux-kernel, netdev,
	syzkaller-bugs, yoshfuji
In-Reply-To: <000000000000276f580590a83ac2@google.com>

On 8/21/19 6:38 PM, syzbot wrote:
> ==================================================================
> BUG: KMSAN: uninit-value in rtm_to_nh_config net/ipv4/nexthop.c:1317
> [inline]
> BUG: KMSAN: uninit-value in rtm_new_nexthop+0x447/0x98e0
> net/ipv4/nexthop.c:1474

I believed this is fixed in net by commit:

Author: David Ahern <dsahern@gmail.com>
Date:   Mon Aug 12 13:07:07 2019 -0700

    netlink: Fix nlmsg_parse as a wrapper for strict message parsing


^ permalink raw reply

* Re: New skb extension for use by LSMs (skb "security blob")?
From: Paul Moore @ 2019-08-22  3:27 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, linux-security-module, selinux
In-Reply-To: <20190821.155013.1723892743521935274.davem@davemloft.net>

On Wed, Aug 21, 2019 at 6:50 PM David Miller <davem@davemloft.net> wrote:
> From: Paul Moore <paul@paul-moore.com>
> Date: Wed, 21 Aug 2019 18:00:09 -0400
>
> > I was just made aware of the skb extension work, and it looks very
> > appealing from a LSM perspective.  As some of you probably remember,
> > we (the LSM folks) have wanted a proper security blob in the skb for
> > quite some time, but netdev has been resistant to this idea thus far.
> >
> > If I were to propose a patchset to add a SKB_EXT_SECURITY skb
> > extension (a single extension ID to be shared among the different
> > LSMs), would that be something that netdev would consider merging, or
> > is there still a philosophical objection to things like this?
>
> Unlike it's main intended user (MPTCP), it sounds like LSM's would use
> this in a way such that it would be enabled on most systems all the
> time.
>
> That really defeats the whole purpose of making it dynamic. :-/

I would be okay with only adding a skb extension when we needed it,
which I'm currently thinking would only be when we had labeled
networking actually configured at runtime and not just built into the
kernel.  In SELinux we do something similar today when it comes to our
per-packet access controls; if labeled networking is not configured we
bail out of the LSM hooks early to improve performance (we would just
be comparing unlabeled_t to unlabeled_t anyway).  I think the other
LSMs would be okay with this usage as well.

While a number of distros due enable some form of LSM and the labeled
networking bits at build time, vary few (if any?) provide a default
configuration so I would expect no additional overhead in the common
case.

Would that be acceptable?

-- 
paul moore
www.paul-moore.com

^ permalink raw reply

* Re: [PATCH net-next 08/10] net: dsa: mv88e6xxx: simplify SERDES code for Topaz and Peridot
From: David Miller @ 2019-08-22  3:26 UTC (permalink / raw)
  To: marek.behun; +Cc: netdev, andrew, vivien.didelot, f.fainelli, olteanv
In-Reply-To: <20190821232724.1544-9-marek.behun@nic.cz>

From: Marek Behún <marek.behun@nic.cz>
Date: Thu, 22 Aug 2019 01:27:22 +0200

>  int mv88e6390_serdes_power(struct mv88e6xxx_chip *chip, int port, bool on)
>  {
>  	int lane;
> +	u8 cmode = chip->ports[port].cmode;

Reverse christmas tree please.

^ permalink raw reply

* Re: [PATCH net-next 01/10] net: dsa: mv88e6xxx: support 2500base-x in SGMII IRQ handler
From: David Miller @ 2019-08-22  3:25 UTC (permalink / raw)
  To: marek.behun; +Cc: netdev, andrew, vivien.didelot, f.fainelli, olteanv
In-Reply-To: <20190821232724.1544-2-marek.behun@nic.cz>

From: Marek Behún <marek.behun@nic.cz>
Date: Thu, 22 Aug 2019 01:27:15 +0200

> diff --git a/drivers/net/dsa/mv88e6xxx/serdes.c b/drivers/net/dsa/mv88e6xxx/serdes.c
> index 20c526c2a9ee..0f3d7cbb696b 100644
> --- a/drivers/net/dsa/mv88e6xxx/serdes.c
> +++ b/drivers/net/dsa/mv88e6xxx/serdes.c
> @@ -506,9 +506,11 @@ static void mv88e6390_serdes_irq_link_sgmii(struct mv88e6xxx_chip *chip,
>  					    int port, int lane)
>  {
>  	struct dsa_switch *ds = chip->ds;
> +	u8 cmode = chip->ports[port].cmode;
>  	int duplex = DUPLEX_UNKNOWN;
>  	int speed = SPEED_UNKNOWN;
>  	int link, err;
> +	phy_interface_t mode;
>  	u16 status;

Please retain the reverse christmas tree ordering of local variables here.

Thank you.

^ permalink raw reply

* Re: [pull request][net-next 00/11] Mellanox, mlx5 tc flow handling for concurrent execution (Part 3/3)
From: David Miller @ 2019-08-22  3:23 UTC (permalink / raw)
  To: saeedm; +Cc: netdev
In-Reply-To: <20190821232806.21847-1-saeedm@mellanox.com>

From: Saeed Mahameed <saeedm@mellanox.com>
Date: Wed, 21 Aug 2019 23:28:31 +0000

> This series, mostly from Vlad, is the 3rd and last part of 3 part series
> to improve mlx5 tc flow handling by removing dependency on rtnl_lock and
> providing a more fine-grained locking and rcu safe data structures to
> allow tc flow handling for concurrent execution.
> 
> 2) In this part Vlad handles mlx5e neigh offloads for concurrent
> execution.
> 
> 2) Vlad with Dmytro's help, They add 3 new mlx5 tracepoints to track mlx5
>  tc flower requests and neigh updates.
> 
> 3) Added mlx5 documentation for the new tracepoints.
> 
> For more information please see tag log below.
> 
> Please pull and let me know if there is any problem.

I reviewed this a few times, looks good.

Pulled, thanks.

^ permalink raw reply

* [PATCH net-next] net/rds: Fix info leak in rds6_inc_info_copy()
From: Ka-Cheong Poon @ 2019-08-22  3:18 UTC (permalink / raw)
  To: netdev; +Cc: santosh.shilimkar, davem, rds-devel

The rds6_inc_info_copy() function has a couple struct members which
are leaking stack information.  The ->tos field should hold actual
information and the ->flags field needs to be zeroed out.

Fixes: 3eb450367d08 ("rds: add type of service(tos) infrastructure")
Fixes: b7ff8b1036f0 ("rds: Extend RDS API for IPv6 support")
Reported-by: 黄ID蝴蝶 <butterflyhuangxx@gmail.com>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Ka-Cheong Poon <ka-cheong.poon@oracle.com>
---
 net/rds/recv.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/net/rds/recv.c b/net/rds/recv.c
index 853de48..a42ba7f 100644
--- a/net/rds/recv.c
+++ b/net/rds/recv.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This software is available to you under a choice of one of two
  * licenses.  You may choose to be licensed under the terms of the GNU
@@ -811,6 +811,7 @@ void rds6_inc_info_copy(struct rds_incoming *inc,
 
 	minfo6.seq = be64_to_cpu(inc->i_hdr.h_sequence);
 	minfo6.len = be32_to_cpu(inc->i_hdr.h_len);
+	minfo6.tos = inc->i_conn->c_tos;
 
 	if (flip) {
 		minfo6.laddr = *daddr;
@@ -824,6 +825,8 @@ void rds6_inc_info_copy(struct rds_incoming *inc,
 		minfo6.fport = inc->i_hdr.h_dport;
 	}
 
+	minfo6.flags = 0;
+
 	rds_info_copy(iter, &minfo6, sizeof(minfo6));
 }
 #endif
-- 
1.8.3.1


^ permalink raw reply related

* Re: BUG: MAX_STACK_TRACE_ENTRIES too low in tipc_topsrv_exit_net
From: Eric Biggers @ 2019-08-22  3:05 UTC (permalink / raw)
  To: syzbot
  Cc: davem, jon.maloy, linux-kernel, netdev, syzkaller-bugs,
	tipc-discussion, ying.xue
In-Reply-To: <00000000000071c72c0590776357@google.com>

On Mon, Aug 19, 2019 at 05:22:07AM -0700, syzbot wrote:
> Hello,
> 
> syzbot found the following crash on:
> 
> HEAD commit:    5181b473 net: phy: realtek: add NBase-T PHY auto-detection
> git tree:       net-next
> console output: https://syzkaller.appspot.com/x/log.txt?x=156b731c600000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=d4cf1ffb87d590d7
> dashboard link: https://syzkaller.appspot.com/bug?extid=5f97459a05652f579f6c
> compiler:       gcc (GCC) 9.0.0 20181231 (experimental)
> 
> Unfortunately, I don't have any reproducer for this crash yet.
> 
> IMPORTANT: if you fix the bug, please add the following tag to the commit:
> Reported-by: syzbot+5f97459a05652f579f6c@syzkaller.appspotmail.com
> 
> BUG: MAX_STACK_TRACE_ENTRIES too low!
> turning off the locking correctness validator.
> CPU: 0 PID: 2581 Comm: kworker/u4:4 Not tainted 5.3.0-rc3+ #132
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Workqueue: netns cleanup_net
> Call Trace:
>  __dump_stack lib/dump_stack.c:77 [inline]
>  dump_stack+0x172/0x1f0 lib/dump_stack.c:113
>  save_trace kernel/locking/lockdep.c:473 [inline]
>  save_trace.isra.0.cold+0x14/0x19 kernel/locking/lockdep.c:458
>  mark_lock+0x3db/0x11e0 kernel/locking/lockdep.c:3583
>  mark_usage kernel/locking/lockdep.c:3517 [inline]
>  __lock_acquire+0x538/0x4c30 kernel/locking/lockdep.c:3834
>  lock_acquire+0x190/0x410 kernel/locking/lockdep.c:4412
>  flush_workqueue+0x126/0x14b0 kernel/workqueue.c:2774
>  drain_workqueue+0x1b4/0x470 kernel/workqueue.c:2939
>  destroy_workqueue+0x21/0x6c0 kernel/workqueue.c:4320
>  tipc_topsrv_work_stop net/tipc/topsrv.c:636 [inline]
>  tipc_topsrv_stop net/tipc/topsrv.c:694 [inline]
>  tipc_topsrv_exit_net+0x3fe/0x5d8 net/tipc/topsrv.c:706
>  ops_exit_list.isra.0+0xaa/0x150 net/core/net_namespace.c:172
>  cleanup_net+0x4e2/0xa70 net/core/net_namespace.c:594
>  process_one_work+0x9af/0x1740 kernel/workqueue.c:2269
>  worker_thread+0x98/0xe40 kernel/workqueue.c:2415
>  kthread+0x361/0x430 kernel/kthread.c:255
>  ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352
> kobject: 'rx-0' (000000000e2c91cd): kobject_cleanup, parent 000000002003fefb
> kobject: 'rx-0' (000000000e2c91cd): auto cleanup 'remove' event
> kobject: 'rx-0' (000000000e2c91cd): kobject_uevent_env
> kobject: 'rx-0' (000000000e2c91cd): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000000e2c91cd): auto cleanup kobject_del
> kobject: 'rx-0' (000000000e2c91cd): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (0000000058b6f726): kobject_cleanup, parent 000000002003fefb
> kobject: 'tx-0' (0000000058b6f726): auto cleanup 'remove' event
> kobject: 'tx-0' (0000000058b6f726): kobject_uevent_env
> kobject: 'tx-0' (0000000058b6f726): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (0000000058b6f726): auto cleanup kobject_del
> kobject: 'tx-0' (0000000058b6f726): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000002003fefb): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000002003fefb): calling ktype release
> kobject: 'queues' (000000002003fefb): kset_release
> kobject: 'queues': free name
> kobject: 'ip6gre0' (0000000018a24d65): kobject_uevent_env
> kobject: 'ip6gre0' (0000000018a24d65): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000940b22b0): kobject_cleanup, parent 0000000005a1fc3a
> kobject: 'rx-0' (00000000940b22b0): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000940b22b0): kobject_uevent_env
> kobject: 'rx-0' (00000000940b22b0): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000940b22b0): auto cleanup kobject_del
> kobject: 'rx-0' (00000000940b22b0): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000278e85e2): kobject_cleanup, parent 0000000005a1fc3a
> kobject: 'tx-0' (00000000278e85e2): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000278e85e2): kobject_uevent_env
> kobject: 'tx-0' (00000000278e85e2): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000278e85e2): auto cleanup kobject_del
> kobject: 'tx-0' (00000000278e85e2): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (0000000005a1fc3a): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (0000000005a1fc3a): calling ktype release
> kobject: 'queues' (0000000005a1fc3a): kset_release
> kobject: 'queues': free name
> kobject: 'ip6gre0' (00000000c78b955b): kobject_uevent_env
> kobject: 'ip6gre0' (00000000c78b955b): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000000fa7c1d1): kobject_cleanup, parent 00000000d264d5b4
> kobject: 'rx-0' (000000000fa7c1d1): auto cleanup 'remove' event
> kobject: 'rx-0' (000000000fa7c1d1): kobject_uevent_env
> kobject: 'rx-0' (000000000fa7c1d1): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000000fa7c1d1): auto cleanup kobject_del
> kobject: 'rx-0' (000000000fa7c1d1): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (000000000f66c80c): kobject_cleanup, parent 00000000d264d5b4
> kobject: 'tx-0' (000000000f66c80c): auto cleanup 'remove' event
> kobject: 'tx-0' (000000000f66c80c): kobject_uevent_env
> kobject: 'tx-0' (000000000f66c80c): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (000000000f66c80c): auto cleanup kobject_del
> kobject: 'tx-0' (000000000f66c80c): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (00000000d264d5b4): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (00000000d264d5b4): calling ktype release
> kobject: 'queues' (00000000d264d5b4): kset_release
> kobject: 'queues': free name
> kobject: 'ip6gre0' (00000000ef80dc29): kobject_uevent_env
> kobject: 'ip6gre0' (00000000ef80dc29): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000f928d911): kobject_cleanup, parent 000000003c7c9951
> kobject: 'rx-0' (00000000f928d911): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000f928d911): kobject_uevent_env
> kobject: 'rx-0' (00000000f928d911): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000f928d911): auto cleanup kobject_del
> kobject: 'rx-0' (00000000f928d911): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (000000009bf7cc90): kobject_cleanup, parent 000000003c7c9951
> kobject: 'tx-0' (000000009bf7cc90): auto cleanup 'remove' event
> kobject: 'tx-0' (000000009bf7cc90): kobject_uevent_env
> kobject: 'tx-0' (000000009bf7cc90): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (000000009bf7cc90): auto cleanup kobject_del
> kobject: 'tx-0' (000000009bf7cc90): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000003c7c9951): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000003c7c9951): calling ktype release
> kobject: 'queues' (000000003c7c9951): kset_release
> kobject: 'queues': free name
> kobject: 'ip6gre0' (00000000acb4e121): kobject_uevent_env
> kobject: 'ip6gre0' (00000000acb4e121): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (0000000045fca4e1): kobject_cleanup, parent 000000001c9d9e42
> kobject: 'rx-0' (0000000045fca4e1): auto cleanup 'remove' event
> kobject: 'rx-0' (0000000045fca4e1): kobject_uevent_env
> kobject: 'rx-0' (0000000045fca4e1): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (0000000045fca4e1): auto cleanup kobject_del
> kobject: 'rx-0' (0000000045fca4e1): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000a309e805): kobject_cleanup, parent 000000001c9d9e42
> kobject: 'tx-0' (00000000a309e805): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000a309e805): kobject_uevent_env
> kobject: 'tx-0' (00000000a309e805): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000a309e805): auto cleanup kobject_del
> kobject: 'tx-0' (00000000a309e805): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000001c9d9e42): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000001c9d9e42): calling ktype release
> kobject: 'queues' (000000001c9d9e42): kset_release
> kobject: 'queues': free name
> kobject: 'ip6gre0' (0000000094fbf7bb): kobject_uevent_env
> kobject: 'ip6gre0' (0000000094fbf7bb): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000443242e0): kobject_cleanup, parent 000000009f9df3e8
> kobject: 'rx-0' (00000000443242e0): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000443242e0): kobject_uevent_env
> kobject: 'rx-0' (00000000443242e0): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000443242e0): auto cleanup kobject_del
> kobject: 'rx-0' (00000000443242e0): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (000000005588ef99): kobject_cleanup, parent 000000009f9df3e8
> kobject: 'tx-0' (000000005588ef99): auto cleanup 'remove' event
> kobject: 'tx-0' (000000005588ef99): kobject_uevent_env
> kobject: 'tx-0' (000000005588ef99): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (000000005588ef99): auto cleanup kobject_del
> kobject: 'tx-0' (000000005588ef99): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000009f9df3e8): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000009f9df3e8): calling ktype release
> kobject: 'queues' (000000009f9df3e8): kset_release
> kobject: 'queues': free name
> kobject: 'ip6gre0' (0000000060028093): kobject_uevent_env
> kobject: 'ip6gre0' (0000000060028093): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (0000000002c2db56): kobject_cleanup, parent 000000000ee23264
> kobject: 'rx-0' (0000000002c2db56): auto cleanup 'remove' event
> kobject: 'rx-0' (0000000002c2db56): kobject_uevent_env
> kobject: 'rx-0' (0000000002c2db56): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (0000000002c2db56): auto cleanup kobject_del
> kobject: 'rx-0' (0000000002c2db56): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000831daf90): kobject_cleanup, parent 000000000ee23264
> kobject: 'tx-0' (00000000831daf90): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000831daf90): kobject_uevent_env
> kobject: 'tx-0' (00000000831daf90): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000831daf90): auto cleanup kobject_del
> kobject: 'tx-0' (00000000831daf90): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000000ee23264): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000000ee23264): calling ktype release
> kobject: 'queues' (000000000ee23264): kset_release
> kobject: 'queues': free name
> kobject: 'ip6gre0' (00000000e217374d): kobject_uevent_env
> kobject: 'ip6gre0' (00000000e217374d): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000f8e7f44b): kobject_cleanup, parent 000000003daaa7c9
> kobject: 'rx-0' (00000000f8e7f44b): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000f8e7f44b): kobject_uevent_env
> kobject: 'rx-0' (00000000f8e7f44b): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000f8e7f44b): auto cleanup kobject_del
> kobject: 'rx-0' (00000000f8e7f44b): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (000000001277c9de): kobject_cleanup, parent 000000003daaa7c9
> kobject: 'tx-0' (000000001277c9de): auto cleanup 'remove' event
> kobject: 'tx-0' (000000001277c9de): kobject_uevent_env
> kobject: 'tx-0' (000000001277c9de): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (000000001277c9de): auto cleanup kobject_del
> kobject: 'tx-0' (000000001277c9de): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000003daaa7c9): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000003daaa7c9): calling ktype release
> kobject: 'queues' (000000003daaa7c9): kset_release
> kobject: 'queues': free name
> kobject: 'ip6gre0' (00000000597e3c0a): kobject_uevent_env
> kobject: 'ip6gre0' (00000000597e3c0a): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000eb376580): kobject_cleanup, parent 0000000054d719cb
> kobject: 'rx-0' (00000000eb376580): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000eb376580): kobject_uevent_env
> kobject: 'rx-0' (00000000eb376580): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000eb376580): auto cleanup kobject_del
> kobject: 'rx-0' (00000000eb376580): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (0000000040024191): kobject_cleanup, parent 0000000054d719cb
> kobject: 'tx-0' (0000000040024191): auto cleanup 'remove' event
> kobject: 'tx-0' (0000000040024191): kobject_uevent_env
> kobject: 'tx-0' (0000000040024191): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (0000000040024191): auto cleanup kobject_del
> kobject: 'tx-0' (0000000040024191): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (0000000054d719cb): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (0000000054d719cb): calling ktype release
> kobject: 'queues' (0000000054d719cb): kset_release
> kobject: 'queues': free name
> kobject: 'ip6gre0' (00000000995a4c19): kobject_uevent_env
> kobject: 'ip6gre0' (00000000995a4c19): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'ip6gre0' (0000000018a24d65): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6gre0' (0000000018a24d65): calling ktype release
> kobject: 'ip6gre0': free name
> kobject: 'ip6gre0' (00000000c78b955b): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6gre0' (00000000c78b955b): calling ktype release
> kobject: 'ip6gre0': free name
> kobject: 'ip6gre0' (00000000ef80dc29): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6gre0' (00000000ef80dc29): calling ktype release
> kobject: 'ip6gre0': free name
> kobject: 'ip6gre0' (00000000acb4e121): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6gre0' (00000000acb4e121): calling ktype release
> kobject: 'ip6gre0': free name
> kobject: 'ip6gre0' (0000000094fbf7bb): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6gre0' (0000000094fbf7bb): calling ktype release
> kobject: 'ip6gre0': free name
> kobject: 'ip6gre0' (0000000060028093): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6gre0' (0000000060028093): calling ktype release
> kobject: 'ip6gre0': free name
> kobject: 'ip6gre0' (00000000e217374d): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6gre0' (00000000e217374d): calling ktype release
> kobject: 'ip6gre0': free name
> kobject: 'ip6gre0' (00000000597e3c0a): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6gre0' (00000000597e3c0a): calling ktype release
> kobject: 'ip6gre0': free name
> kobject: 'ip6gre0' (00000000995a4c19): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6gre0' (00000000995a4c19): calling ktype release
> kobject: 'ip6gre0': free name
> kobject: 'rx-0' (00000000a530319b): kobject_cleanup, parent 0000000044c197cb
> kobject: 'rx-0' (00000000a530319b): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000a530319b): kobject_uevent_env
> kobject: 'rx-0' (00000000a530319b): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000a530319b): auto cleanup kobject_del
> kobject: 'rx-0' (00000000a530319b): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (0000000036817586): kobject_cleanup, parent 0000000044c197cb
> kobject: 'tx-0' (0000000036817586): auto cleanup 'remove' event
> kobject: 'tx-0' (0000000036817586): kobject_uevent_env
> kobject: 'tx-0' (0000000036817586): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (0000000036817586): auto cleanup kobject_del
> kobject: 'tx-0' (0000000036817586): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (0000000044c197cb): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (0000000044c197cb): calling ktype release
> kobject: 'queues' (0000000044c197cb): kset_release
> kobject: 'queues': free name
> kobject: 'ip6tnl0' (000000004d7cdca9): kobject_uevent_env
> kobject: 'ip6tnl0' (000000004d7cdca9): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000009ad0ffcd): kobject_cleanup, parent 000000006632a50a
> kobject: 'rx-0' (000000009ad0ffcd): auto cleanup 'remove' event
> kobject: 'rx-0' (000000009ad0ffcd): kobject_uevent_env
> kobject: 'rx-0' (000000009ad0ffcd): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000009ad0ffcd): auto cleanup kobject_del
> kobject: 'rx-0' (000000009ad0ffcd): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000cc8f7d89): kobject_cleanup, parent 000000006632a50a
> kobject: 'tx-0' (00000000cc8f7d89): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000cc8f7d89): kobject_uevent_env
> kobject: 'tx-0' (00000000cc8f7d89): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000cc8f7d89): auto cleanup kobject_del
> kobject: 'tx-0' (00000000cc8f7d89): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000006632a50a): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000006632a50a): calling ktype release
> kobject: 'queues' (000000006632a50a): kset_release
> kobject: 'queues': free name
> kobject: 'ip6tnl0' (00000000af12a50a): kobject_uevent_env
> kobject: 'ip6tnl0' (00000000af12a50a): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000000f3a002b): kobject_cleanup, parent 000000008e667009
> kobject: 'rx-0' (000000000f3a002b): auto cleanup 'remove' event
> kobject: 'rx-0' (000000000f3a002b): kobject_uevent_env
> kobject: 'rx-0' (000000000f3a002b): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000000f3a002b): auto cleanup kobject_del
> kobject: 'rx-0' (000000000f3a002b): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (000000003dd814d2): kobject_cleanup, parent 000000008e667009
> kobject: 'tx-0' (000000003dd814d2): auto cleanup 'remove' event
> kobject: 'tx-0' (000000003dd814d2): kobject_uevent_env
> kobject: 'tx-0' (000000003dd814d2): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (000000003dd814d2): auto cleanup kobject_del
> kobject: 'tx-0' (000000003dd814d2): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000008e667009): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000008e667009): calling ktype release
> kobject: 'queues' (000000008e667009): kset_release
> kobject: 'queues': free name
> kobject: 'ip6tnl0' (00000000ad24f481): kobject_uevent_env
> kobject: 'ip6tnl0' (00000000ad24f481): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000b57b4b94): kobject_cleanup, parent 00000000c8f88c97
> kobject: 'rx-0' (00000000b57b4b94): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000b57b4b94): kobject_uevent_env
> kobject: 'rx-0' (00000000b57b4b94): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000b57b4b94): auto cleanup kobject_del
> kobject: 'rx-0' (00000000b57b4b94): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000035a9b1c): kobject_cleanup, parent 00000000c8f88c97
> kobject: 'tx-0' (00000000035a9b1c): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000035a9b1c): kobject_uevent_env
> kobject: 'tx-0' (00000000035a9b1c): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000035a9b1c): auto cleanup kobject_del
> kobject: 'tx-0' (00000000035a9b1c): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (00000000c8f88c97): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (00000000c8f88c97): calling ktype release
> kobject: 'queues' (00000000c8f88c97): kset_release
> kobject: 'queues': free name
> kobject: 'ip6tnl0' (00000000e4871037): kobject_uevent_env
> kobject: 'ip6tnl0' (00000000e4871037): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000009e5eabee): kobject_cleanup, parent 000000000bef0c44
> kobject: 'rx-0' (000000009e5eabee): auto cleanup 'remove' event
> kobject: 'rx-0' (000000009e5eabee): kobject_uevent_env
> kobject: 'rx-0' (000000009e5eabee): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000009e5eabee): auto cleanup kobject_del
> kobject: 'rx-0' (000000009e5eabee): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000917837d7): kobject_cleanup, parent 000000000bef0c44
> kobject: 'tx-0' (00000000917837d7): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000917837d7): kobject_uevent_env
> kobject: 'tx-0' (00000000917837d7): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000917837d7): auto cleanup kobject_del
> kobject: 'tx-0' (00000000917837d7): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000000bef0c44): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000000bef0c44): calling ktype release
> kobject: 'queues' (000000000bef0c44): kset_release
> kobject: 'queues': free name
> kobject: 'ip6tnl0' (00000000a48d6ad0): kobject_uevent_env
> kobject: 'ip6tnl0' (00000000a48d6ad0): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (0000000099277526): kobject_cleanup, parent 0000000085f382c3
> kobject: 'rx-0' (0000000099277526): auto cleanup 'remove' event
> kobject: 'rx-0' (0000000099277526): kobject_uevent_env
> kobject: 'rx-0' (0000000099277526): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (0000000099277526): auto cleanup kobject_del
> kobject: 'rx-0' (0000000099277526): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000e28e65a5): kobject_cleanup, parent 0000000085f382c3
> kobject: 'tx-0' (00000000e28e65a5): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000e28e65a5): kobject_uevent_env
> kobject: 'tx-0' (00000000e28e65a5): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000e28e65a5): auto cleanup kobject_del
> kobject: 'tx-0' (00000000e28e65a5): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (0000000085f382c3): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (0000000085f382c3): calling ktype release
> kobject: 'queues' (0000000085f382c3): kset_release
> kobject: 'queues': free name
> kobject: 'ip6tnl0' (000000002480b06a): kobject_uevent_env
> kobject: 'ip6tnl0' (000000002480b06a): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000ad1f374e): kobject_cleanup, parent 000000004552107a
> kobject: 'rx-0' (00000000ad1f374e): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000ad1f374e): kobject_uevent_env
> kobject: 'rx-0' (00000000ad1f374e): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000ad1f374e): auto cleanup kobject_del
> kobject: 'rx-0' (00000000ad1f374e): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000a52c4930): kobject_cleanup, parent 000000004552107a
> kobject: 'tx-0' (00000000a52c4930): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000a52c4930): kobject_uevent_env
> kobject: 'tx-0' (00000000a52c4930): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000a52c4930): auto cleanup kobject_del
> kobject: 'tx-0' (00000000a52c4930): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000004552107a): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000004552107a): calling ktype release
> kobject: 'queues' (000000004552107a): kset_release
> kobject: 'queues': free name
> kobject: 'ip6tnl0' (00000000b5c75a98): kobject_uevent_env
> kobject: 'ip6tnl0' (00000000b5c75a98): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (0000000069cf2cec): kobject_cleanup, parent 000000000effb6b7
> kobject: 'rx-0' (0000000069cf2cec): auto cleanup 'remove' event
> kobject: 'rx-0' (0000000069cf2cec): kobject_uevent_env
> kobject: 'rx-0' (0000000069cf2cec): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (0000000069cf2cec): auto cleanup kobject_del
> kobject: 'rx-0' (0000000069cf2cec): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000f6dd67a1): kobject_cleanup, parent 000000000effb6b7
> kobject: 'tx-0' (00000000f6dd67a1): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000f6dd67a1): kobject_uevent_env
> kobject: 'tx-0' (00000000f6dd67a1): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000f6dd67a1): auto cleanup kobject_del
> kobject: 'tx-0' (00000000f6dd67a1): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000000effb6b7): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000000effb6b7): calling ktype release
> kobject: 'queues' (000000000effb6b7): kset_release
> kobject: 'queues': free name
> kobject: 'ip6tnl0' (0000000017bab338): kobject_uevent_env
> kobject: 'ip6tnl0' (0000000017bab338): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000005bed9a62): kobject_cleanup, parent 000000002a90c11d
> kobject: 'rx-0' (000000005bed9a62): auto cleanup 'remove' event
> kobject: 'rx-0' (000000005bed9a62): kobject_uevent_env
> kobject: 'rx-0' (000000005bed9a62): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000005bed9a62): auto cleanup kobject_del
> kobject: 'rx-0' (000000005bed9a62): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000148a89bb): kobject_cleanup, parent 000000002a90c11d
> kobject: 'tx-0' (00000000148a89bb): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000148a89bb): kobject_uevent_env
> kobject: 'tx-0' (00000000148a89bb): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000148a89bb): auto cleanup kobject_del
> kobject: 'tx-0' (00000000148a89bb): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000002a90c11d): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000002a90c11d): calling ktype release
> kobject: 'queues' (000000002a90c11d): kset_release
> kobject: 'queues': free name
> kobject: 'ip6tnl0' (000000007855542e): kobject_uevent_env
> kobject: 'ip6tnl0' (000000007855542e): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'ip6tnl0' (000000004d7cdca9): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6tnl0' (000000004d7cdca9): calling ktype release
> kobject: 'ip6tnl0': free name
> kobject: 'ip6tnl0' (00000000af12a50a): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6tnl0' (00000000af12a50a): calling ktype release
> kobject: 'ip6tnl0': free name
> kobject: 'ip6tnl0' (00000000ad24f481): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6tnl0' (00000000ad24f481): calling ktype release
> kobject: 'ip6tnl0': free name
> kobject: 'ip6tnl0' (00000000e4871037): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6tnl0' (00000000e4871037): calling ktype release
> kobject: 'ip6tnl0': free name
> kobject: 'ip6tnl0' (00000000a48d6ad0): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6tnl0' (00000000a48d6ad0): calling ktype release
> kobject: 'ip6tnl0': free name
> kobject: 'ip6tnl0' (000000002480b06a): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6tnl0' (000000002480b06a): calling ktype release
> kobject: 'ip6tnl0': free name
> kobject: 'ip6tnl0' (00000000b5c75a98): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6tnl0' (00000000b5c75a98): calling ktype release
> kobject: 'ip6tnl0': free name
> kobject: 'ip6tnl0' (0000000017bab338): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6tnl0' (0000000017bab338): calling ktype release
> kobject: 'ip6tnl0': free name
> kobject: 'ip6tnl0' (000000007855542e): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6tnl0' (000000007855542e): calling ktype release
> kobject: 'ip6tnl0': free name
> kobject: 'rx-0' (00000000faff8a75): kobject_cleanup, parent 000000003555e997
> kobject: 'rx-0' (00000000faff8a75): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000faff8a75): kobject_uevent_env
> kobject: 'rx-0' (00000000faff8a75): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000faff8a75): auto cleanup kobject_del
> kobject: 'rx-0' (00000000faff8a75): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (000000003377944b): kobject_cleanup, parent 000000003555e997
> kobject: 'tx-0' (000000003377944b): auto cleanup 'remove' event
> kobject: 'tx-0' (000000003377944b): kobject_uevent_env
> kobject: 'tx-0' (000000003377944b): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (000000003377944b): auto cleanup kobject_del
> kobject: 'tx-0' (000000003377944b): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000003555e997): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000003555e997): calling ktype release
> kobject: 'queues' (000000003555e997): kset_release
> kobject: 'queues': free name
> kobject: 'sit0' (00000000ba6470e9): kobject_uevent_env
> kobject: 'sit0' (00000000ba6470e9): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000003577adaa): kobject_cleanup, parent 00000000c5fbab92
> kobject: 'rx-0' (000000003577adaa): auto cleanup 'remove' event
> kobject: 'rx-0' (000000003577adaa): kobject_uevent_env
> kobject: 'rx-0' (000000003577adaa): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000003577adaa): auto cleanup kobject_del
> kobject: 'rx-0' (000000003577adaa): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000f519527f): kobject_cleanup, parent 00000000c5fbab92
> kobject: 'tx-0' (00000000f519527f): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000f519527f): kobject_uevent_env
> kobject: 'tx-0' (00000000f519527f): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000f519527f): auto cleanup kobject_del
> kobject: 'tx-0' (00000000f519527f): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (00000000c5fbab92): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (00000000c5fbab92): calling ktype release
> kobject: 'queues' (00000000c5fbab92): kset_release
> kobject: 'queues': free name
> kobject: 'sit0' (000000009f74c826): kobject_uevent_env
> kobject: 'sit0' (000000009f74c826): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000137dfc9e): kobject_cleanup, parent 00000000e8ee822b
> kobject: 'rx-0' (00000000137dfc9e): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000137dfc9e): kobject_uevent_env
> kobject: 'rx-0' (00000000137dfc9e): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000137dfc9e): auto cleanup kobject_del
> kobject: 'rx-0' (00000000137dfc9e): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000cf51e058): kobject_cleanup, parent 00000000e8ee822b
> kobject: 'tx-0' (00000000cf51e058): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000cf51e058): kobject_uevent_env
> kobject: 'tx-0' (00000000cf51e058): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000cf51e058): auto cleanup kobject_del
> kobject: 'tx-0' (00000000cf51e058): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (00000000e8ee822b): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (00000000e8ee822b): calling ktype release
> kobject: 'queues' (00000000e8ee822b): kset_release
> kobject: 'queues': free name
> kobject: 'sit0' (0000000065e536c8): kobject_uevent_env
> kobject: 'sit0' (0000000065e536c8): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000265aa8c8): kobject_cleanup, parent 000000001c613bad
> kobject: 'rx-0' (00000000265aa8c8): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000265aa8c8): kobject_uevent_env
> kobject: 'rx-0' (00000000265aa8c8): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000265aa8c8): auto cleanup kobject_del
> kobject: 'rx-0' (00000000265aa8c8): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000669b1a88): kobject_cleanup, parent 000000001c613bad
> kobject: 'tx-0' (00000000669b1a88): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000669b1a88): kobject_uevent_env
> kobject: 'tx-0' (00000000669b1a88): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000669b1a88): auto cleanup kobject_del
> kobject: 'tx-0' (00000000669b1a88): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000001c613bad): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000001c613bad): calling ktype release
> kobject: 'queues' (000000001c613bad): kset_release
> kobject: 'queues': free name
> kobject: 'sit0' (00000000b0b0bf77): kobject_uevent_env
> kobject: 'sit0' (00000000b0b0bf77): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000c08b3e35): kobject_cleanup, parent 000000004d964cab
> kobject: 'rx-0' (00000000c08b3e35): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000c08b3e35): kobject_uevent_env
> kobject: 'rx-0' (00000000c08b3e35): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000c08b3e35): auto cleanup kobject_del
> kobject: 'rx-0' (00000000c08b3e35): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (000000006bb20443): kobject_cleanup, parent 000000004d964cab
> kobject: 'tx-0' (000000006bb20443): auto cleanup 'remove' event
> kobject: 'tx-0' (000000006bb20443): kobject_uevent_env
> kobject: 'tx-0' (000000006bb20443): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (000000006bb20443): auto cleanup kobject_del
> kobject: 'tx-0' (000000006bb20443): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000004d964cab): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000004d964cab): calling ktype release
> kobject: 'queues' (000000004d964cab): kset_release
> kobject: 'queues': free name
> kobject: 'sit0' (00000000e3a2a337): kobject_uevent_env
> kobject: 'sit0' (00000000e3a2a337): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000fcf6c2df): kobject_cleanup, parent 000000001f378765
> kobject: 'rx-0' (00000000fcf6c2df): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000fcf6c2df): kobject_uevent_env
> kobject: 'rx-0' (00000000fcf6c2df): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000fcf6c2df): auto cleanup kobject_del
> kobject: 'rx-0' (00000000fcf6c2df): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000306e361a): kobject_cleanup, parent 000000001f378765
> kobject: 'tx-0' (00000000306e361a): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000306e361a): kobject_uevent_env
> kobject: 'tx-0' (00000000306e361a): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000306e361a): auto cleanup kobject_del
> kobject: 'tx-0' (00000000306e361a): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000001f378765): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000001f378765): calling ktype release
> kobject: 'queues' (000000001f378765): kset_release
> kobject: 'queues': free name
> kobject: 'sit0' (0000000058d12d0d): kobject_uevent_env
> kobject: 'sit0' (0000000058d12d0d): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000078d95bd): kobject_cleanup, parent 000000003596feb5
> kobject: 'rx-0' (00000000078d95bd): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000078d95bd): kobject_uevent_env
> kobject: 'rx-0' (00000000078d95bd): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000078d95bd): auto cleanup kobject_del
> kobject: 'rx-0' (00000000078d95bd): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (0000000037709752): kobject_cleanup, parent 000000003596feb5
> kobject: 'tx-0' (0000000037709752): auto cleanup 'remove' event
> kobject: 'tx-0' (0000000037709752): kobject_uevent_env
> kobject: 'tx-0' (0000000037709752): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (0000000037709752): auto cleanup kobject_del
> kobject: 'tx-0' (0000000037709752): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000003596feb5): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000003596feb5): calling ktype release
> kobject: 'queues' (000000003596feb5): kset_release
> kobject: 'queues': free name
> kobject: 'sit0' (000000008276eda5): kobject_uevent_env
> kobject: 'sit0' (000000008276eda5): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000004d3b044b): kobject_cleanup, parent 000000006b53a9a0
> kobject: 'rx-0' (000000004d3b044b): auto cleanup 'remove' event
> kobject: 'rx-0' (000000004d3b044b): kobject_uevent_env
> kobject: 'rx-0' (000000004d3b044b): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000004d3b044b): auto cleanup kobject_del
> kobject: 'rx-0' (000000004d3b044b): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000273da9ae): kobject_cleanup, parent 000000006b53a9a0
> kobject: 'tx-0' (00000000273da9ae): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000273da9ae): kobject_uevent_env
> kobject: 'tx-0' (00000000273da9ae): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000273da9ae): auto cleanup kobject_del
> kobject: 'tx-0' (00000000273da9ae): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000006b53a9a0): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000006b53a9a0): calling ktype release
> kobject: 'queues' (000000006b53a9a0): kset_release
> kobject: 'queues': free name
> kobject: 'sit0' (000000005ed040cc): kobject_uevent_env
> kobject: 'sit0' (000000005ed040cc): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000f150476e): kobject_cleanup, parent 00000000a0cff6dd
> kobject: 'rx-0' (00000000f150476e): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000f150476e): kobject_uevent_env
> kobject: 'rx-0' (00000000f150476e): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000f150476e): auto cleanup kobject_del
> kobject: 'rx-0' (00000000f150476e): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000c81ff56b): kobject_cleanup, parent 00000000a0cff6dd
> kobject: 'tx-0' (00000000c81ff56b): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000c81ff56b): kobject_uevent_env
> kobject: 'tx-0' (00000000c81ff56b): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000c81ff56b): auto cleanup kobject_del
> kobject: 'tx-0' (00000000c81ff56b): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (00000000a0cff6dd): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (00000000a0cff6dd): calling ktype release
> kobject: 'queues' (00000000a0cff6dd): kset_release
> kobject: 'queues': free name
> kobject: 'sit0' (000000009ebda3df): kobject_uevent_env
> kobject: 'sit0' (000000009ebda3df): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'sit0' (00000000ba6470e9): kobject_cleanup, parent 000000009c061a32
> kobject: 'sit0' (00000000ba6470e9): calling ktype release
> kobject: 'sit0': free name
> kobject: 'sit0' (000000009f74c826): kobject_cleanup, parent 000000009c061a32
> kobject: 'sit0' (000000009f74c826): calling ktype release
> kobject: 'sit0': free name
> kobject: 'sit0' (0000000065e536c8): kobject_cleanup, parent 000000009c061a32
> kobject: 'sit0' (0000000065e536c8): calling ktype release
> kobject: 'sit0': free name
> kobject: 'sit0' (00000000b0b0bf77): kobject_cleanup, parent 000000009c061a32
> kobject: 'sit0' (00000000b0b0bf77): calling ktype release
> kobject: 'sit0': free name
> kobject: 'sit0' (00000000e3a2a337): kobject_cleanup, parent 000000009c061a32
> kobject: 'sit0' (00000000e3a2a337): calling ktype release
> kobject: 'sit0': free name
> kobject: 'sit0' (0000000058d12d0d): kobject_cleanup, parent 000000009c061a32
> kobject: 'sit0' (0000000058d12d0d): calling ktype release
> kobject: 'sit0': free name
> kobject: 'sit0' (000000008276eda5): kobject_cleanup, parent 000000009c061a32
> kobject: 'sit0' (000000008276eda5): calling ktype release
> kobject: 'sit0': free name
> kobject: 'sit0' (000000005ed040cc): kobject_cleanup, parent 000000009c061a32
> kobject: 'sit0' (000000005ed040cc): calling ktype release
> kobject: 'sit0': free name
> kobject: 'sit0' (000000009ebda3df): kobject_cleanup, parent 000000009c061a32
> kobject: 'sit0' (000000009ebda3df): calling ktype release
> kobject: 'sit0': free name
> kobject: 'rx-0' (00000000011781b4): kobject_cleanup, parent 0000000037662b61
> kobject: 'rx-0' (00000000011781b4): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000011781b4): kobject_uevent_env
> kobject: 'rx-0' (00000000011781b4): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000011781b4): auto cleanup kobject_del
> kobject: 'rx-0' (00000000011781b4): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (000000002bafd647): kobject_cleanup, parent 0000000037662b61
> kobject: 'tx-0' (000000002bafd647): auto cleanup 'remove' event
> kobject: 'tx-0' (000000002bafd647): kobject_uevent_env
> kobject: 'tx-0' (000000002bafd647): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (000000002bafd647): auto cleanup kobject_del
> kobject: 'tx-0' (000000002bafd647): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (0000000037662b61): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (0000000037662b61): calling ktype release
> kobject: 'queues' (0000000037662b61): kset_release
> kobject: 'queues': free name
> kobject: 'ip6_vti0' (000000000e5b1a5c): kobject_uevent_env
> kobject: 'ip6_vti0' (000000000e5b1a5c): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (0000000068311350): kobject_cleanup, parent 00000000facffc2f
> kobject: 'rx-0' (0000000068311350): auto cleanup 'remove' event
> kobject: 'rx-0' (0000000068311350): kobject_uevent_env
> kobject: 'rx-0' (0000000068311350): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (0000000068311350): auto cleanup kobject_del
> kobject: 'rx-0' (0000000068311350): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000d6e81326): kobject_cleanup, parent 00000000facffc2f
> kobject: 'tx-0' (00000000d6e81326): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000d6e81326): kobject_uevent_env
> kobject: 'tx-0' (00000000d6e81326): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000d6e81326): auto cleanup kobject_del
> kobject: 'tx-0' (00000000d6e81326): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (00000000facffc2f): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (00000000facffc2f): calling ktype release
> kobject: 'queues' (00000000facffc2f): kset_release
> kobject: 'queues': free name
> kobject: 'ip6_vti0' (0000000084bcfa3e): kobject_uevent_env
> kobject: 'ip6_vti0' (0000000084bcfa3e): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000ce1fbf9a): kobject_cleanup, parent 00000000faad76b9
> kobject: 'rx-0' (00000000ce1fbf9a): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000ce1fbf9a): kobject_uevent_env
> kobject: 'rx-0' (00000000ce1fbf9a): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000ce1fbf9a): auto cleanup kobject_del
> kobject: 'rx-0' (00000000ce1fbf9a): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (0000000054a9318d): kobject_cleanup, parent 00000000faad76b9
> kobject: 'tx-0' (0000000054a9318d): auto cleanup 'remove' event
> kobject: 'tx-0' (0000000054a9318d): kobject_uevent_env
> kobject: 'tx-0' (0000000054a9318d): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (0000000054a9318d): auto cleanup kobject_del
> kobject: 'tx-0' (0000000054a9318d): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (00000000faad76b9): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (00000000faad76b9): calling ktype release
> kobject: 'queues' (00000000faad76b9): kset_release
> kobject: 'queues': free name
> kobject: 'ip6_vti0' (00000000a17dcb7a): kobject_uevent_env
> kobject: 'ip6_vti0' (00000000a17dcb7a): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000e1ec0489): kobject_cleanup, parent 0000000032133323
> kobject: 'rx-0' (00000000e1ec0489): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000e1ec0489): kobject_uevent_env
> kobject: 'rx-0' (00000000e1ec0489): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000e1ec0489): auto cleanup kobject_del
> kobject: 'rx-0' (00000000e1ec0489): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000c69707b0): kobject_cleanup, parent 0000000032133323
> kobject: 'tx-0' (00000000c69707b0): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000c69707b0): kobject_uevent_env
> kobject: 'tx-0' (00000000c69707b0): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000c69707b0): auto cleanup kobject_del
> kobject: 'tx-0' (00000000c69707b0): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (0000000032133323): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (0000000032133323): calling ktype release
> kobject: 'queues' (0000000032133323): kset_release
> kobject: 'queues': free name
> kobject: 'ip6_vti0' (00000000f1a1ebea): kobject_uevent_env
> kobject: 'ip6_vti0' (00000000f1a1ebea): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000310059d9): kobject_cleanup, parent 000000002f7c701e
> kobject: 'rx-0' (00000000310059d9): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000310059d9): kobject_uevent_env
> kobject: 'rx-0' (00000000310059d9): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000310059d9): auto cleanup kobject_del
> kobject: 'rx-0' (00000000310059d9): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000463fbeb0): kobject_cleanup, parent 000000002f7c701e
> kobject: 'tx-0' (00000000463fbeb0): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000463fbeb0): kobject_uevent_env
> kobject: 'tx-0' (00000000463fbeb0): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000463fbeb0): auto cleanup kobject_del
> kobject: 'tx-0' (00000000463fbeb0): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000002f7c701e): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000002f7c701e): calling ktype release
> kobject: 'queues' (000000002f7c701e): kset_release
> kobject: 'queues': free name
> kobject: 'ip6_vti0' (00000000e99a1c16): kobject_uevent_env
> kobject: 'ip6_vti0' (00000000e99a1c16): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000fc3878f1): kobject_cleanup, parent 0000000039005ce6
> kobject: 'rx-0' (00000000fc3878f1): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000fc3878f1): kobject_uevent_env
> kobject: 'rx-0' (00000000fc3878f1): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000fc3878f1): auto cleanup kobject_del
> kobject: 'rx-0' (00000000fc3878f1): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (000000003da8a217): kobject_cleanup, parent 0000000039005ce6
> kobject: 'tx-0' (000000003da8a217): auto cleanup 'remove' event
> kobject: 'tx-0' (000000003da8a217): kobject_uevent_env
> kobject: 'tx-0' (000000003da8a217): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (000000003da8a217): auto cleanup kobject_del
> kobject: 'tx-0' (000000003da8a217): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (0000000039005ce6): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (0000000039005ce6): calling ktype release
> kobject: 'queues' (0000000039005ce6): kset_release
> kobject: 'queues': free name
> kobject: 'ip6_vti0' (000000003f213163): kobject_uevent_env
> kobject: 'ip6_vti0' (000000003f213163): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (0000000066dc1b5f): kobject_cleanup, parent 00000000e169d802
> kobject: 'rx-0' (0000000066dc1b5f): auto cleanup 'remove' event
> kobject: 'rx-0' (0000000066dc1b5f): kobject_uevent_env
> kobject: 'rx-0' (0000000066dc1b5f): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (0000000066dc1b5f): auto cleanup kobject_del
> kobject: 'rx-0' (0000000066dc1b5f): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000b99448c7): kobject_cleanup, parent 00000000e169d802
> kobject: 'tx-0' (00000000b99448c7): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000b99448c7): kobject_uevent_env
> kobject: 'tx-0' (00000000b99448c7): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000b99448c7): auto cleanup kobject_del
> kobject: 'tx-0' (00000000b99448c7): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (00000000e169d802): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (00000000e169d802): calling ktype release
> kobject: 'queues' (00000000e169d802): kset_release
> kobject: 'queues': free name
> kobject: 'ip6_vti0' (000000003422603c): kobject_uevent_env
> kobject: 'ip6_vti0' (000000003422603c): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000b6464399): kobject_cleanup, parent 00000000785ed365
> kobject: 'rx-0' (00000000b6464399): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000b6464399): kobject_uevent_env
> kobject: 'rx-0' (00000000b6464399): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000b6464399): auto cleanup kobject_del
> kobject: 'rx-0' (00000000b6464399): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000c2beb7d2): kobject_cleanup, parent 00000000785ed365
> kobject: 'tx-0' (00000000c2beb7d2): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000c2beb7d2): kobject_uevent_env
> kobject: 'tx-0' (00000000c2beb7d2): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000c2beb7d2): auto cleanup kobject_del
> kobject: 'tx-0' (00000000c2beb7d2): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (00000000785ed365): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (00000000785ed365): calling ktype release
> kobject: 'queues' (00000000785ed365): kset_release
> kobject: 'queues': free name
> kobject: 'ip6_vti0' (0000000031ab464d): kobject_uevent_env
> kobject: 'ip6_vti0' (0000000031ab464d): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000a7d5a6f7): kobject_cleanup, parent 00000000ed628333
> kobject: 'rx-0' (00000000a7d5a6f7): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000a7d5a6f7): kobject_uevent_env
> kobject: 'rx-0' (00000000a7d5a6f7): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000a7d5a6f7): auto cleanup kobject_del
> kobject: 'rx-0' (00000000a7d5a6f7): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000564c497f): kobject_cleanup, parent 00000000ed628333
> kobject: 'tx-0' (00000000564c497f): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000564c497f): kobject_uevent_env
> kobject: 'tx-0' (00000000564c497f): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000564c497f): auto cleanup kobject_del
> kobject: 'tx-0' (00000000564c497f): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (00000000ed628333): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (00000000ed628333): calling ktype release
> kobject: 'queues' (00000000ed628333): kset_release
> kobject: 'queues': free name
> kobject: 'ip6_vti0' (00000000fb053a2a): kobject_uevent_env
> kobject: 'ip6_vti0' (00000000fb053a2a): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'ip6_vti0' (000000000e5b1a5c): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6_vti0' (000000000e5b1a5c): calling ktype release
> kobject: 'ip6_vti0': free name
> kobject: 'ip6_vti0' (0000000084bcfa3e): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6_vti0' (0000000084bcfa3e): calling ktype release
> kobject: 'ip6_vti0': free name
> kobject: 'ip6_vti0' (00000000a17dcb7a): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6_vti0' (00000000a17dcb7a): calling ktype release
> kobject: 'ip6_vti0': free name
> kobject: 'ip6_vti0' (00000000f1a1ebea): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6_vti0' (00000000f1a1ebea): calling ktype release
> kobject: 'ip6_vti0': free name
> kobject: 'ip6_vti0' (00000000e99a1c16): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6_vti0' (00000000e99a1c16): calling ktype release
> kobject: 'ip6_vti0': free name
> kobject: 'ip6_vti0' (000000003f213163): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6_vti0' (000000003f213163): calling ktype release
> kobject: 'ip6_vti0': free name
> kobject: 'ip6_vti0' (000000003422603c): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6_vti0' (000000003422603c): calling ktype release
> kobject: 'ip6_vti0': free name
> kobject: 'ip6_vti0' (0000000031ab464d): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6_vti0' (0000000031ab464d): calling ktype release
> kobject: 'ip6_vti0': free name
> kobject: 'ip6_vti0' (00000000fb053a2a): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'ip6_vti0' (00000000fb053a2a): calling ktype release
> kobject: 'ip6_vti0': free name
> kobject: 'rx-0' (00000000c827514b): kobject_cleanup, parent 000000004e70d3ea
> kobject: 'rx-0' (00000000c827514b): auto cleanup 'remove' event
> kobject: 'rx-0' (00000000c827514b): kobject_uevent_env
> kobject: 'rx-0' (00000000c827514b): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (00000000c827514b): auto cleanup kobject_del
> kobject: 'rx-0' (00000000c827514b): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (00000000e9330ec4): kobject_cleanup, parent 000000004e70d3ea
> kobject: 'tx-0' (00000000e9330ec4): auto cleanup 'remove' event
> kobject: 'tx-0' (00000000e9330ec4): kobject_uevent_env
> kobject: 'tx-0' (00000000e9330ec4): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (00000000e9330ec4): auto cleanup kobject_del
> kobject: 'tx-0' (00000000e9330ec4): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (000000004e70d3ea): kobject_cleanup, parent
> 000000009c061a32
> kobject: 'queues' (000000004e70d3ea): calling ktype release
> kobject: 'queues' (000000004e70d3ea): kset_release
> kobject: 'queues': free name
> kobject: 'ip_vti0' (000000004ee7ad23): kobject_uevent_env
> kobject: 'ip_vti0' (000000004ee7ad23): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000004dda38d8): kobject_cleanup, parent 00000000025cb3fe
> kobject: 'rx-0' (000000004dda38d8): auto cleanup 'remove' event
> kobject: 'rx-0' (000000004dda38d8): kobject_uevent_env
> kobject: 'rx-0' (000000004dda38d8): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'rx-0' (000000004dda38d8): auto cleanup kobject_del
> kobject: 'rx-0' (000000004dda38d8): calling ktype release
> kobject: 'rx-0': free name
> kobject: 'tx-0' (0000000097fba38d): kobject_cleanup, parent 00000000025cb3fe
> kobject: 'tx-0' (0000000097fba38d): auto cleanup 'remove' event
> kobject: 'tx-0' (0000000097fba38d): kobject_uevent_env
> kobject: 'tx-0' (0000000097fba38d): kobject_uevent_env: uevent_suppress
> caused the event to drop!
> kobject: 'tx-0' (0000000097fba38d): auto cleanup kobject_del
> kobject: 'tx-0' (0000000097fba38d): calling ktype release
> kobject: 'tx-0': free name
> kobject: 'queues' (00000000025cb3fe): kobject_cleanup, parent
> 000000009c061a32
> 
> 
> ---
> This bug is generated by a bot. It may contain errors.
> See https://goo.gl/tpsmEJ for more information about syzbot.
> syzbot engineers can be reached at syzkaller@googlegroups.com.
> 
> syzbot will keep track of this bug report. See:
> https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
> 
> -- 
> You received this message because you are subscribed to the Google Groups "syzkaller-bugs" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to syzkaller-bugs+unsubscribe@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/syzkaller-bugs/00000000000071c72c0590776357%40google.com.

Looks to be:

#syz dup: BUG: MAX_STACK_TRACE_ENTRIES too low! (2)

Original thread: https://lkml.kernel.org/lkml/0000000000005ff8b20585395280@google.com/T/#u

The caller isn't really meaningful for "MAX_STACK_TRACE_ENTRIES too low" bugs,
so I think
https://github.com/google/syzkaller/pull/1332/commits/ccbd11f30158d198e84953b1bb5eaa33464d9311
should be reverted...

- Eric

^ permalink raw reply

* Re: [PATCH v3] tun: fix use-after-free when register netdev failed
From: Jason Wang @ 2019-08-22  2:13 UTC (permalink / raw)
  To: David Miller, yangyingliang
  Cc: netdev, eric.dumazet, xiyou.wangcong, weiyongjun1
In-Reply-To: <ceeafaf2-6aa4-b815-0b5f-ecc663216f43@redhat.com>


On 2019/8/20 上午10:28, Jason Wang wrote:
>
> On 2019/8/20 上午9:25, David Miller wrote:
>> From: Yang Yingliang <yangyingliang@huawei.com>
>> Date: Mon, 19 Aug 2019 21:31:19 +0800
>>
>>> Call tun_attach() after register_netdevice() to make sure tfile->tun
>>> is not published until the netdevice is registered. So the read/write
>>> thread can not use the tun pointer that may freed by free_netdev().
>>> (The tun and dev pointer are allocated by alloc_netdev_mqs(), they can
>>> be freed by netdev_freemem().)
>> register_netdevice() must always be the last operation in the order of
>> network device setup.
>>
>> At the point register_netdevice() is called, the device is visible 
>> globally
>> and therefore all of it's software state must be fully initialized and
>> ready for us.
>>
>> You're going to have to find another solution to these problems.
>
>
> The device is loosely coupled with sockets/queues. Each side is 
> allowed to be go away without caring the other side. So in this case, 
> there's a small window that network stack think the device has one 
> queue but actually not, the code can then safely drop them. Maybe it's 
> ok here with some comments?
>
> Or if not, we can try to hold the device before tun_attach and drop it 
> after register_netdevice().


Hi Yang:

I think maybe we can try to hold refcnt instead of playing real num 
queues here. Do you want to post a V4?

Thanks


>
> Thanks
>

^ permalink raw reply

* RE: [PATCH v2 net-next] net: fec: add C45 MDIO read/write support
From: Andy Duan @ 2019-08-22  1:29 UTC (permalink / raw)
  To: Marco Hartmann, davem@davemloft.net, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, Christian Herber
In-Reply-To: <1566387814-7034-1-git-send-email-marco.hartmann@nxp.com>

From: Marco Hartman Sent: Wednesday, August 21, 2019 7:44 PM
> IEEE 802.3ae clause 45 defines a modified MDIO protocol that uses a two
> staged access model in order to increase the address space.
> 
> This patch adds support for C45 MDIO read and write accesses, which are
> used whenever the MII_ADDR_C45 flag in the regnum argument is set.
> In case it is not set, C22 accesses are used as before.
> 
> Signed-off-by: Marco Hartmann <marco.hartmann@nxp.com>

Acked-by: Fugang Duan <fugang.duan@nxp.com>
> ---
> Changes in v2:
> - use bool variable is_c45
> - add missing goto statements
> ---
> ---
>  drivers/net/ethernet/freescale/fec_main.c | 70
> ++++++++++++++++++++++++++++---
>  1 file changed, 64 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/ethernet/freescale/fec_main.c
> b/drivers/net/ethernet/freescale/fec_main.c
> index c01d3ec3e9af..cb3ce27fb27a 100644
> --- a/drivers/net/ethernet/freescale/fec_main.c
> +++ b/drivers/net/ethernet/freescale/fec_main.c
> @@ -208,8 +208,11 @@ MODULE_PARM_DESC(macaddr, "FEC Ethernet
> MAC address");
> 
>  /* FEC MII MMFR bits definition */
>  #define FEC_MMFR_ST		(1 << 30)
> +#define FEC_MMFR_ST_C45		(0)
>  #define FEC_MMFR_OP_READ	(2 << 28)
> +#define FEC_MMFR_OP_READ_C45	(3 << 28)
>  #define FEC_MMFR_OP_WRITE	(1 << 28)
> +#define FEC_MMFR_OP_ADDR_WRITE	(0)
>  #define FEC_MMFR_PA(v)		((v & 0x1f) << 23)
>  #define FEC_MMFR_RA(v)		((v & 0x1f) << 18)
>  #define FEC_MMFR_TA		(2 << 16)
> @@ -1767,7 +1770,8 @@ static int fec_enet_mdio_read(struct mii_bus *bus,
> int mii_id, int regnum)
>  	struct fec_enet_private *fep = bus->priv;
>  	struct device *dev = &fep->pdev->dev;
>  	unsigned long time_left;
> -	int ret = 0;
> +	int ret = 0, frame_start, frame_addr, frame_op;
> +	bool is_c45 = !!(regnum & MII_ADDR_C45);
> 
>  	ret = pm_runtime_get_sync(dev);
>  	if (ret < 0)
> @@ -1775,9 +1779,37 @@ static int fec_enet_mdio_read(struct mii_bus
> *bus, int mii_id, int regnum)
> 
>  	reinit_completion(&fep->mdio_done);
> 
> +	if (is_c45) {
> +		frame_start = FEC_MMFR_ST_C45;
> +
> +		/* write address */
> +		frame_addr = (regnum >> 16);
> +		writel(frame_start | FEC_MMFR_OP_ADDR_WRITE |
> +		       FEC_MMFR_PA(mii_id) | FEC_MMFR_RA(frame_addr) |
> +		       FEC_MMFR_TA | (regnum & 0xFFFF),
> +		       fep->hwp + FEC_MII_DATA);
> +
> +		/* wait for end of transfer */
> +		time_left = wait_for_completion_timeout(&fep->mdio_done,
> +				usecs_to_jiffies(FEC_MII_TIMEOUT));
> +		if (time_left == 0) {
> +			netdev_err(fep->netdev, "MDIO address write timeout\n");
> +			ret = -ETIMEDOUT;
> +			goto out;
> +		}
> +
> +		frame_op = FEC_MMFR_OP_READ_C45;
> +
> +	} else {
> +		/* C22 read */
> +		frame_op = FEC_MMFR_OP_READ;
> +		frame_start = FEC_MMFR_ST;
> +		frame_addr = regnum;
> +	}
> +
>  	/* start a read op */
> -	writel(FEC_MMFR_ST | FEC_MMFR_OP_READ |
> -		FEC_MMFR_PA(mii_id) | FEC_MMFR_RA(regnum) |
> +	writel(frame_start | frame_op |
> +		FEC_MMFR_PA(mii_id) | FEC_MMFR_RA(frame_addr) |
>  		FEC_MMFR_TA, fep->hwp + FEC_MII_DATA);
> 
>  	/* wait for end of transfer */
> @@ -1804,7 +1836,8 @@ static int fec_enet_mdio_write(struct mii_bus *bus,
> int mii_id, int regnum,
>  	struct fec_enet_private *fep = bus->priv;
>  	struct device *dev = &fep->pdev->dev;
>  	unsigned long time_left;
> -	int ret;
> +	int ret, frame_start, frame_addr;
> +	bool is_c45 = !!(regnum & MII_ADDR_C45);
> 
>  	ret = pm_runtime_get_sync(dev);
>  	if (ret < 0)
> @@ -1814,9 +1847,33 @@ static int fec_enet_mdio_write(struct mii_bus
> *bus, int mii_id, int regnum,
> 
>  	reinit_completion(&fep->mdio_done);
> 
> +	if (is_c45) {
> +		frame_start = FEC_MMFR_ST_C45;
> +
> +		/* write address */
> +		frame_addr = (regnum >> 16);
> +		writel(frame_start | FEC_MMFR_OP_ADDR_WRITE |
> +		       FEC_MMFR_PA(mii_id) | FEC_MMFR_RA(frame_addr) |
> +		       FEC_MMFR_TA | (regnum & 0xFFFF),
> +		       fep->hwp + FEC_MII_DATA);
> +
> +		/* wait for end of transfer */
> +		time_left = wait_for_completion_timeout(&fep->mdio_done,
> +			usecs_to_jiffies(FEC_MII_TIMEOUT));
> +		if (time_left == 0) {
> +			netdev_err(fep->netdev, "MDIO address write timeout\n");
> +			ret = -ETIMEDOUT;
> +			goto out;
> +		}
> +	} else {
> +		/* C22 write */
> +		frame_start = FEC_MMFR_ST;
> +		frame_addr = regnum;
> +	}
> +
>  	/* start a write op */
> -	writel(FEC_MMFR_ST | FEC_MMFR_OP_WRITE |
> -		FEC_MMFR_PA(mii_id) | FEC_MMFR_RA(regnum) |
> +	writel(frame_start | FEC_MMFR_OP_WRITE |
> +		FEC_MMFR_PA(mii_id) | FEC_MMFR_RA(frame_addr) |
>  		FEC_MMFR_TA | FEC_MMFR_DATA(value),
>  		fep->hwp + FEC_MII_DATA);
> 
> @@ -1828,6 +1885,7 @@ static int fec_enet_mdio_write(struct mii_bus *bus,
> int mii_id, int regnum,
>  		ret  = -ETIMEDOUT;
>  	}
> 
> +out:
>  	pm_runtime_mark_last_busy(dev);
>  	pm_runtime_put_autosuspend(dev);
> 
> --
> 2.7.4


^ permalink raw reply

* [PATCH net] openvswitch: Fix log message in ovs conntrack
From: Yi-Hung Wei @ 2019-08-22  0:16 UTC (permalink / raw)
  To: netdev, pshelar; +Cc: Yi-Hung Wei

Fixes: 06bd2bdf19d2 ("openvswitch: Add timeout support to ct action")
Signed-off-by: Yi-Hung Wei <yihung.wei@gmail.com>
---
 net/openvswitch/conntrack.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c
index 45498fcf540d..0d5ab4957ec0 100644
--- a/net/openvswitch/conntrack.c
+++ b/net/openvswitch/conntrack.c
@@ -1574,7 +1574,7 @@ static int parse_ct(const struct nlattr *attr, struct ovs_conntrack_info *info,
 		case OVS_CT_ATTR_TIMEOUT:
 			memcpy(info->timeout, nla_data(a), nla_len(a));
 			if (!memchr(info->timeout, '\0', nla_len(a))) {
-				OVS_NLERR(log, "Invalid conntrack helper");
+				OVS_NLERR(log, "Invalid conntrack timeout");
 				return -EINVAL;
 			}
 			break;
-- 
2.7.4


^ permalink raw reply related

* [PATCH net] openvswitch: Fix conntrack cache with timeout
From: Yi-Hung Wei @ 2019-08-22  0:14 UTC (permalink / raw)
  To: netdev, pshelar; +Cc: Yi-Hung Wei

This patch addresses a conntrack cache issue with timeout policy.
Currently, we do not check if the timeout extension is set properly in the
cached conntrack entry.  Thus, after packet recirculate from conntrack
action, the timeout policy is not applied properly.  This patch fixes the
aforementioned issue.

Fixes: 06bd2bdf19d2 ("openvswitch: Add timeout support to ct action")
Signed-off-by: Yi-Hung Wei <yihung.wei@gmail.com>
---
 net/openvswitch/conntrack.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c
index 848c6eb55064..45498fcf540d 100644
--- a/net/openvswitch/conntrack.c
+++ b/net/openvswitch/conntrack.c
@@ -67,6 +67,7 @@ struct ovs_conntrack_info {
 	struct md_mark mark;
 	struct md_labels labels;
 	char timeout[CTNL_TIMEOUT_NAME_MAX];
+	struct nf_ct_timeout *nf_ct_timeout;
 #if IS_ENABLED(CONFIG_NF_NAT)
 	struct nf_nat_range2 range;  /* Only present for SRC NAT and DST NAT. */
 #endif
@@ -697,6 +698,14 @@ static bool skb_nfct_cached(struct net *net,
 		if (help && rcu_access_pointer(help->helper) != info->helper)
 			return false;
 	}
+	if (info->nf_ct_timeout) {
+		struct nf_conn_timeout *timeout_ext;
+
+		timeout_ext = nf_ct_timeout_find(ct);
+		if (!timeout_ext ||
+		    info->nf_ct_timeout != timeout_ext->timeout)
+			return false;
+	}
 	/* Force conntrack entry direction to the current packet? */
 	if (info->force && CTINFO2DIR(ctinfo) != IP_CT_DIR_ORIGINAL) {
 		/* Delete the conntrack entry if confirmed, else just release
@@ -1657,6 +1666,10 @@ int ovs_ct_copy_action(struct net *net, const struct nlattr *attr,
 				      ct_info.timeout))
 			pr_info_ratelimited("Failed to associated timeout "
 					    "policy `%s'\n", ct_info.timeout);
+		else
+			ct_info.nf_ct_timeout =
+				nf_ct_timeout_find(ct_info.ct)->timeout;
+
 	}
 
 	if (helper) {
-- 
2.7.4


^ permalink raw reply related

* [PATCH net] net: dsa: bcm_sf2: Do not configure PHYLINK on CPU port
From: Florian Fainelli @ 2019-08-22  0:07 UTC (permalink / raw)
  To: netdev
  Cc: Florian Fainelli, Andrew Lunn, Vivien Didelot, David S. Miller,
	open list

The SF2 binding does not specify that the CPU port should have
properties mandatory for successfully instantiating a PHYLINK object. As
such, there will be missing properties (including fixed-link) and when
attempting to validate and later configure link modes, we will have an
incorrect set of parameters (interface, speed, duplex).

Simply prevent the CPU port from being configured through PHYLINK since
bcm_sf2_imp_setup() takes care of that already.

Fixes: 0e27921816ad ("net: dsa: Use PHYLINK for the CPU/DSA ports")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 drivers/net/dsa/bcm_sf2.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/net/dsa/bcm_sf2.c b/drivers/net/dsa/bcm_sf2.c
index 3811fdbda13e..28c963a21dac 100644
--- a/drivers/net/dsa/bcm_sf2.c
+++ b/drivers/net/dsa/bcm_sf2.c
@@ -478,6 +478,7 @@ static void bcm_sf2_sw_validate(struct dsa_switch *ds, int port,
 				unsigned long *supported,
 				struct phylink_link_state *state)
 {
+	struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
 	__ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
 
 	if (!phy_interface_mode_is_rgmii(state->interface) &&
@@ -487,8 +488,10 @@ static void bcm_sf2_sw_validate(struct dsa_switch *ds, int port,
 	    state->interface != PHY_INTERFACE_MODE_INTERNAL &&
 	    state->interface != PHY_INTERFACE_MODE_MOCA) {
 		bitmap_zero(supported, __ETHTOOL_LINK_MODE_MASK_NBITS);
-		dev_err(ds->dev,
-			"Unsupported interface: %d\n", state->interface);
+		if (port != core_readl(priv, CORE_IMP0_PRT_ID))
+			dev_err(ds->dev,
+				"Unsupported interface: %d for port %d\n",
+				state->interface, port);
 		return;
 	}
 
@@ -526,6 +529,9 @@ static void bcm_sf2_sw_mac_config(struct dsa_switch *ds, int port,
 	u32 id_mode_dis = 0, port_mode;
 	u32 reg, offset;
 
+	if (port == core_readl(priv, CORE_IMP0_PRT_ID))
+		return;
+
 	if (priv->type == BCM7445_DEVICE_ID)
 		offset = CORE_STS_OVERRIDE_GMIIP_PORT(port);
 	else
-- 
2.17.1


^ permalink raw reply related

* Re: [RFC 1/4] Add usb_get_address and usb_set_address support
From: Charles.Hyde @ 2019-08-21 23:45 UTC (permalink / raw)
  To: andrew
  Cc: linux-usb, linux-acpi, gregkh, Mario.Limonciello, oliver, netdev,
	nic_swsd
In-Reply-To: <20190821012258.GB4285@lunn.ch>

>> The core USB driver message.c is missing get/set address functionality
>> that stops ifconfig from being able to push MAC addresses out to USB
>> based ethernet devices.  Without this functionality, some USB devices
>> stop responding to ethernet packets when using ifconfig to change MAC
>> addresses.
>
> Hi Charles
>
> ifconfig has been deprecated for years, maybe a decade. Please
> reference the current tools, iproute2.
>
>           Andrew


Thank you.  I would, but that is not available on the system under test, while ifconfig is.

Charles Hyde

^ permalink raw reply

* [PATCH bpf-next v3 4/4] selftests/bpf: test_progs: remove unused ret
From: Stanislav Fomichev @ 2019-08-21 23:44 UTC (permalink / raw)
  To: netdev, bpf; +Cc: davem, ast, daniel, Stanislav Fomichev
In-Reply-To: <20190821234427.179886-1-sdf@google.com>

send_signal test returns static codes from the subtests which
nobody looks at, let's rely on the CHECK macros instead.

Signed-off-by: Stanislav Fomichev <sdf@google.com>
---
 .../selftests/bpf/prog_tests/send_signal.c    | 42 +++++++++----------
 1 file changed, 19 insertions(+), 23 deletions(-)

diff --git a/tools/testing/selftests/bpf/prog_tests/send_signal.c b/tools/testing/selftests/bpf/prog_tests/send_signal.c
index 40c2c5efdd3e..b607112c64e7 100644
--- a/tools/testing/selftests/bpf/prog_tests/send_signal.c
+++ b/tools/testing/selftests/bpf/prog_tests/send_signal.c
@@ -8,7 +8,7 @@ static void sigusr1_handler(int signum)
 	sigusr1_received++;
 }
 
-static int test_send_signal_common(struct perf_event_attr *attr,
+static void test_send_signal_common(struct perf_event_attr *attr,
 				    int prog_type,
 				    const char *test_name)
 {
@@ -23,13 +23,13 @@ static int test_send_signal_common(struct perf_event_attr *attr,
 
 	if (CHECK(pipe(pipe_c2p), test_name,
 		  "pipe pipe_c2p error: %s\n", strerror(errno)))
-		goto no_fork_done;
+		return;
 
 	if (CHECK(pipe(pipe_p2c), test_name,
 		  "pipe pipe_p2c error: %s\n", strerror(errno))) {
 		close(pipe_c2p[0]);
 		close(pipe_c2p[1]);
-		goto no_fork_done;
+		return;
 	}
 
 	pid = fork();
@@ -38,7 +38,7 @@ static int test_send_signal_common(struct perf_event_attr *attr,
 		close(pipe_c2p[1]);
 		close(pipe_p2c[0]);
 		close(pipe_p2c[1]);
-		goto no_fork_done;
+		return;
 	}
 
 	if (pid == 0) {
@@ -125,7 +125,7 @@ static int test_send_signal_common(struct perf_event_attr *attr,
 		goto disable_pmu;
 	}
 
-	err = CHECK(buf[0] != '2', test_name, "incorrect result\n");
+	CHECK(buf[0] != '2', test_name, "incorrect result\n");
 
 	/* notify child safe to exit */
 	write(pipe_p2c[1], buf, 1);
@@ -138,11 +138,9 @@ static int test_send_signal_common(struct perf_event_attr *attr,
 	close(pipe_c2p[0]);
 	close(pipe_p2c[1]);
 	wait(NULL);
-no_fork_done:
-	return err;
 }
 
-static int test_send_signal_tracepoint(void)
+static void test_send_signal_tracepoint(void)
 {
 	const char *id_path = "/sys/kernel/debug/tracing/events/syscalls/sys_enter_nanosleep/id";
 	struct perf_event_attr attr = {
@@ -159,21 +157,21 @@ static int test_send_signal_tracepoint(void)
 	if (CHECK(efd < 0, "tracepoint",
 		  "open syscalls/sys_enter_nanosleep/id failure: %s\n",
 		  strerror(errno)))
-		return -1;
+		return;
 
 	bytes = read(efd, buf, sizeof(buf));
 	close(efd);
 	if (CHECK(bytes <= 0 || bytes >= sizeof(buf), "tracepoint",
 		  "read syscalls/sys_enter_nanosleep/id failure: %s\n",
 		  strerror(errno)))
-		return -1;
+		return;
 
 	attr.config = strtol(buf, NULL, 0);
 
-	return test_send_signal_common(&attr, BPF_PROG_TYPE_TRACEPOINT, "tracepoint");
+	test_send_signal_common(&attr, BPF_PROG_TYPE_TRACEPOINT, "tracepoint");
 }
 
-static int test_send_signal_perf(void)
+static void test_send_signal_perf(void)
 {
 	struct perf_event_attr attr = {
 		.sample_period = 1,
@@ -181,11 +179,11 @@ static int test_send_signal_perf(void)
 		.config = PERF_COUNT_SW_CPU_CLOCK,
 	};
 
-	return test_send_signal_common(&attr, BPF_PROG_TYPE_PERF_EVENT,
-				       "perf_sw_event");
+	test_send_signal_common(&attr, BPF_PROG_TYPE_PERF_EVENT,
+				"perf_sw_event");
 }
 
-static int test_send_signal_nmi(void)
+static void test_send_signal_nmi(void)
 {
 	struct perf_event_attr attr = {
 		.sample_freq = 50,
@@ -205,25 +203,23 @@ static int test_send_signal_nmi(void)
 			printf("%s:SKIP:no PERF_COUNT_HW_CPU_CYCLES\n",
 			       __func__);
 			test__skip();
-			return 0;
+			return;
 		}
 		/* Let the test fail with a more informative message */
 	} else {
 		close(pmu_fd);
 	}
 
-	return test_send_signal_common(&attr, BPF_PROG_TYPE_PERF_EVENT,
-				       "perf_hw_event");
+	test_send_signal_common(&attr, BPF_PROG_TYPE_PERF_EVENT,
+				"perf_hw_event");
 }
 
 void test_send_signal(void)
 {
-	int ret = 0;
-
 	if (test__start_subtest("send_signal_tracepoint"))
-		ret |= test_send_signal_tracepoint();
+		test_send_signal_tracepoint();
 	if (test__start_subtest("send_signal_perf"))
-		ret |= test_send_signal_perf();
+		test_send_signal_perf();
 	if (test__start_subtest("send_signal_nmi"))
-		ret |= test_send_signal_nmi();
+		test_send_signal_nmi();
 }
-- 
2.23.0.187.g17f5b7556c-goog


^ permalink raw reply related

* [PATCH bpf-next v3 3/4] selftests/bpf: test_progs: remove asserts from subtests
From: Stanislav Fomichev @ 2019-08-21 23:44 UTC (permalink / raw)
  To: netdev, bpf; +Cc: davem, ast, daniel, Stanislav Fomichev, Andrii Nakryiko
In-Reply-To: <20190821234427.179886-1-sdf@google.com>

Otherwise they can bring the whole process down.

Cc: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Stanislav Fomichev <sdf@google.com>
---
 .../selftests/bpf/prog_tests/bpf_obj_id.c     | 19 ++++++++++-------
 .../selftests/bpf/prog_tests/map_lock.c       | 21 ++++++++++++-------
 .../selftests/bpf/prog_tests/spinlock.c       | 12 ++++++-----
 .../bpf/prog_tests/stacktrace_build_id.c      |  7 ++++---
 .../bpf/prog_tests/stacktrace_build_id_nmi.c  |  7 ++++---
 5 files changed, 40 insertions(+), 26 deletions(-)

diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c b/tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c
index 5dd6ca1255d0..f10029821e16 100644
--- a/tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c
+++ b/tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c
@@ -48,15 +48,17 @@ void test_bpf_obj_id(void)
 		/* test_obj_id.o is a dumb prog. It should never fail
 		 * to load.
 		 */
-		CHECK_FAIL(err);
-		assert(!err);
+		if (CHECK_FAIL(err))
+			continue;
 
 		/* Insert a magic value to the map */
 		map_fds[i] = bpf_find_map(__func__, objs[i], "test_map_id");
-		assert(map_fds[i] >= 0);
+		if (CHECK_FAIL(map_fds[i] < 0))
+			goto done;
 		err = bpf_map_update_elem(map_fds[i], &array_key,
 					  &array_magic_value, 0);
-		assert(!err);
+		if (CHECK_FAIL(err))
+			goto done;
 
 		/* Check getting map info */
 		info_len = sizeof(struct bpf_map_info) * 2;
@@ -95,9 +97,11 @@ void test_bpf_obj_id(void)
 		prog_infos[i].map_ids = ptr_to_u64(map_ids + i);
 		prog_infos[i].nr_map_ids = 2;
 		err = clock_gettime(CLOCK_REALTIME, &real_time_ts);
-		assert(!err);
+		if (CHECK_FAIL(err))
+			goto done;
 		err = clock_gettime(CLOCK_BOOTTIME, &boot_time_ts);
-		assert(!err);
+		if (CHECK_FAIL(err))
+			goto done;
 		err = bpf_obj_get_info_by_fd(prog_fds[i], &prog_infos[i],
 					     &info_len);
 		load_time = (real_time_ts.tv_sec - boot_time_ts.tv_sec)
@@ -223,7 +227,8 @@ void test_bpf_obj_id(void)
 		nr_id_found++;
 
 		err = bpf_map_lookup_elem(map_fd, &array_key, &array_value);
-		assert(!err);
+		if (CHECK_FAIL(err))
+			goto done;
 
 		err = bpf_obj_get_info_by_fd(map_fd, &map_info, &info_len);
 		CHECK(err || info_len != sizeof(struct bpf_map_info) ||
diff --git a/tools/testing/selftests/bpf/prog_tests/map_lock.c b/tools/testing/selftests/bpf/prog_tests/map_lock.c
index 15993b6a194b..8f91f1881d11 100644
--- a/tools/testing/selftests/bpf/prog_tests/map_lock.c
+++ b/tools/testing/selftests/bpf/prog_tests/map_lock.c
@@ -54,17 +54,22 @@ void test_map_lock(void)
 	bpf_map_update_elem(map_fd[0], &key, vars, BPF_F_LOCK);
 
 	for (i = 0; i < 4; i++)
-		assert(pthread_create(&thread_id[i], NULL,
-				      &spin_lock_thread, &prog_fd) == 0);
+		if (CHECK_FAIL(pthread_create(&thread_id[i], NULL,
+					      &spin_lock_thread, &prog_fd)))
+			goto close_prog;
 	for (i = 4; i < 6; i++)
-		assert(pthread_create(&thread_id[i], NULL,
-				      &parallel_map_access, &map_fd[i - 4]) == 0);
+		if (CHECK_FAIL(pthread_create(&thread_id[i], NULL,
+					      &parallel_map_access,
+					      &map_fd[i - 4])))
+			goto close_prog;
 	for (i = 0; i < 4; i++)
-		assert(pthread_join(thread_id[i], &ret) == 0 &&
-		       ret == (void *)&prog_fd);
+		if (CHECK_FAIL(pthread_join(thread_id[i], &ret) ||
+			       ret != (void *)&prog_fd))
+			goto close_prog;
 	for (i = 4; i < 6; i++)
-		assert(pthread_join(thread_id[i], &ret) == 0 &&
-		       ret == (void *)&map_fd[i - 4]);
+		if (CHECK_FAIL(pthread_join(thread_id[i], &ret) ||
+			       ret != (void *)&map_fd[i - 4]))
+			goto close_prog;
 close_prog:
 	bpf_object__close(obj);
 }
diff --git a/tools/testing/selftests/bpf/prog_tests/spinlock.c b/tools/testing/selftests/bpf/prog_tests/spinlock.c
index d71fb3dda376..1ae00cd3174e 100644
--- a/tools/testing/selftests/bpf/prog_tests/spinlock.c
+++ b/tools/testing/selftests/bpf/prog_tests/spinlock.c
@@ -16,12 +16,14 @@ void test_spinlock(void)
 		goto close_prog;
 	}
 	for (i = 0; i < 4; i++)
-		assert(pthread_create(&thread_id[i], NULL,
-				      &spin_lock_thread, &prog_fd) == 0);
-	for (i = 0; i < 4; i++)
-		assert(pthread_join(thread_id[i], &ret) == 0 &&
-		       ret == (void *)&prog_fd);
+		if (CHECK_FAIL(pthread_create(&thread_id[i], NULL,
+					      &spin_lock_thread, &prog_fd)))
+			goto close_prog;
 
+	for (i = 0; i < 4; i++)
+		if (CHECK_FAIL(pthread_join(thread_id[i], &ret) ||
+			       ret != (void *)&prog_fd))
+			goto close_prog;
 close_prog:
 	bpf_object__close(obj);
 }
diff --git a/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id.c b/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id.c
index ac44fda84833..d841dced971f 100644
--- a/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id.c
+++ b/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id.c
@@ -51,9 +51,10 @@ void test_stacktrace_build_id(void)
 		  "err %d errno %d\n", err, errno))
 		goto disable_pmu;
 
-	assert(system("dd if=/dev/urandom of=/dev/zero count=4 2> /dev/null")
-	       == 0);
-	assert(system("./urandom_read") == 0);
+	if (CHECK_FAIL(system("dd if=/dev/urandom of=/dev/zero count=4 2> /dev/null")))
+		goto disable_pmu;
+	if (CHECK_FAIL(system("./urandom_read")))
+		goto disable_pmu;
 	/* disable stack trace collection */
 	key = 0;
 	val = 1;
diff --git a/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id_nmi.c b/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id_nmi.c
index 9557b7dfb782..f62aa0eb959b 100644
--- a/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id_nmi.c
+++ b/tools/testing/selftests/bpf/prog_tests/stacktrace_build_id_nmi.c
@@ -82,9 +82,10 @@ void test_stacktrace_build_id_nmi(void)
 		  "err %d errno %d\n", err, errno))
 		goto disable_pmu;
 
-	assert(system("dd if=/dev/urandom of=/dev/zero count=4 2> /dev/null")
-	       == 0);
-	assert(system("taskset 0x1 ./urandom_read 100000") == 0);
+	if (CHECK_FAIL(system("dd if=/dev/urandom of=/dev/zero count=4 2> /dev/null")))
+		goto disable_pmu;
+	if (CHECK_FAIL(system("taskset 0x1 ./urandom_read 100000")))
+		goto disable_pmu;
 	/* disable stack trace collection */
 	key = 0;
 	val = 1;
-- 
2.23.0.187.g17f5b7556c-goog


^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox