]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[PATCH] SPARC64: Handle ISA devices with no 'regs' property.
authorDavid Miller <davem@davemloft.net>
Tue, 2 Jan 2007 08:06:00 +0000 (00:06 -0800)
committerChris Wright <chrisw@sous-sol.org>
Wed, 10 Jan 2007 19:05:21 +0000 (11:05 -0800)
And this points out that the return value from
isa_dev_get_resource() and the 'pregs' arg to
isa_dev_get_irq() are totally unused.

Based upon a patch from Richard Mortimer <richm@oldelvet.org.uk>

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
arch/sparc64/kernel/isa.c

index f028e68b23f2acf6b6546d63b39f985db3f10ee5..fc7ca6d27ee6b61ea4dd2e9cc149c0dcfdb79d16 100644 (file)
@@ -22,14 +22,15 @@ static void __init report_dev(struct sparc_isa_device *isa_dev, int child)
                printk(" [%s", isa_dev->prom_node->name);
 }
 
-static struct linux_prom_registers * __init
-isa_dev_get_resource(struct sparc_isa_device *isa_dev)
+static void __init isa_dev_get_resource(struct sparc_isa_device *isa_dev)
 {
        struct linux_prom_registers *pregs;
        unsigned long base, len;
        int prop_len;
 
        pregs = of_get_property(isa_dev->prom_node, "reg", &prop_len);
+       if (!pregs)
+               return;
 
        /* Only the first one is interesting. */
        len = pregs[0].reg_size;
@@ -44,12 +45,9 @@ isa_dev_get_resource(struct sparc_isa_device *isa_dev)
 
        request_resource(&isa_dev->bus->parent->io_space,
                         &isa_dev->resource);
-
-       return pregs;
 }
 
-static void __init isa_dev_get_irq(struct sparc_isa_device *isa_dev,
-                                  struct linux_prom_registers *pregs)
+static void __init isa_dev_get_irq(struct sparc_isa_device *isa_dev)
 {
        struct of_device *op = of_find_device_by_node(isa_dev->prom_node);
 
@@ -69,7 +67,6 @@ static void __init isa_fill_children(struct sparc_isa_device *parent_isa_dev)
 
        printk(" ->");
        while (dp) {
-               struct linux_prom_registers *regs;
                struct sparc_isa_device *isa_dev;
 
                isa_dev = kmalloc(sizeof(*isa_dev), GFP_KERNEL);
@@ -87,8 +84,8 @@ static void __init isa_fill_children(struct sparc_isa_device *parent_isa_dev)
                isa_dev->bus = parent_isa_dev->bus;
                isa_dev->prom_node = dp;
 
-               regs = isa_dev_get_resource(isa_dev);
-               isa_dev_get_irq(isa_dev, regs);
+               isa_dev_get_resource(isa_dev);
+               isa_dev_get_irq(isa_dev);
 
                report_dev(isa_dev, 1);
 
@@ -101,7 +98,6 @@ static void __init isa_fill_devices(struct sparc_isa_bridge *isa_br)
        struct device_node *dp = isa_br->prom_node->child;
 
        while (dp) {
-               struct linux_prom_registers *regs;
                struct sparc_isa_device *isa_dev;
 
                isa_dev = kmalloc(sizeof(*isa_dev), GFP_KERNEL);
@@ -141,8 +137,8 @@ static void __init isa_fill_devices(struct sparc_isa_bridge *isa_br)
                isa_dev->bus = isa_br;
                isa_dev->prom_node = dp;
 
-               regs = isa_dev_get_resource(isa_dev);
-               isa_dev_get_irq(isa_dev, regs);
+               isa_dev_get_resource(isa_dev);
+               isa_dev_get_irq(isa_dev);
 
                report_dev(isa_dev, 0);