Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp1183857iog; Thu, 16 Jun 2022 00:18:06 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tAaiwJcXC8wuzzekvvUdc7PCPYQeFCQzf8+yHdVcmgE4Zi1f2JHCcNLYhiZQe1GRYHkbge X-Received: by 2002:a50:fd01:0:b0:42e:1e73:955d with SMTP id i1-20020a50fd01000000b0042e1e73955dmr4614975eds.148.1655363886595; Thu, 16 Jun 2022 00:18:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655363886; cv=none; d=google.com; s=arc-20160816; b=Ay1jfU/NmMEFF0RWq+mNgDyqJt9cT1keEtbz1woFO7hwDvc6ExN80yJxAiB3anoz4E 8ZX4Gxh2VlMY/RB5y/6gExWd/ZRAzjvdZLoeb86CpHkLIzlfARnxFC/i9h1UNtJ3YuEY SvGGld0hC/vkk77X4MElxPjC5xfyQehvRD5GWwylSB91qBrgy1rVPbicskB2pLY2Rub5 2SXHuEPHoC4agcAn15wlCy9Zx5F9JUy/O/KST6g3AG15RQkN8nMPCZYY5V2VnmznVITm AswSMrop/qquR+hyEz0ppt6iHU7Mjwk4iaEK6CztyyA+iAzzouZ5ohF29lbWkYDlrhaq +P4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:subject:user-agent:mime-version:date:message-id; bh=Jwl/JuPk+DyPjEXSzZeLTM/BkGiBbhVu2o7lLA6Ui0g=; b=Amhj1EXA5zz7k9CWeGkdsg4iw+IWQ1Pb4XEdvgToXgwLWlfQvCBz3FAhj0Db4oqPvV bRbz7LdL9PyM7/3FiV6gdEH9WsrwRD1NYeCujDb51rmaYJoNnvO0sALuwOu1TjohvKZr /jBXOmN/pST/fgPi3TqXdI5aKmE048lO1guUD2RNn6As2ajLzv6D5N3neHGs8rp9t2hj diPr7O/yegoYI2sNEK8iWlI5nFqVmRAfgdMrUsQGgVY3f3BdWb0+LVbFTg28PPRYdt09 frdTcqz3M0tTXsFbBopkFHURkqjIZysRAtngyaEfLFSNluiEcWl1KhOYs83fBVXPYiBg EKDA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sc18-20020a1709078a1200b007120a60b38asi866171ejc.1001.2022.06.16.00.17.40; Thu, 16 Jun 2022 00:18:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358706AbiFPHLw (ORCPT + 99 others); Thu, 16 Jun 2022 03:11:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57172 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229718AbiFPHLu (ORCPT ); Thu, 16 Jun 2022 03:11:50 -0400 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 655362B1BD for ; Thu, 16 Jun 2022 00:11:48 -0700 (PDT) Received: from kwepemi500016.china.huawei.com (unknown [172.30.72.56]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4LNtbn5XrSzjY3t; Thu, 16 Jun 2022 15:10:13 +0800 (CST) Received: from [10.174.176.103] (10.174.176.103) by kwepemi500016.china.huawei.com (7.221.188.220) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Thu, 16 Jun 2022 15:11:45 +0800 Message-ID: <71004ab9-38e0-4323-2506-38d6e71130f6@huawei.com> Date: Thu, 16 Jun 2022 15:11:12 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 Subject: Re: [PATCH -next] driver core: fix deadlock in __driver_attach To: , CC: , References: <20220608094355.3298420-1-zhangwensheng5@huawei.com> From: "zhangwensheng (E)" In-Reply-To: <20220608094355.3298420-1-zhangwensheng5@huawei.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.176.103] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemi500016.china.huawei.com (7.221.188.220) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00,NICE_REPLY_A, RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org friendly ping... 在 2022/6/8 17:43, Zhang Wensheng 写道: > In __driver_attach function, There are also potential AA deadlock > problem, like the commit b232b02bf3c2 ("driver core: fix deadlock > in __device_attach"). > > Fixes: ef0ff68351be ("driver core: Probe devices asynchronously instead of the driver") > Signed-off-by: Zhang Wensheng > --- > drivers/base/dd.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/base/dd.c b/drivers/base/dd.c > index 11b0fb6414d3..b766968a873c 100644 > --- a/drivers/base/dd.c > +++ b/drivers/base/dd.c > @@ -1115,6 +1115,7 @@ static void __driver_attach_async_helper(void *_dev, async_cookie_t cookie) > static int __driver_attach(struct device *dev, void *data) > { > struct device_driver *drv = data; > + bool async = false; > int ret; > > /* > @@ -1153,9 +1154,11 @@ static int __driver_attach(struct device *dev, void *data) > if (!dev->driver && !dev->p->async_driver) { > get_device(dev); > dev->p->async_driver = drv; > - async_schedule_dev(__driver_attach_async_helper, dev); > + async = true; > } > device_unlock(dev); > + if (async) > + async_schedule_dev(__driver_attach_async_helper, dev); > return 0; > } >