From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932171AbcHIKLd (ORCPT ); Tue, 9 Aug 2016 06:11:33 -0400 Received: from aserp1040.oracle.com ([141.146.126.69]:24518 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752336AbcHIKLc (ORCPT ); Tue, 9 Aug 2016 06:11:32 -0400 Date: Tue, 9 Aug 2016 13:11:22 +0300 From: Shamir Rabinovitch To: Qing Huang Cc: Greg Kroah-Hartman , Grant Likely , Santosh Shilimkar , linux-kernel@vger.kernel.org Subject: Re: [PATCH] device probe: add self triggered delayed work request Message-ID: <20160809101122.GA30759@shamir-linux.uk.oracle.com> References: <20160808104250.GA12480@shamir-linux.uk.oracle.com> <57A91F5D.1060605@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <57A91F5D.1060605@oracle.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Source-IP: aserv0021.oracle.com [141.146.126.233] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Aug 08, 2016 at 05:10:05PM -0700, Qing Huang wrote: > > Not sure if I understood your scenario. Why there is a deadlock here? > CPU0 | CPU1 --------------------------------------------------------------------------------------------- driver_deferred_probe_add | driver_deferred_probe_trigger_wrapper mutex_lock(&deferred_probe_mutex) | driver_deferred_probe_trigger cancel_delayed_work(&deferred_probe_trigger_work) | mutex_lock(&deferred_probe_mutex) wait for "driver_deferred_probe_trigger_wrapper" | wait for "deferred_probe_mutex" is this possible scenario with this patch? if yes then CPU0 will wait for CPU1 to finish the delayed work whith mutex deferred_probe_mutex held while CPU1 will try to finish the delayed work and will wait for the same mutex forever. it seems like dead lock scenario to me. please say if this scenario is possible. BR, Shamir Rabinovitch