From: Luis Chamberlain <mcgrof@kernel.org>
To: Christian Borntraeger <borntraeger@de.ibm.com>,
Jessica Yu <jeyu@kernel.org>,
Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Cc: ast@kernel.org, jarkko.sakkinen@linux.intel.com,
philipp.reisner@linbit.com, bfields@fieldses.org,
keyrings@vger.kernel.org, christian.brauner@ubuntu.com,
yangtiezhu@loongson.cn, linux-s390 <linux-s390@vger.kernel.org>,
bridge@lists.linux-foundation.org, jmorris@namei.org,
Christoph Hellwig <hch@infradead.org>,
kuba@kernel.org, serge@hallyn.com, keescook@chromium.org,
nikolay@cumulusnetworks.com, roopa@cumulusnetworks.com,
josh@joshtriplett.org, slyfox@gentoo.org,
viro@zeniv.linux.org.uk,
Andrew Morton <akpm@linux-foundation.org>,
axboe@kernel.dk, dhowells@redhat.com, linux-nfs@vger.kernel.org,
chainsaw@gentoo.org, ravenexp@gmail.com,
gregkh@linuxfoundation.org, markward@linux.ibm.com,
linux-kernel@vger.kernel.org,
linux-security-module@vger.kernel.org, chuck.lever@oracle.com,
"Eric W. Biederman" <ebiederm@xmission.com>,
netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org,
lars.ellenberg@linbit.com, davem@davemloft.net
Subject: Re: [Bridge] linux-next: umh: fix processed error when UMH_WAIT_PROC is used seems to break linux bridge on s390x (bisected)
Date: Wed, 01 Jul 2020 13:46:39 -0000 [thread overview]
Message-ID: <20200701134635.GR4332@42.do-not-panic.com> (raw)
In-Reply-To: <b24d8dae-1872-ba2c-acd4-ed46c0781317@de.ibm.com>
On Wed, Jul 01, 2020 at 12:08:11PM +0200, Christian Borntraeger wrote:
> dmesg attached
> [ 14.438482] virbr0: port 1(virbr0-nic) entered blocking state
> [ 14.438485] virbr0: port 1(virbr0-nic) entered disabled state
> [ 14.438635] device virbr0-nic entered promiscuous mode
> [ 14.439654] umh: sub_info->path: /sbin/bridge-stp
> [ 14.439656] /sbin/bridge-stp
> [ 14.439656] virbr0
> [ 14.439656] start
OK so what we seem to want to debug is the umh call for:
/sbin/bridge-stp virbr0 start
> [ 14.439734] == ret: 00
> [ 14.439735] == KWIFEXITED(ret): 01
> [ 14.439736] KWEXITSTATUS(ret): 0
Its not clear if this is the respective return value, but now
that we have a clue that this is the the only non-modprobe
call, we should have a clearer certainty that this is the
issue.
Indeed my patch "umh: fix processed error when UMH_WAIT_PROC is used"
did modify bridge-stp in the following way:
diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c
index ba55851fe132..bdd94b45396b 100644
--- a/net/bridge/br_stp_if.c
+++ b/net/bridge/br_stp_if.c
@@ -133,14 +133,8 @@ static int br_stp_call_user(struct net_bridge *br, char *arg)
/* call userspace STP and report program errors */
rc = call_usermodehelper(BR_STP_PROG, argv, envp, UMH_WAIT_PROC);
- if (rc > 0) {
- if (rc & 0xff)
- br_debug(br, BR_STP_PROG " received signal %d\n",
- rc & 0x7f);
- else
- br_debug(br, BR_STP_PROG " exited with code %d\n",
- (rc >> 8) & 0xff);
- }
+ if (rc != 0)
+ br_debug(br, BR_STP_PROG " failed with exit code %d\n", rc);
return rc;
}
If you look at this carefully though you'll notice that the change just
modifies *when* we issue the debug print. The more important relevant
part of the patch however was that we now do return a correct error
value when the call fails.
More importantly, depending on if an error or not we run the kernel STP
or userspace STP later:
static void br_stp_start(struct net_bridge *br)
{
int err = -ENOENT;
if (net_eq(dev_net(br->dev), &init_net))
err = br_stp_call_user(br, "start");
if (err && err != -ENOENT)
br_err(br, "failed to start userspace STP (%d)\n", err);
spin_lock_bh(&br->lock);
if (br->bridge_forward_delay < BR_MIN_FORWARD_DELAY)
__br_set_forward_delay(br, BR_MIN_FORWARD_DELAY);
else if (br->bridge_forward_delay > BR_MAX_FORWARD_DELAY)
__br_set_forward_delay(br, BR_MAX_FORWARD_DELAY);
---------------------> can you enable debug print for this to see what
---------------------> you end up using?
if (!err) {
br->stp_enabled = BR_USER_STP;
br_debug(br, "userspace STP started\n");
} else {
br->stp_enabled = BR_KERNEL_STP;
br_debug(br, "using kernel STP\n");
/* To start timers on any ports left in blocking */
if (br->dev->flags & IFF_UP)
mod_timer(&br->hello_timer, jiffies + br->hello_time);
br_port_state_selection(br);
}
----------------->
spin_unlock_bh(&br->lock);
}
next prev parent reply other threads:[~2020-07-01 13:46 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-10 15:49 [Bridge] [PATCH 0/5] kmod/umh: a few fixes Luis R. Rodriguez
2020-06-10 15:49 ` [Bridge] [PATCH 1/5] selftests: kmod: Use variable NAME in kmod_test_0001() Luis R. Rodriguez
2020-06-10 15:49 ` [Bridge] [PATCH 3/5] test_kmod: Avoid potential double free in trigger_config_run_type() Luis R. Rodriguez
2020-06-10 15:49 ` [Bridge] [PATCH 2/5] kmod: Remove redundant "be an" in the comment Luis R. Rodriguez
2020-06-10 15:49 ` [Bridge] [PATCH 4/5] umh: fix processed error when UMH_WAIT_PROC is used Luis R. Rodriguez
2020-06-23 14:12 ` [Bridge] linux-next: umh: fix processed error when UMH_WAIT_PROC is used seems to break linux bridge on s390x (bisected) Christian Borntraeger
2020-06-23 15:09 ` Christian Borntraeger
2020-06-24 11:12 ` Christian Borntraeger
2020-06-24 12:05 ` Luis Chamberlain
2020-06-24 13:17 ` Luis Chamberlain
2020-06-24 16:13 ` Luis Chamberlain
2020-06-24 14:43 ` Christoph Hellwig
2020-06-24 15:56 ` Christian Borntraeger
2020-06-24 16:09 ` Luis Chamberlain
2020-06-24 17:59 ` Christian Borntraeger
2020-06-24 18:10 ` Christian Borntraeger
2020-06-24 18:32 ` Christian Borntraeger
2020-06-24 18:38 ` Christian Borntraeger
2020-06-25 13:27 ` Christian Borntraeger
2020-06-26 2:54 ` Luis Chamberlain
2020-06-26 5:24 ` Christian Borntraeger
2020-06-26 9:00 ` Christoph Hellwig
2020-06-26 11:40 ` Luis Chamberlain
2020-06-26 11:50 ` Luis Chamberlain
2020-06-30 17:57 ` Luis Chamberlain
2020-07-01 10:08 ` Christian Borntraeger
2020-07-01 13:24 ` Tetsuo Handa
2020-07-01 13:53 ` Luis Chamberlain
2020-07-01 14:08 ` Tetsuo Handa
2020-07-01 15:39 ` Luis Chamberlain
2020-07-01 15:49 ` Christian Borntraeger
2020-07-01 15:58 ` Luis Chamberlain
2020-07-01 16:03 ` Christian Borntraeger
2020-07-02 4:26 ` Tetsuo Handa
2020-07-02 19:47 ` Luis Chamberlain
2020-07-03 0:52 ` Tetsuo Handa
2020-07-03 13:28 ` Luis Chamberlain
2020-07-01 15:27 ` Christian Borntraeger
2020-07-01 13:46 ` Luis Chamberlain [this message]
2020-06-10 15:49 ` [Bridge] [PATCH 5/5] selftests: simplify kmod failure value Luis R. Rodriguez
2020-06-18 0:43 ` [Bridge] [PATCH 0/5] kmod/umh: a few fixes Andrew Morton
2020-06-19 20:46 ` Luis Chamberlain
2020-06-19 21:07 ` Luis Chamberlain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200701134635.GR4332@42.do-not-panic.com \
--to=mcgrof@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=ast@kernel.org \
--cc=axboe@kernel.dk \
--cc=bfields@fieldses.org \
--cc=borntraeger@de.ibm.com \
--cc=bridge@lists.linux-foundation.org \
--cc=chainsaw@gentoo.org \
--cc=christian.brauner@ubuntu.com \
--cc=chuck.lever@oracle.com \
--cc=davem@davemloft.net \
--cc=dhowells@redhat.com \
--cc=ebiederm@xmission.com \
--cc=gregkh@linuxfoundation.org \
--cc=hch@infradead.org \
--cc=jarkko.sakkinen@linux.intel.com \
--cc=jeyu@kernel.org \
--cc=jmorris@namei.org \
--cc=josh@joshtriplett.org \
--cc=keescook@chromium.org \
--cc=keyrings@vger.kernel.org \
--cc=kuba@kernel.org \
--cc=lars.ellenberg@linbit.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=markward@linux.ibm.com \
--cc=netdev@vger.kernel.org \
--cc=nikolay@cumulusnetworks.com \
--cc=penguin-kernel@i-love.sakura.ne.jp \
--cc=philipp.reisner@linbit.com \
--cc=ravenexp@gmail.com \
--cc=roopa@cumulusnetworks.com \
--cc=serge@hallyn.com \
--cc=slyfox@gentoo.org \
--cc=viro@zeniv.linux.org.uk \
--cc=yangtiezhu@loongson.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox