projects
/
openwrt
/
staging
/
mkresin.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ar71xx: ag71xx: Prevent kernel oops for board def
[openwrt/staging/mkresin.git]
/
target
/
linux
/
ar71xx
/
files
/
drivers
/
net
/
ethernet
/
atheros
/
ag71xx
/
ag71xx_phy.c
diff --git
a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c
b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c
index 1683fce882f6d9a172f0efe0e87a9f886e7a024f..58db559ecf3d81a56a55c853c1f548df208264d8 100644
(file)
--- a/
target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c
+++ b/
target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c
@@
-76,10
+76,24
@@
void ag71xx_phy_stop(struct ag71xx *ag)
static int ag71xx_phy_connect_fixed(struct ag71xx *ag)
{
static int ag71xx_phy_connect_fixed(struct ag71xx *ag)
{
- struct device *dev = &ag->pdev->dev;
+ struct platform_device *pdev = ag->pdev;
+ struct device *dev = NULL;
struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
int ret = 0;
struct ag71xx_platform_data *pdata = ag71xx_get_pdata(ag);
int ret = 0;
+ if (!pdev)
+ return -ENODEV;
+
+ dev = &pdev->dev;
+
+ if (!dev)
+ return -ENODEV;
+
+ if (!ag->phy_dev) {
+ pr_err("Missing PHY for %s", dev_name(dev));
+ return -ENODEV;
+ }
+
/* use fixed settings */
switch (pdata->speed) {
case SPEED_10:
/* use fixed settings */
switch (pdata->speed) {
case SPEED_10: