From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753906AbbIWIyT (ORCPT ); Wed, 23 Sep 2015 04:54:19 -0400 Received: from mailout2.w1.samsung.com ([210.118.77.12]:49429 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753827AbbIWIxw (ORCPT ); Wed, 23 Sep 2015 04:53:52 -0400 X-AuditID: cbfec7f4-f79c56d0000012ee-95-5602689e0bcc Message-id: <5602689D.2080604@samsung.com> Date: Wed, 23 Sep 2015 10:53:49 +0200 From: Jacek Anaszewski User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130804 Thunderbird/17.0.8 MIME-version: 1.0 To: Andrew Lunn Cc: linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org, sakari.ailus@linux.intel.com, stsp@users.sourceforge.net, pavel@ucw.cz, ospite@studenti.unina.it, davem@davemloft.net, linus.walleij@linaro.org, ricardo.ribalda@gmail.com, p.meerwald@bct-electronic.com Subject: Re: [PATCH 4/5] leds: core: Add an internal led_set_brightness_nosleep function References: <1442400464-27367-1-git-send-email-j.anaszewski@samsung.com> <1442400464-27367-5-git-send-email-j.anaszewski@samsung.com> <20150922190243.GD20029@lunn.ch> In-reply-to: <20150922190243.GD20029@lunn.ch> Content-type: text/plain; charset=ISO-8859-1; format=flowed Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupgkeLIzCtJLcpLzFFi42I5/e/4Vd15GUxhBle381mcv3uI2WLO+RYW iyl/ljNZXN41h81i65t1jBa/u3ezWPQdkrS4e+oom0VX9zwmi09bvjFZdPZNY3Hg9lhx7y6T x5aVN5k8ds66y+5x59oeNo95JwM9du74zORx6MI6Fo8Vq7+zezSdamf1+LxJLoArissmJTUn syy1SN8ugSujvfssW0E/V8WhlRsYGxhXcnQxcnJICJhIvJx0iRHCFpO4cG89G4gtJLCUUeLX /cwuRi4g+xmjxPRpd8ASvAJaEt3n/7KD2CwCqhLbNj8Di7MJGEr8fPGaCcQWFYiQ+HN6HytE vaDEj8n3WEBsEQEFiSkn/7CCDGUW6GWS+P5tM1izsECUxPc/+9ghtq1ilPhy9ALYJE4BXYlF 36Yzg9jMAtYSKydtY4Sw5SU2r3nLPIFRYBaSJbOQlM1CUraAkXkVo2hqaXJBcVJ6rqFecWJu cWleul5yfu4mRkj8fNnBuPiY1SFGAQ5GJR5ei++MYUKsiWXFlbmHGCU4mJVEeJ8GMIUJ8aYk VlalFuXHF5XmpBYfYpTmYFES5527632IkEB6YklqdmpqQWoRTJaJg1OqgdHzV8WO7K3fDeaJ tOcYT1icxHZyqfpvwesCBla7Gnmyeg6Jvd3per7xx7bOE7t+CG/k65FewWZ1u405QXuq5+FH O+YUzp9Z9drq5dGCyH/xM13fKzutWvzvYMsxlht6SofNHz1MOsz6eqn2itnXJu20Kv3qEJKf 1Nbqnt8r0rya1TrBUOZsxA0lluKMREMt5qLiRABAQlcImwIAAA== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09/22/2015 09:02 PM, Andrew Lunn wrote: >> +void led_set_brightness_nosleep(struct led_classdev *led_cdev, >> + enum led_brightness value) >> +{ >> + led_cdev->brightness = min(value, led_cdev->max_brightness); >> + >> + if (led_cdev->flags & LED_SUSPENDED) >> + return; >> + >> + /* Use brightness_set op if available, it is guaranteed not to sleep */ >> + if (led_cdev->brightness_set) >> + led_cdev->brightness_set(led_cdev, led_cdev->brightness); >> + >> + /* If brightness setting can sleep, delegate it to a work queue task */ >> + led_cdev->delayed_set_value = led_cdev->brightness; >> + schedule_work(&led_cdev->set_brightness_work); >> +} > > To me, it looks like there is a missing else, or return here. We don't > want both led_cdev->brightness_set() and the work queue. Thanks for spotting this. >> +EXPORT_SYMBOL(led_set_brightness_nosleep); > > There seems to be a mixture of EXPORT_SYMBOL and > EXPORT_SYMBOL_GPL. Have you figured out the pattern? led-class.c seems > to be all _GPL, but led-core.c has a mixture. In fact, this is weird. I didn't pay sufficient attention to this, I must admit. We should switch to using EXPORT_SYMBOL_GPL consequently [1]. [1] https://lwn.net/Articles/603187/ -- Best Regards, Jacek Anaszewski