From 51a2fc3071ef5ed8c392d954c7ec81a6b36e2377 Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Thu, 11 Nov 2010 14:05:13 -0800 Subject: [PATCH] --- yaml --- r: 221719 b: refs/heads/master c: aec04288904a7308f2900926902040e7a69ae2be h: refs/heads/master i: 221717: 7da2aff3647a3019a2e535d8dc85de52d9464051 221715: 8f8c2051c82146da9ba02bfb7c17d1b0618d047d 221711: 5c26854b9898a44bb2fd80ecc0e581b6aefe158e v: v3 --- [refs] | 2 +- trunk/drivers/misc/bh1770glc.c | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index f8f84b588a2a..4e6f25589f05 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d2e61b8dc99fdb36e0fd176e25365f69afda4ff9 +refs/heads/master: aec04288904a7308f2900926902040e7a69ae2be diff --git a/trunk/drivers/misc/bh1770glc.c b/trunk/drivers/misc/bh1770glc.c index cee632e645e1..d79a972f2c79 100644 --- a/trunk/drivers/misc/bh1770glc.c +++ b/trunk/drivers/misc/bh1770glc.c @@ -649,7 +649,7 @@ static ssize_t bh1770_power_state_store(struct device *dev, { struct bh1770_chip *chip = dev_get_drvdata(dev); unsigned long value; - size_t ret; + ssize_t ret; if (strict_strtoul(buf, 0, &value)) return -EINVAL; @@ -659,8 +659,12 @@ static ssize_t bh1770_power_state_store(struct device *dev, pm_runtime_get_sync(dev); ret = bh1770_lux_rate(chip, chip->lux_rate_index); - ret |= bh1770_lux_interrupt_control(chip, BH1770_ENABLE); + if (ret < 0) { + pm_runtime_put(dev); + goto leave; + } + ret = bh1770_lux_interrupt_control(chip, BH1770_ENABLE); if (ret < 0) { pm_runtime_put(dev); goto leave;