diff options
author | Josh Boyer <jwboyer@fedoraproject.org> | 2016-07-05 12:18:02 -0400 |
---|---|---|
committer | Josh Boyer <jwboyer@fedoraproject.org> | 2016-07-05 12:18:02 -0400 |
commit | 090355101563f8b7fda5582b5407d6ea342a4930 (patch) | |
tree | 390639740c0996452b5d7ff4bc4b3e583377243d /net-smsc911x-Fix-bug-where-PHY-interrupts-are-overwritten-by-0.patch | |
parent | 9759d1d73d53e21471a45ccc49926c63b5e5b62a (diff) | |
download | kernel-090355101563f8b7fda5582b5407d6ea342a4930.tar.gz kernel-090355101563f8b7fda5582b5407d6ea342a4930.tar.xz kernel-090355101563f8b7fda5582b5407d6ea342a4930.zip |
Linux v4.6.3
- CVE-2016-6130 s390x race condition in sclp leads to info leak (rhbz 1352558 1352559)
Diffstat (limited to 'net-smsc911x-Fix-bug-where-PHY-interrupts-are-overwritten-by-0.patch')
-rw-r--r-- | net-smsc911x-Fix-bug-where-PHY-interrupts-are-overwritten-by-0.patch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/net-smsc911x-Fix-bug-where-PHY-interrupts-are-overwritten-by-0.patch b/net-smsc911x-Fix-bug-where-PHY-interrupts-are-overwritten-by-0.patch new file mode 100644 index 000000000..24b5ac2ae --- /dev/null +++ b/net-smsc911x-Fix-bug-where-PHY-interrupts-are-overwritten-by-0.patch @@ -0,0 +1,52 @@ +From patchwork Wed Jun 22 17:40:50 2016 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [v3] net: smsc911x: Fix bug where PHY interrupts are overwritten by 0 +From: Jeremy Linton <jeremy.linton@arm.com> +X-Patchwork-Id: 639331 +X-Patchwork-Delegate: davem@davemloft.net +Message-Id: <1466617250-27317-1-git-send-email-jeremy.linton@arm.com> +To: netdev@vger.kernel.org +Cc: steve.glendinning@shawell.net, andrew@lunn.ch, + sergei.shtylyov@cogentembedded.com, linux-kernel@vger.kernel.org, + stable@vger.kernel.org, pbrobinson@gmail.com, + mlangsdorf@redhat.com, steve.capper@arm.com +Date: Wed, 22 Jun 2016 12:40:50 -0500 + +By default, mdiobus_alloc() sets the PHYs to polling mode, but a +pointer size memcpy means that a couple IRQs end up being overwritten +with a value of 0. This means that PHY_POLL is disabled and results +in unpredictable behavior depending on the PHY's location on the +MDIO bus. Remove that memcpy and the now unused phy_irq member to +force the SMSC911x PHYs into polling mode 100% of the time. + +Fixes: e7f4dc3536a4 ("mdio: Move allocation of interrupts into core") + +Signed-off-by: Jeremy Linton <jeremy.linton@arm.com> +Reviewed-by: Andrew Lunn <andrew@lunn.ch> +Acked-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> +--- + drivers/net/ethernet/smsc/smsc911x.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/drivers/net/ethernet/smsc/smsc911x.c b/drivers/net/ethernet/smsc/smsc911x.c +index 8af2556..b5ab5e1 100644 +--- a/drivers/net/ethernet/smsc/smsc911x.c ++++ b/drivers/net/ethernet/smsc/smsc911x.c +@@ -116,7 +116,6 @@ struct smsc911x_data { + + struct phy_device *phy_dev; + struct mii_bus *mii_bus; +- int phy_irq[PHY_MAX_ADDR]; + unsigned int using_extphy; + int last_duplex; + int last_carrier; +@@ -1073,7 +1072,6 @@ static int smsc911x_mii_init(struct platform_device *pdev, + pdata->mii_bus->priv = pdata; + pdata->mii_bus->read = smsc911x_mii_read; + pdata->mii_bus->write = smsc911x_mii_write; +- memcpy(pdata->mii_bus->irq, pdata->phy_irq, sizeof(pdata->mii_bus)); + + pdata->mii_bus->parent = &pdev->dev; + |