From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755103AbbCMLcw (ORCPT ); Fri, 13 Mar 2015 07:32:52 -0400 Received: from mailout1.samsung.com ([203.254.224.24]:31154 "EHLO mailout1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751780AbbCMLcp (ORCPT ); Fri, 13 Mar 2015 07:32:45 -0400 X-AuditID: cbfee691-f79b86d000004a5a-f9-5502cadb3a7b Message-id: <5502CADB.4040204@samsung.com> Date: Fri, 13 Mar 2015 20:32:43 +0900 From: Jaehoon Chung User-Agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-version: 1.0 To: Doug Anderson , Ulf Hansson , Heiko Stuebner , Jaehoon Chung , Seungwon Jeon Cc: Mark Brown , Alexandru Stan , Alim Akhtar , Sonny Rao , Andrew Bresticker , Addy Ke , javier.martinez@collabora.co.uk, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, chris@printf.net, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v4 1/4] mmc: dw_mmc: Don't try to enable the CD until we're sure we're not deferring References: <1426112117-18220-1-git-send-email-dianders@chromium.org> In-reply-to: <1426112117-18220-1-git-send-email-dianders@chromium.org> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrBIsWRmVeSWpSXmKPExsWyRsSkWPf2KaZQg5NPLS1Wvv/LaLHs/3cm iwfztrFZNLyYxGox9eETNosJl7czWpxddpDN4v+j16wWR38XWNz41cZqsenxNVaLy7vmsFkc +d/PaPHpwX9miydnZjJafLh/kdni+NpwB0GP2Q0XWTz+Pr/O4rFpVSebx51re9g8Ni+p97jx aiGTx99Z+1k8+rasYvTYfm0es8fnTXIBXFFcNimpOZllqUX6dglcGYsajAp+8FUsfPqDvYHx CXcXIyeHhICJRMfUaWwQtpjEhXvrgWwuDiGBpYwSUy5vYoUpejuxjRUiMZ1RYs3U/ewQzmtG ifd/p7J0MXJw8ApoSbw4Xg7SwCKgKrHh022wqWwCOhLbvx1nArFFBcIkJt58DDaUV0BQ4sfk eywgc0QEDjNKLPt/Hmw1s8ACZombj2YwglQJC2RJTHv9kg1kgZCAq8SttyEgJqeAm8Ti9RYg JrOAnsT9i1ogxcwC8hKb17xlBpkiIXCAQ+LjlfuMEPcISHybfAjsTAkBWYlNB5gh/pKUOLji BssERrFZSC6ahTB1FpKpCxiZVzGKphYkFxQnpReZ6hUn5haX5qXrJefnbmIEJoDT/55N3MF4 /4D1IUYBDkYlHt7OKqZQIdbEsuLK3EOMpkBHTGSWEk3OB6aZvJJ4Q2MzIwtTE1NjI3NLMyVx Xh3pn8FCAumJJanZqakFqUXxRaU5qcWHGJk4OKUaGA06QxZ5rJ9pOcnPrlC36MRWt3UP593r M+Usf3fxft6Z5Skbq4LM0lzL1gmvOrPYb+rtklrh/VN/7TF77B1UeNXX5VLz7SuPzY45lVy6 2P7IQeyvaelU0UdHw+bLH+iRNub/kK/w7ebl01F/J7lPdvqyzOTvXf6EzDMGl3Y3GTHcDzaQ /rBpR5oSS3FGoqEWc1FxIgBPcwYI+wIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrEKsWRmVeSWpSXmKPExsVy+t9jQd3bp5hCDe691LdY+f4vo8Wy/9+Z LB7M28Zm0fBiEqvF1IdP2CwmXN7OaHF22UE2i/+PXrNaHP1dYHHjVxurxabH11gtLu+aw2Zx 5H8/o8WnB/+ZLZ6cmclo8eH+RWaL42vDHQQ9ZjdcZPH4+/w6i8emVZ1sHneu7WHz2Lyk3uPG q4VMHn9n7Wfx6NuyitFj+7V5zB6fN8kFcEU1MNpkpCampBYppOYl56dk5qXbKnkHxzvHm5oZ GOoaWlqYKynkJeam2iq5+AToumXmAP2jpFCWmFMKFApILC5W0rfDNCE0xE3XAqYxQtc3JAiu x8gADSSsYcxY1GBU8IOvYuHTH+wNjE+4uxg5OSQETCTeTmxjhbDFJC7cW8/WxcjFISQwnVFi zdT97BDOa0aJ93+nsnQxcnDwCmhJvDheDtLAIqAqseHTbTYQm01AR2L7t+NMILaoQJjExJuP wYbyCghK/Jh8jwVkjojAYUaJZf/Pg21gFljALHHz0QxGkCphgSyJaa9fsoEsEBJwlbj1NgTE 5BRwk1i83gLEZBbQk7h/UQukmFlAXmLzmrfMExgFZiHZMAuhahaSqgWMzKsYRVMLkguKk9Jz jfSKE3OLS/PS9ZLzczcxgtPLM+kdjKsaLA4xCnAwKvHwdlQxhQqxJpYVV+YeYpTgYFYS4Y1d DRTiTUmsrEotyo8vKs1JLT7EaAr0/0RmKdHkfGDqyyuJNzQ2MTOyNDI3tDAyNlcS51WybwsR EkhPLEnNTk0tSC2C6WPi4JRqYEyN6l3w4HdwyufPExVe9cvMrkqoKZaV+rDltM7Ko9aX1+z/ c+Wfad+OuVMDF3v/XKroeKhkqoWe8hb1329351Xz2QRfkhCKkd0yd+6xW3omk7uPXk667Btp n5LSOv+uzK4SHe7QqpKJc3M8U/wrwtt3Vyj3d5ukqb2QaGvQUM2vWjv7CMvrzUosxRmJhlrM RcWJAHiPVSVFAwAA DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Doug, Will apply. Thanks! Best Regards, Jaehoon Chung On 03/12/2015 07:15 AM, Doug Anderson wrote: > If dw_mci_init_slot() returns that we got a probe deferral then it may > leave slot->mmc as NULL. That will cause dw_mci_enable_cd() to crash > when it calls mmc_gpio_get_cd(). > > Fix this by moving the call of dw_mci_enable_cd() until we're sure > that we're good. Note that if we have more than one slot and one > defers (but the others don't) things won't work so well. ...but > that's not a new thing and everyone has already agreed that multislot > support ought to be removed from dw_mmc eventually anyway since it is > unused, untested, and you can see several bugs like this by inspecting > the code. > > Fixes: bcafaf5470f0 ("mmc: dw_mmc: Only enable CD after setup and only if needed") > Signed-off-by: Doug Anderson > --- > Changes in v4: > - Defer vs. card detect fix patch new for v4. > > Changes in v3: None > Changes in v2: None > > drivers/mmc/host/dw_mmc.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c > index 47dfd0e..e2811cf 100644 > --- a/drivers/mmc/host/dw_mmc.c > +++ b/drivers/mmc/host/dw_mmc.c > @@ -2863,9 +2863,6 @@ int dw_mci_probe(struct dw_mci *host) > init_slots++; > } > > - /* Now that slots are all setup, we can enable card detect */ > - dw_mci_enable_cd(host); > - > if (init_slots) { > dev_info(host->dev, "%d slots initialized\n", init_slots); > } else { > @@ -2874,6 +2871,9 @@ int dw_mci_probe(struct dw_mci *host) > goto err_dmaunmap; > } > > + /* Now that slots are all setup, we can enable card detect */ > + dw_mci_enable_cd(host); > + > if (host->quirks & DW_MCI_QUIRK_IDMAC_DTO) > dev_info(host->dev, "Internal DMAC interrupt fix enabled.\n"); > >