From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755442AbcG0MXX (ORCPT ); Wed, 27 Jul 2016 08:23:23 -0400 Received: from mail-wm0-f66.google.com ([74.125.82.66]:33657 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753991AbcG0MXW (ORCPT ); Wed, 27 Jul 2016 08:23:22 -0400 From: Nicolai Stange To: "Gaurav Jindal \(Gaurav Jindal\)" Cc: "tglx\@linutronix.de" , "linux-kernel\@vger.kernel.org" , "Sanjeev Yadav \(Sanjeev Kumar Yadav\)" Subject: Re: [PATCH]optimize error handling in tick_check_new_device References: <20160727120609.GA3773@gauravjindalubtnb.del.spreadtrum.com> Date: Wed, 27 Jul 2016 14:23:18 +0200 In-Reply-To: <20160727120609.GA3773@gauravjindalubtnb.del.spreadtrum.com> (Gaurav Jindal's message of "Wed, 27 Jul 2016 12:06:17 +0000") Message-ID: <87d1lz5ky1.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.95 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org "Gaurav Jindal (Gaurav Jindal)" writes: > diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c > index 4fcd99e..23faf4a 100644 > --- a/kernel/time/tick-common.c > +++ b/kernel/time/tick-common.c > @@ -307,6 +307,9 @@ void tick_check_new_device(struct clock_event_device *newdev) > td = &per_cpu(tick_cpu_device, cpu); > curdev = td->evtdev; > > + if (!try_module_get(newdev->owner)) > + return; > + Doesn't this leak a reference to newdev->owner if one of the following conditions hold? > /* cpu local device ? */ > if (!tick_check_percpu(curdev, newdev, cpu)) > goto out_bc; > @@ -315,8 +318,6 @@ void tick_check_new_device(struct clock_event_device *newdev) > if (!tick_check_preferred(curdev, newdev)) > goto out_bc; > - if (!try_module_get(newdev->owner)) > - return; > Thanks, Nicolai