summaryrefslogtreecommitdiff
path: root/arch/mips/sgi-ip22/ip22-gio.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/sgi-ip22/ip22-gio.c')
-rw-r--r--arch/mips/sgi-ip22/ip22-gio.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/mips/sgi-ip22/ip22-gio.c b/arch/mips/sgi-ip22/ip22-gio.c
index 5893ea4e382c..9eec8842ffb7 100644
--- a/arch/mips/sgi-ip22/ip22-gio.c
+++ b/arch/mips/sgi-ip22/ip22-gio.c
@@ -361,7 +361,7 @@ static void ip22_check_gio(int slotno, unsigned long addr, int irq)
}
printk(KERN_INFO "GIO: slot %d : %s (id %x)\n",
slotno, name, id);
- gio_dev = kzalloc(sizeof *gio_dev, GFP_KERNEL);
+ gio_dev = kzalloc_obj(*gio_dev);
if (!gio_dev)
return;
gio_dev->name = name;
@@ -372,7 +372,8 @@ static void ip22_check_gio(int slotno, unsigned long addr, int irq)
gio_dev->resource.flags = IORESOURCE_MEM;
gio_dev->irq = irq;
dev_set_name(&gio_dev->dev, "%d", slotno);
- gio_device_register(gio_dev);
+ if (gio_device_register(gio_dev))
+ gio_dev_put(gio_dev);
} else
printk(KERN_INFO "GIO: slot %d : Empty\n", slotno);
}