Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752696AbbGIBse (ORCPT ); Wed, 8 Jul 2015 21:48:34 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:41571 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1751907AbbGIBs3 (ORCPT ); Wed, 8 Jul 2015 21:48:29 -0400 X-Listener-Flag: 11101 Message-ID: <1436406493.15417.4.camel@mtksdaap41> Subject: Re: [PATCH 1/2] ASoC: rt5645: Fix missing free_irq From: Koro Chen To: Mark Brown CC: , , , , , , , Date: Thu, 9 Jul 2015 09:48:13 +0800 In-Reply-To: <20150708111437.GQ11162@sirena.org.uk> References: <1436343951-3482-1-git-send-email-koro.chen@mediatek.com> <20150708111437.GQ11162@sirena.org.uk> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.3-0ubuntu6 Content-Transfer-Encoding: 7bit MIME-Version: 1.0 X-MTK: N Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1209 Lines: 29 On Wed, 2015-07-08 at 12:14 +0100, Mark Brown wrote: > On Wed, Jul 08, 2015 at 04:25:50PM +0800, Koro Chen wrote: > > > The driver does not free irq if snd_soc_register_codec fails. > > It does not return error when request irq failed, either. > > Fix this by using devm_request_threaded_irq(), and returns when error. > > Unfortunately this isn't safe... > > > - if (i2c->irq) > > - free_irq(i2c->irq, rt5645); > > - > > cancel_delayed_work_sync(&rt5645->jack_detect_work); > > This work item is queued up by the interrupt handler so we need to > unregister the interrupt before we cancel any pending work otherwise > it's possible that the interrupt may fire after we cancelled the work. Thank you for seeing this, I didn't notice the delayed work. Do you think I should use devm_request_threaded_irq(), and change free_irq to devm_free_irq in remove? Or I should keep the original request_thread_irq(), and just add a free_irq() during probe failed? -- 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/