From: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
To: "Michael S. Tsirkin" <mst@dev.mellanox.co.il>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
netdev@vger.kernel.org, general@lists.openfabrics.org,
Roland Dreier <rolandd@cisco.com>
Subject: Re: dst_ifdown breaks infiniband?
Date: Sun, 18 Mar 2007 22:12:38 +0300 [thread overview]
Message-ID: <20070318191238.GA20518@ms2.inr.ac.ru> (raw)
In-Reply-To: <20070318155532.GG7958@mellanox.co.il>
Hello!
> This is not new code, and should have triggered long time ago,
> so I am not sure how come we are triggering this only now,
> but somehow this did not lead to crashes in 2.6.20
I see. I guess this was plain luck.
> Why is neighbour->dev changed here?
It holds reference to device and prevents its destruction.
If dst is held somewhere, we cannot destroy the device and deadlock
while unregister.
We could not invalidate dst->neighbour but it looked safe to invalidate
neigh->dev after quiescent state. Obviosuly, it is not and it never was safe.
Was supposed to be repaired asap, but this did not happen. :-(
> Can dst->neighbour be changed to point to NULL instead, and the neighbour
> released?
It should be cleared and we should be sure it will not be destroyed
before quiescent state.
Seems, this is the only correct solution, but to do this we have
to audit all the places where dst->neighbour is dereferenced for
RCU safety.
Actually, it is very good you caught this eventually, the bug was
so _disgusting_ that it was "forgotten" all the time, waiting for
someone who will point out that the king is naked. :-)
Alexey
next prev parent reply other threads:[~2007-03-18 20:14 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-18 15:55 Michael S. Tsirkin
2007-03-18 19:12 ` Alexey Kuznetsov [this message]
2007-03-18 19:46 ` Michael S. Tsirkin
2007-03-18 19:55 ` Alexey Kuznetsov
2007-03-18 20:24 ` Michael S. Tsirkin
2007-03-18 19:53 ` Michael S. Tsirkin
2007-03-18 20:18 ` Alexey Kuznetsov
2007-03-18 20:29 ` Michael S. Tsirkin
2007-03-19 9:36 ` Michael S. Tsirkin
2007-03-19 9:55 ` Michael S. Tsirkin
2007-03-19 12:05 ` Alexey Kuznetsov
2007-03-19 12:12 ` Michael S. Tsirkin
2007-03-19 12:59 ` Alexey Kuznetsov
2007-03-19 15:13 ` Michael S. Tsirkin
2007-03-19 23:20 ` Alexey Kuznetsov
2007-03-20 16:02 ` Michael S. Tsirkin
2007-03-20 23:34 ` David Miller
2007-03-19 12:13 ` Michael S. Tsirkin
2007-03-18 20:25 ` Michael S. Tsirkin
2007-03-18 22:24 ` [ofa-general] " Eric W. Biederman
2007-03-18 22:36 ` Michael S. Tsirkin
2007-03-18 22:42 ` Michael S. Tsirkin
2007-03-19 0:13 ` David Miller
2007-03-19 5:19 ` Michael S. Tsirkin
2007-03-19 5:30 ` Eric W. Biederman
2007-03-19 6:13 ` David Miller
2007-03-19 9:34 ` Alexey Kuznetsov
2007-03-19 15:10 ` Eric W. Biederman
2007-03-19 9:24 ` Alexey Kuznetsov
2007-03-19 9:33 ` Michael S. Tsirkin
2007-03-19 9:20 ` Alexey Kuznetsov
2007-03-18 20:33 ` Michael S. Tsirkin
2007-03-18 21:06 ` Michael S. Tsirkin
2007-03-18 21:20 ` Michael S. Tsirkin
2007-03-19 5:15 ` Michael S. Tsirkin
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=20070318191238.GA20518@ms2.inr.ac.ru \
--to=kuznet@ms2.inr.ac.ru \
--cc=general@lists.openfabrics.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@dev.mellanox.co.il \
--cc=netdev@vger.kernel.org \
--cc=rolandd@cisco.com \
/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
all inboxes | Powered by JetHome®