staging: et131x: Fix errors caused by phydev->addr accesses before initialisation
authorMark Einon <mark.einon@gmail.com>
Sun, 10 Aug 2014 21:16:55 +0000 (22:16 +0100)
committerZefan Li <lizefan@huawei.com>
Thu, 25 Sep 2014 03:49:12 +0000 (11:49 +0800)
commitc2aa9b7965a33be8995e9482175381186316bea5
treecaf9881d9bb116e69913db6374073e494ef59788
parentf40751b1c75f30a3d4029f6f1419e2f79bb995c3
staging: et131x: Fix errors caused by phydev->addr accesses before initialisation

commit ec0a38bf8b28b036202070cf3ef271e343d9eafc upstream.

Fix two reported bugs, caused by et131x_adapter->phydev->addr being accessed
before it is initialised, by:

- letting et131x_mii_write() take a phydev address, instead of using the one
  stored in adapter by default. This is so et131x_mdio_write() can use it's own
  addr value.
- removing implementation of et131x_mdio_reset(), as it's not needed.
- moving a call to et131x_disable_phy_coma() in et131x_pci_setup(), which uses
  phydev->addr, until after the mdiobus has been registered.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=80751
Link: https://bugzilla.kernel.org/show_bug.cgi?id=77121
Signed-off-by: Mark Einon <mark.einon@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[lizf: Backported to 3.4:
- adjust context
- update more update more et131x_mii_write() calls in
  et1310_phy_access_mii_bit() and et131x_xcvr_init()]
Signed-off-by: Zefan Li <lizefan@huawei.com>
drivers/staging/et131x/et131x.c