summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Vorontsov <avorontsov@mvista.com>2010-04-23 07:12:44 +0000
committerDavid S. Miller <davem@davemloft.net>2010-04-23 16:20:25 -0700
commit7ce97d4f78b62e3af24cdd4df953d777e7efb2f6 (patch)
tree00d6462333163e933875480371470975b45ad2e6
parent3b1fd3e55a39824e68bc8dd055d14892476e3671 (diff)
downloadlinux-stable-7ce97d4f78b62e3af24cdd4df953d777e7efb2f6.tar.gz
linux-stable-7ce97d4f78b62e3af24cdd4df953d777e7efb2f6.tar.bz2
linux-stable-7ce97d4f78b62e3af24cdd4df953d777e7efb2f6.zip
gianfar: Fix potential oops during OF address translation
gianfar driver may pass NULL pointer to the of_translate_address(), which may lead to a kernel oops. Fix this by using of_iomap(), which is also much simpler and shorter. Signed-off-by: Anton Vorontsov <avorontsov@mvista.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/gianfar.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 080d1cea5b26..df49af382159 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -549,12 +549,8 @@ static int gfar_parse_group(struct device_node *np,
struct gfar_private *priv, const char *model)
{
u32 *queue_mask;
- u64 addr, size;
-
- addr = of_translate_address(np,
- of_get_address(np, 0, &size, NULL));
- priv->gfargrp[priv->num_grps].regs = ioremap(addr, size);
+ priv->gfargrp[priv->num_grps].regs = of_iomap(np, 0);
if (!priv->gfargrp[priv->num_grps].regs)
return -ENOMEM;