2010-12-02 14:09:12

by Mattias Wallin

[permalink] [raw]
Subject: [PATCH] MFD: ab8500-core improved error handling in get_chip_id

This patch improves the error handling in ab8500_get_chip_id.

Signed-off-by: Mattias Wallin <[email protected]>
---
drivers/mfd/ab8500-core.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/mfd/ab8500-core.c b/drivers/mfd/ab8500-core.c
index d9640a6..e91b5b7 100644
--- a/drivers/mfd/ab8500-core.c
+++ b/drivers/mfd/ab8500-core.c
@@ -103,8 +103,12 @@ static const int ab8500_irq_regoffset[AB8500_NUM_IRQ_REGS] = {

static int ab8500_get_chip_id(struct device *dev)
{
- struct ab8500 *ab8500 = dev_get_drvdata(dev->parent);
- return (int)ab8500->chip_id;
+ struct ab8500 *ab8500;
+
+ if (!dev)
+ return -EINVAL;
+ ab8500 = dev_get_drvdata(dev->parent);
+ return ab8500 ? (int)ab8500->chip_id : -EINVAL;
}

static int set_register_interruptible(struct ab8500 *ab8500, u8 bank,
--
1.7.2.2


2010-12-09 12:16:11

by Samuel Ortiz

[permalink] [raw]
Subject: Re: [PATCH] MFD: ab8500-core improved error handling in get_chip_id

Hi Mattias,

On Thu, Dec 02, 2010 at 03:08:32PM +0100, Mattias Wallin wrote:
> This patch improves the error handling in ab8500_get_chip_id.
Patch applied.
One general comment: Your title and changelog should be different. The former
should basically be a one liner explaining what you're doing, and the latter
should explain why and how you're doing so.

Cheers,
Samuel.


> Signed-off-by: Mattias Wallin <[email protected]>
> ---
> drivers/mfd/ab8500-core.c | 8 ++++++--
> 1 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/mfd/ab8500-core.c b/drivers/mfd/ab8500-core.c
> index d9640a6..e91b5b7 100644
> --- a/drivers/mfd/ab8500-core.c
> +++ b/drivers/mfd/ab8500-core.c
> @@ -103,8 +103,12 @@ static const int ab8500_irq_regoffset[AB8500_NUM_IRQ_REGS] = {
>
> static int ab8500_get_chip_id(struct device *dev)
> {
> - struct ab8500 *ab8500 = dev_get_drvdata(dev->parent);
> - return (int)ab8500->chip_id;
> + struct ab8500 *ab8500;
> +
> + if (!dev)
> + return -EINVAL;
> + ab8500 = dev_get_drvdata(dev->parent);
> + return ab8500 ? (int)ab8500->chip_id : -EINVAL;
> }
>
> static int set_register_interruptible(struct ab8500 *ab8500, u8 bank,
> --
> 1.7.2.2
>

--
Intel Open Source Technology Centre
http://oss.intel.com/