From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932679AbcHINtQ (ORCPT ); Tue, 9 Aug 2016 09:49:16 -0400 Received: from mail-wm0-f45.google.com ([74.125.82.45]:36349 "EHLO mail-wm0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932398AbcHINtN (ORCPT ); Tue, 9 Aug 2016 09:49:13 -0400 Date: Tue, 9 Aug 2016 14:50:39 +0100 From: Lee Jones To: Dan Carpenter Cc: Qiao Zhou , linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org Subject: Re: [patch] mfd: 88pm80x: Double shifting bug in suspend/resume Message-ID: <20160809135039.GK5243@dell> References: <20160804052656.GG775@mwanda> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20160804052656.GG775@mwanda> User-Agent: Mutt/1.6.2 (2016-07-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 04 Aug 2016, Dan Carpenter wrote: > set_bit() and clear_bit() take the bit number so this code is really > doing "1 << (1 << irq)" which is a double shift bug. It's done > consistently so it won't cause a problem unless "irq" is more than 4. > > Fixes: 70c6cce04066 ('mfd: Support 88pm80x in 80x driver') > Signed-off-by: Dan Carpenter Applied, thanks. > diff --git a/include/linux/mfd/88pm80x.h b/include/linux/mfd/88pm80x.h > index d409ceb..c118a7e 100644 > --- a/include/linux/mfd/88pm80x.h > +++ b/include/linux/mfd/88pm80x.h > @@ -350,7 +350,7 @@ static inline int pm80x_dev_suspend(struct device *dev) > int irq = platform_get_irq(pdev, 0); > > if (device_may_wakeup(dev)) > - set_bit((1 << irq), &chip->wu_flag); > + set_bit(irq, &chip->wu_flag); > > return 0; > } > @@ -362,7 +362,7 @@ static inline int pm80x_dev_resume(struct device *dev) > int irq = platform_get_irq(pdev, 0); > > if (device_may_wakeup(dev)) > - clear_bit((1 << irq), &chip->wu_flag); > + clear_bit(irq, &chip->wu_flag); > > return 0; > } -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog