Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752995AbcJUCUu (ORCPT ); Thu, 20 Oct 2016 22:20:50 -0400 Received: from mail-pf0-f194.google.com ([209.85.192.194]:33964 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750974AbcJUCUr (ORCPT ); Thu, 20 Oct 2016 22:20:47 -0400 Date: Fri, 21 Oct 2016 10:20:30 +0800 From: Peter Chen To: Stephen Boyd Cc: linux-usb@vger.kernel.org, Felipe Balbi , Arnd Bergmann , Neil Armstrong , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Bjorn Andersson , devicetree@vger.kernel.org, Rob Herring , Peter Chen , Andy Gross , Kishon Vijay Abraham I , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v5 23/23] phy: Add support for Qualcomm's USB HS phy Message-ID: <20161021022030.GB16461@b29397-desktop> References: <20161018015636.11701-1-stephen.boyd@linaro.org> <20161018015636.11701-24-stephen.boyd@linaro.org> <147700563857.2550.16732518381302920183@sboyd-linaro> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <147700563857.2550.16732518381302920183@sboyd-linaro> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1439 Lines: 34 On Thu, Oct 20, 2016 at 04:20:38PM -0700, Stephen Boyd wrote: > Quoting Stephen Boyd (2016-10-17 18:56:36) > > + > > +static int > > +qcom_usb_hs_phy_vbus_notifier(struct notifier_block *nb, unsigned long event, > > + void *ptr) > > +{ > > + struct qcom_usb_hs_phy *uphy; > > + int is_host; > > + u8 addr; > > + > > + uphy = container_of(nb, struct qcom_usb_hs_phy, vbus_notify); > > + is_host = extcon_get_cable_state_(uphy->id_edev, EXTCON_USB_HOST); > > Please don't apply this patch. This call now deadlocks on v4.9-rc1 > because of how extcon_get_cable_state_() now grabs a lock that is > already held here when we're inside the notifier. It's not really > required that we grab the lock in extcon there, but this has exposed a > flaw in the logic anyway. We don't know if the id pin is going to toggle > before or after this function is called, so we should really keep track > of both vbus and id state in this driver and then do the same ulpi > writes from two different notifiers for both vbus and id pin. We would > be duplicating work sometimes, but that's pretty much the best solution > I can come up with. Otherwise it's racy. > Why you need to care id status? If EXTCON_USB event has happened, and event is true, you can set, otherwise, it is clear operation, that's to say you may not need have id extcon phandle, do you think so? -- Best Regards, Peter Chen