diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c index 170d3d68c8f04d38fb67f8d3b84c9c977f57f7a1..cbcfb1885f79332935398a0712171794e1c6d9bf 100644 --- a/drivers/serial/sunsu.c +++ b/drivers/serial/sunsu.c @@ -1453,8 +1453,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);