From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753152AbdKHU6r (ORCPT ); Wed, 8 Nov 2017 15:58:47 -0500 Received: from omzsmtpe01.verizonbusiness.com ([199.249.25.210]:61013 "EHLO omzsmtpe01.verizonbusiness.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753032AbdKHU4t (ORCPT ); Wed, 8 Nov 2017 15:56:49 -0500 X-Host: surveyor.tdc.vzwcorp.com From: "Levin, Alexander (Sasha Levin)" To: "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" CC: =?utf-8?B?VXdlIEtsZWluZS1Lw7ZuaWc=?= , "Lee Jones" , "Levin, Alexander (Sasha Levin)" Subject: [PATCH AUTOSEL for-3.18 18/27] backlight: lcd: Fix race condition during register Thread-Topic: [PATCH AUTOSEL for-3.18 18/27] backlight: lcd: Fix race condition during register Thread-Index: AQHTWNNIwuKEhArN8kStIRY+JzTQig== Date: Wed, 8 Nov 2017 20:50:59 +0000 Message-ID: <20171108205049.27612-18-alexander.levin@verizon.com> References: <20171108205049.27612-1-alexander.levin@verizon.com> In-Reply-To: <20171108205049.27612-1-alexander.levin@verizon.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.144.60.250] Content-Type: text/plain; charset="utf-8" Content-ID: <1C33BA059581B645A2CC50F1321CA402@vzwcorp.com> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by nfs id vA8KwpHj003691 From: Uwe Kleine-König [ Upstream commit cc21942bce652d1a92dae85b785378256e1df1f7 ] Once device_register is called for a device its attributes might be accessed. As the callbacks of a lcd device's attributes make use of the lcd_ops, the respective member must be setup before calling device_register. Signed-off-by: Uwe Kleine-König Signed-off-by: Lee Jones Signed-off-by: Sasha Levin --- drivers/video/backlight/lcd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/video/backlight/lcd.c b/drivers/video/backlight/lcd.c index 7de847df224f..4b40c6a4d441 100644 --- a/drivers/video/backlight/lcd.c +++ b/drivers/video/backlight/lcd.c @@ -226,6 +226,8 @@ struct lcd_device *lcd_device_register(const char *name, struct device *parent, dev_set_name(&new_ld->dev, "%s", name); dev_set_drvdata(&new_ld->dev, devdata); + new_ld->ops = ops; + rc = device_register(&new_ld->dev); if (rc) { put_device(&new_ld->dev); @@ -238,8 +240,6 @@ struct lcd_device *lcd_device_register(const char *name, struct device *parent, return ERR_PTR(rc); } - new_ld->ops = ops; - return new_ld; } EXPORT_SYMBOL(lcd_device_register); -- 2.11.0