summaryrefslogtreecommitdiffstats
path: root/drivers/mfd/s5m-irq.c
diff options
context:
space:
mode:
authorJonghwan Choi2012-02-20 16:22:56 +0100
committerSamuel Ortiz2012-03-06 18:46:35 +0100
commitc7a1fcf3b1660dbccdc2faf9e506e0264b17c4ce (patch)
tree4b5c0425c471b01ca881e62e19df1b7a9fc54736 /drivers/mfd/s5m-irq.c
parentmfd: Fix possible s5m null pointer dereference (diff)
downloadkernel-qcow2-linux-c7a1fcf3b1660dbccdc2faf9e506e0264b17c4ce.tar.gz
kernel-qcow2-linux-c7a1fcf3b1660dbccdc2faf9e506e0264b17c4ce.tar.xz
kernel-qcow2-linux-c7a1fcf3b1660dbccdc2faf9e506e0264b17c4ce.zip
mfd: Fix s5m error handling for invalid device type
If device type is not supported in driver, have to retun error. Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/mfd/s5m-irq.c')
-rw-r--r--drivers/mfd/s5m-irq.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/mfd/s5m-irq.c b/drivers/mfd/s5m-irq.c
index de76dfb6f0ad..0236676085cf 100644
--- a/drivers/mfd/s5m-irq.c
+++ b/drivers/mfd/s5m-irq.c
@@ -342,7 +342,10 @@ int s5m_irq_resume(struct s5m87xx_dev *s5m87xx)
s5m8767_irq_thread(s5m87xx->irq_base, s5m87xx);
break;
default:
- break;
+ dev_err(s5m87xx->dev,
+ "Unknown device type %d\n",
+ s5m87xx->device_type);
+ return -EINVAL;
}
}
@@ -444,7 +447,9 @@ int s5m_irq_init(struct s5m87xx_dev *s5m87xx)
}
break;
default:
- break;
+ dev_err(s5m87xx->dev,
+ "Unknown device type %d\n", s5m87xx->device_type);
+ return -EINVAL;
}
if (!s5m87xx->ono)
@@ -467,12 +472,15 @@ int s5m_irq_init(struct s5m87xx_dev *s5m87xx)
IRQF_ONESHOT, "s5m87xx-ono", s5m87xx);
break;
default:
+ ret = -EINVAL;
break;
}
- if (ret)
+ if (ret) {
dev_err(s5m87xx->dev, "Failed to request IRQ %d: %d\n",
s5m87xx->ono, ret);
+ return ret;
+ }
return 0;
}