Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752786AbbF3Lm2 (ORCPT ); Tue, 30 Jun 2015 07:42:28 -0400 Received: from smtp5.mail.ru ([94.100.179.24]:40853 "EHLO smtp5.mail.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752120AbbF3LmV (ORCPT ); Tue, 30 Jun 2015 07:42:21 -0400 Message-ID: <55928054.8070705@list.ru> Date: Tue, 30 Jun 2015 14:41:08 +0300 From: Stas Sergeev User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Jacek Anaszewski , Stas Sergeev CC: linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org, Bryan Wu , Richard Purdie , Pavel Machek , Sakari Ailus , Andreas Werner , Andrew Lunn , Antonio Ospite , Atsushi Nemoto , Ben Dooks , Chris Boot , Dan Murphy , Daniel Jeong , Daniel Mack , "David S. Miller" , Fabio Baltieri , Felipe Balbi , Florian Fainelli , "G.Shark Jeong" , Guennadi Liakhovetski , Ingi Kim , Jan-Simon Moeller , Johan Hovold , John Lenz , Jonas Gorski , Kim Kyuwon , Kristian Kielhofner , Kristoffer Ericson , Linus Walleij , Mark Brown , Michael Hennerich , Milo Kim , =?UTF-8?B?TcOhcnRvbiBOw6ltZXRo?= , Nate Case , NeilBrown , Nick Forbes , Paul Parsons , Peter Meerwald , Phil Sutter , Philippe Retornaz , Raphael Assenat , Richard Purdie , Rod Whitby , Dave Hansen , Rodolfo Giometti , "Sebastian A. Siewior" , Shuah Khan , Simon Guinot , =?UTF-8?B?w4FsdmFybyBGZXJuw6FuZGV6IFJvamFz?= Subject: Re: [PATCH/RFC RESEND] leds: Use set_brightness_work for brightness_set ops that can sleep References: <1435651268-9657-1-git-send-email-j.anaszewski@samsung.com> <559252EC.2050906@samsung.com> In-Reply-To: <559252EC.2050906@samsung.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam: Not detected X-Mras: Ok Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1968 Lines: 47 30.06.2015 11:27, Jacek Anaszewski пишет: > On 06/29/2015 05:17 PM, Stas Sergeev wrote:> 29.06.2015 17:05, Jacek Anaszewski пишет: >>> + * If need to disable soft blinking delegate this to the >>> + * work queue task to avoid problems in case we are >>> + * called from hard irq context. >>> + */ >>> + led_cdev->flags |= LED_BLINK_DISABLE; >> Wouldn't it be better to just enforce the callers >> to explicitly disable software blink, so that it to >> never happen from irq context? Something like in this >> patch: >> https://lkml.org/lkml/2015/5/13/491 >> > > Blinking can be disabled not only by removing trigger explicitly, > but also by setting brightness to 0 and led_set_brightness > can be called from hard irq context. set_brightness_work > was originally introduced exactly for this use case. Could you please describe where does this happen? I can see LED_OFF happening only in led_heartbeat_function(), but it doesn't use soft-blink, so it will not activate the delayed timer cancel. I would suggest the patch below to make it explicit that led_heartbeat_function() doesn't want to cancel soft blink. Note that led_heartbeat_function() already uses led_set_brightness_async() in a normal case. diff --git a/drivers/leds/trigger/ledtrig-heartbeat.c b/drivers/leds/trigger/ledtrig-heartbeat.c index fea6871..0f89d12 100644 --- a/drivers/leds/trigger/ledtrig-heartbeat.c +++ b/drivers/leds/trigger/ledtrig-heartbeat.c @@ -37,7 +37,7 @@ static void led_heartbeat_function(unsigned long data) unsigned long delay = 0; if (unlikely(panic_heartbeats)) { - led_set_brightness(led_cdev, LED_OFF); + led_set_brightness_async(led_cdev, LED_OFF); return; } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/