From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: Andrew Lunn <andrew@lunn.ch>
Cc: Florian Fainelli <f.fainelli@gmail.com>,
David Miller <davem@davemloft.net>,
Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
devicetree@vger.kernel.org, Sunil Goutham <sgoutham@cavium.com>,
Robert Richter <rric@kernel.org>,
Frank Rowand <frowand.list@gmail.com>,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
Rob Herring <robh+dt@kernel.org>,
Michal Simek <michal.simek@xilinx.com>,
netdev@vger.kernel.org,
Soren Brinkmann <soren.brinkmann@xilinx.com>,
Iyappan Subramanian <isubramanian@apm.com>,
Grant Likely <grant.likely@linaro.org>,
Li Yang <leoli@freescale.com>, Keyur Chudgar <kchudgar@apm.com>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 0/9] Phy, mdiobus, and netdev struct device fixes
Date: Fri, 25 Sep 2015 00:33:03 +0100 [thread overview]
Message-ID: <20150924233303.GJ21513@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <20150924225033.GI20825@lunn.ch>
On Fri, Sep 25, 2015 at 12:50:33AM +0200, Andrew Lunn wrote:
> > Thanks for testing. Please could you confirm whether the same behaviour
> > is observed without the patches, just to make absolutely sure that isn't
> > a regression.
>
> So i tested this now.
>
> I have two FEC interfaces. One i my main access interface, and the
> second is used by DSA to access switches. With your patches, the
> module Used by count is equal to the number of interfaces which are
> up.
>
> Without your patches, the count is always 0.
That will be as a result of the MDIO bus module refcounting patch -
"phy: fix mdiobus module safety". The code prior to that patch was
totally useless and ineffectual - it might as well not even have
been present, because it would never have any effect. bus_module
would always be NULL in phy_attach_direct().
While my change makes the code start to work as originally intended,
it's still unsafe: there's nothing to stop you manually unbinding the
driver providing the MDIO bus from the struct device. The driver
will then free the resources it claimed in its probe function, which
may include the MMIO mapping for the MDIO bus accessor functions.
If the accessors are then called, despite keeping the mdio bus, phy,
etc data structures properly refcounted, the kernel will oops when
the (many) MDIO bus drivers hit the free'd MMIO mapping. This is,
unfortunately, just another pre-existing bug in this code.
To stop that, we need some way to say "this MDIO bus has been removed,
prevent further access" and that needs to be done in a race free way.
Right now, that doesn't exist.
--
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.
next prev parent reply other threads:[~2015-09-24 23:33 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-24 19:17 [PATCH v3 0/9] Phy, mdiobus, and netdev struct device fixes Russell King - ARM Linux
2015-09-24 19:18 ` [PATCH 5/9] of_mdio: fix MDIO phy device refcounting Russell King
2015-09-24 22:20 ` Rob Herring
2015-09-24 21:57 ` [PATCH v3 0/9] Phy, mdiobus, and netdev struct device fixes Andrew Lunn
2015-09-24 22:15 ` Russell King - ARM Linux
[not found] ` <20150924221541.GF21513-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2015-09-24 22:50 ` Andrew Lunn
2015-09-24 23:33 ` Russell King - ARM Linux [this message]
2015-09-24 22:15 ` David Miller
[not found] ` <20150924.151554.619662567057050978.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
2015-09-24 22:26 ` Andrew Lunn
[not found] ` <20150924222654.GG20825-g2DYL2Zd6BY@public.gmane.org>
2015-09-24 22:51 ` David Miller
2015-09-24 23:12 ` Russell King - ARM Linux
2015-09-25 1:39 ` Florian Fainelli
[not found] ` <5604A5EC.7060401-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-09-25 6:05 ` David Miller
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=20150924233303.GJ21513@n2100.arm.linux.org.uk \
--to=linux@arm.linux.org.uk \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=f.fainelli@gmail.com \
--cc=frowand.list@gmail.com \
--cc=grant.likely@linaro.org \
--cc=isubramanian@apm.com \
--cc=kchudgar@apm.com \
--cc=leoli@freescale.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=michal.simek@xilinx.com \
--cc=netdev@vger.kernel.org \
--cc=robh+dt@kernel.org \
--cc=rric@kernel.org \
--cc=sgoutham@cavium.com \
--cc=soren.brinkmann@xilinx.com \
--cc=thomas.petazzoni@free-electrons.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;
as well as URLs for NNTP newsgroup(s).