From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752255AbcAVCqy (ORCPT ); Thu, 21 Jan 2016 21:46:54 -0500 Received: from mailout1.samsung.com ([203.254.224.24]:38050 "EHLO mailout1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751224AbcAVCqq (ORCPT ); Thu, 21 Jan 2016 21:46:46 -0500 X-AuditID: cbfee690-f79646d000001316-25-56a1981265d6 Message-id: <56A19811.9000101@samsung.com> Date: Fri, 22 Jan 2016 11:46:41 +0900 From: Jaehoon Chung User-Agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-version: 1.0 To: Shawn Lin , Ulf Hansson Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH] mmc: dw_mmc: remove redundant num_slots check References: <1453362769-16223-1-git-send-email-shawn.lin@rock-chips.com> In-reply-to: <1453362769-16223-1-git-send-email-shawn.lin@rock-chips.com> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpjkeLIzCtJLcpLzFFi42JZI2JSois0Y2GYwZQubYvLu+awWRz5389o cefJelaL42vDHVg87lzbw+bxd9Z+Fo/Pm+QCmKO4bFJSczLLUov07RK4MiZNamUuOMtX0XZ6 HXsD4y3uLkZODgkBE4mj9/8yQdhiEhfurWfrYuTiEBJYwShxfHo7M0zRrucHoRKzGCVuNvxg gXAeMEqcPdLECFLFK6AlsX3JR/YuRg4OFgFViUMdtSBhNgEdie3fjoNtEBUIk3iwbi8rRLmg xI/J91hAbBEBP4mtO7aygdjMAtYSP3+0gtUIC7hJrN3ZygwyUkjAQ6JvnR1ImFPAU6L5xWNW kDCzgJ7E/YtaEJ3yEpvXvGUGuUxCYB27xLtjX8DuZxEQkPg2+RALSL2EgKzEpgNQb0lKHFxx g2UCo9gsJAfNQpg6C8nUBYzMqxhFUwuSC4qT0otM9IoTc4tL89L1kvNzNzECo+f0v2cTdjDe O2B9iFGAg1GJh5dDd2GYEGtiWXFl7iFGU6AjJjJLiSbnA2M0ryTe0NjMyMLUxNTYyNzSTEmc 97XUz2AhgfTEktTs1NSC1KL4otKc1OJDjEwcnFINjKoOc9XaTi9VKNqtJfL819wbjH3nDNm+ 5yrX8eR3n5zj1hDq1Dh1dsWhni/LDzzcF+K7fN+iql8nxOZaO9jOqDjndcHjT9Pni1L1Nley 2rbwPZ2kKMG9NT71b0jA93nxrSLsypd1zfbMMPRZqy9deID1l+qT8IYv8e+WMvWuev86c8Ny m5SXN5RYijMSDbWYi4oTAZbQdW2ZAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrMIsWRmVeSWpSXmKPExsVy+t9jQV2hGQvDDJafV7G4vGsOm8WR//2M FneerGe1OL423IHF4861PWwef2ftZ/H4vEkugDmqgdEmIzUxJbVIITUvOT8lMy/dVsk7ON45 3tTMwFDX0NLCXEkhLzE31VbJxSdA1y0zB2ibkkJZYk4pUCggsbhYSd8O04TQEDddC5jGCF3f kCC4HiMDNJCwhjFj0qRW5oKzfBVtp9exNzDe4u5i5OSQEDCR2PX8IBuELSZx4d56IJuLQ0hg FqPEzYYfLBDOA0aJs0eaGEGqeAW0JLYv+cjexcjBwSKgKnGooxYkzCagI7H923EmEFtUIEzi wbq9rBDlghI/Jt9jAbFFBPwktu7YCraMWcBa4uePVrAaYQE3ibU7W5lBRgoJeEj0rbMDCXMK eEo0v3jMChJmFtCTuH9RC6JTXmLzmrfMExiBbkRYMAuhahaSqgWMzKsYJVILkguKk9JzjfJS y/WKE3OLS/PS9ZLzczcxgiP0mfQOxsO73A8xCnAwKvHwcuguDBNiTSwrrsw9xCjBwawkwhs2 GSjEm5JYWZValB9fVJqTWnyI0RQYABOZpUST84HJI68k3tDYxMzI0sjc0MLI2FxJnHffpcgw IYH0xJLU7NTUgtQimD4mDk6pBsbl9wIEH8+8u33WT4evrkfdrBNc24IWGX85eLL2iu+0a69e CqvuzAx6yrvi1fmOt+3WjXUXVCUlV1RtSjuREe56cdebXZOnmthe07x0a9qs319qzAKnX7vz WWtv15z0qpWvJl0ue2rJ/qaux+9BrFzpQi5/r/lv79VEcBb+c+DimLvA7F6Oo4GsEktxRqKh FnNRcSIAUf3r3eYCAAA= 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, Shawn. On 01/21/2016 04:52 PM, Shawn Lin wrote: > num_slots comes from pdata if existing, otherwise from > dw_mci_parse_dt which make it at least one slot. If > num_slots is less than 1 for the existing pdata case, > current code return -ENODEV. But dw_mci_probe seems to > treat this a optional case as it will call SDMMC_GET_SLOT_NUM > if no slot assigned. Well, we need to consider more thing.. Host can get the number of slot from SDMMC_GET_SLOT_NUM(). But i think this way also has the problem. num_slot isn't defined anywhere, and num_slot should be set to value of SDMMC_GET_SLOT_NUM. If that value is higher than 1, it should be blocking..(I didn't test all cases..) Even though this patch is not correct, i could check the problem relevant to num_slot, because of this patch. :) my suggestion is if pdata->num_slot is not defined anywhere, just set to 1 by default. not take from SDMMC_GET_SLOT_NUM. if (host->pdata->nums_slots < 1 || host->pdata->nums_slots > SDMMC_GET_SLOT_NUM()) This is correct condition. num_slots can't be higher than number of supported slots. how about? Best Regards, Jaehoon Chung > > Signed-off-by: Shawn Lin > > --- > > drivers/mmc/host/dw_mmc.c | 6 ------ > 1 file changed, 6 deletions(-) > > diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c > index 7128351..a116ec6 100644 > --- a/drivers/mmc/host/dw_mmc.c > +++ b/drivers/mmc/host/dw_mmc.c > @@ -2949,12 +2949,6 @@ int dw_mci_probe(struct dw_mci *host) > } > } > > - if (host->pdata->num_slots < 1) { > - dev_err(host->dev, > - "Platform data must supply num_slots.\n"); > - return -ENODEV; > - } > - > host->biu_clk = devm_clk_get(host->dev, "biu"); > if (IS_ERR(host->biu_clk)) { > dev_dbg(host->dev, "biu clock not available\n"); >