summaryrefslogtreecommitdiffstats
path: root/drivers/serial/sunsu.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2010-05-18 01:30:58 +0200
committerDan Williams <dan.j.williams@intel.com>2010-05-18 01:30:58 +0200
commit0b28330e39bbe0ffee4c56b09fc415fcec595ea3 (patch)
treefcf504879883763557e696eff81427b1ab78f76b /drivers/serial/sunsu.c
parentDMAENGINE: extend the control command to include an arg (diff)
parentasync_tx: trim dma_async_tx_descriptor in 'no channel switch' case (diff)
downloadlinux-0b28330e39bbe0ffee4c56b09fc415fcec595ea3.tar.xz
linux-0b28330e39bbe0ffee4c56b09fc415fcec595ea3.zip
Merge branch 'ioat' into dmaengine
Diffstat (limited to 'drivers/serial/sunsu.c')
-rw-r--r--drivers/serial/sunsu.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c
index 170d3d68c8f0..01f7731e59b8 100644
--- a/drivers/serial/sunsu.c
+++ b/drivers/serial/sunsu.c
@@ -29,6 +29,7 @@
#include <linux/serial.h>
#include <linux/sysrq.h>
#include <linux/console.h>
+#include <linux/slab.h>
#ifdef CONFIG_SERIO
#include <linux/serio.h>
#endif
@@ -1453,8 +1454,10 @@ static int __devinit su_probe(struct of_device *op, const struct of_device_id *m
if (up->su_type == SU_PORT_KBD || up->su_type == SU_PORT_MS) {
err = sunsu_kbd_ms_init(up);
if (err) {
+ of_iounmap(&op->resource[0],
+ up->port.membase, up->reg_size);
kfree(up);
- goto out_unmap;
+ return err;
}
dev_set_drvdata(&op->dev, up);