diff options
author | 2010-04-23 07:12:44 +0000 | |
---|---|---|
committer | 2010-04-23 16:20:25 -0700 | |
commit | 7ce97d4f78b62e3af24cdd4df953d777e7efb2f6 (patch) | |
tree | 00d6462333163e933875480371470975b45ad2e6 /drivers | |
parent | fsl_pq_mdio: Fix kernel oops during OF address translation (diff) | |
download | linux-7ce97d4f78b62e3af24cdd4df953d777e7efb2f6.tar.gz linux-7ce97d4f78b62e3af24cdd4df953d777e7efb2f6.tar.bz2 linux-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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/gianfar.c | 6 |
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; |