Commit 462ca99c authored by Wolfgang Grandegger's avatar Wolfgang Grandegger Committed by David S. Miller

au1000_eth: fix invalid address accessing the MAC enable register

"aup->enable" holds already the address pointing to the MAC enable
register. The bug was introduced by commit d0e7cb:

"au1000-eth: remove volatiles, switch to I/O accessors".

CC: Florian Fainelli <florian@openwrt.org>
Signed-off-by: default avatarWolfgang Grandegger <wg@denx.de>
Acked-by: default avatarFlorian Fainelli <florian@openwrt.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0ac78870
...@@ -155,10 +155,10 @@ static void au1000_enable_mac(struct net_device *dev, int force_reset) ...@@ -155,10 +155,10 @@ static void au1000_enable_mac(struct net_device *dev, int force_reset)
spin_lock_irqsave(&aup->lock, flags); spin_lock_irqsave(&aup->lock, flags);
if (force_reset || (!aup->mac_enabled)) { if (force_reset || (!aup->mac_enabled)) {
writel(MAC_EN_CLOCK_ENABLE, &aup->enable); writel(MAC_EN_CLOCK_ENABLE, aup->enable);
au_sync_delay(2); au_sync_delay(2);
writel((MAC_EN_RESET0 | MAC_EN_RESET1 | MAC_EN_RESET2 writel((MAC_EN_RESET0 | MAC_EN_RESET1 | MAC_EN_RESET2
| MAC_EN_CLOCK_ENABLE), &aup->enable); | MAC_EN_CLOCK_ENABLE), aup->enable);
au_sync_delay(2); au_sync_delay(2);
aup->mac_enabled = 1; aup->mac_enabled = 1;
...@@ -503,9 +503,9 @@ static void au1000_reset_mac_unlocked(struct net_device *dev) ...@@ -503,9 +503,9 @@ static void au1000_reset_mac_unlocked(struct net_device *dev)
au1000_hard_stop(dev); au1000_hard_stop(dev);
writel(MAC_EN_CLOCK_ENABLE, &aup->enable); writel(MAC_EN_CLOCK_ENABLE, aup->enable);
au_sync_delay(2); au_sync_delay(2);
writel(0, &aup->enable); writel(0, aup->enable);
au_sync_delay(2); au_sync_delay(2);
aup->tx_full = 0; aup->tx_full = 0;
...@@ -1119,7 +1119,7 @@ static int __devinit au1000_probe(struct platform_device *pdev) ...@@ -1119,7 +1119,7 @@ static int __devinit au1000_probe(struct platform_device *pdev)
/* set a random MAC now in case platform_data doesn't provide one */ /* set a random MAC now in case platform_data doesn't provide one */
random_ether_addr(dev->dev_addr); random_ether_addr(dev->dev_addr);
writel(0, &aup->enable); writel(0, aup->enable);
aup->mac_enabled = 0; aup->mac_enabled = 0;
pd = pdev->dev.platform_data; pd = pdev->dev.platform_data;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment