aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/renesas
diff options
context:
space:
mode:
authorSergei Shtylyov <sergei.shtylyov@cogentembedded.com>2014-03-15 03:11:24 +0300
committerDavid S. Miller <davem@davemloft.net>2014-03-17 16:05:18 -0400
commit264be2f5a973cc85be3e31d6bf6234b55a256627 (patch)
tree65061d23535d14dd31b1c31e549d2949c0b7961f /drivers/net/ethernet/renesas
parentMerge branch 'netpoll-next' (diff)
downloadlinux-dev-264be2f5a973cc85be3e31d6bf6234b55a256627.tar.xz
linux-dev-264be2f5a973cc85be3e31d6bf6234b55a256627.zip
sh_eth: exit probe with unknown register layout
Exit the driver's probe() method when the register layout is unknown as the driver would cause kernel oops in this case anyway. While at it, move the corresponding error message printout and convert it from pr_err() to dev_err(). Suggested-by: Joe Perches <joe@perches.com> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/renesas')
-rw-r--r--drivers/net/ethernet/renesas/sh_eth.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c
index 236a4414173a..8d8315bb0cea 100644
--- a/drivers/net/ethernet/renesas/sh_eth.c
+++ b/drivers/net/ethernet/renesas/sh_eth.c
@@ -2703,7 +2703,6 @@ static const u16 *sh_eth_get_register_offset(int register_type)
reg_offset = sh_eth_offset_fast_sh3_sh2;
break;
default:
- pr_err("Unknown register type (%d)\n", register_type);
break;
}
@@ -2859,6 +2858,12 @@ static int sh_eth_drv_probe(struct platform_device *pdev)
mdp->cd = (struct sh_eth_cpu_data *)match->data;
}
mdp->reg_offset = sh_eth_get_register_offset(mdp->cd->register_type);
+ if (!mdp->reg_offset) {
+ dev_err(&pdev->dev, "Unknown register type (%d)\n",
+ mdp->cd->register_type);
+ ret = -EINVAL;
+ goto out_release;
+ }
sh_eth_set_default_cpu_data(mdp->cd);
/* set function */