diff mbox

[03/11] mmc: sdhci-msm: use sdhci_pltfm_init for private allocation

Message ID 1451991099-4946-4-git-send-email-jszhang@marvell.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jisheng Zhang Jan. 5, 2016, 10:51 a.m. UTC
Commit 0e748234293f ("mmc: sdhci: Add size for caller in init+register")
allows users of sdhci_pltfm to allocate private space in calls to
sdhci_pltfm_init+sdhci_pltfm_register. This patch migrates sdhci-msm
to this allocation.

Signed-off-by: Jisheng Zhang <jszhang@marvell.com>
---
 drivers/mmc/host/sdhci-msm.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

Comments

kernel test robot Jan. 5, 2016, 12:47 p.m. UTC | #1
Hi Jisheng,

[auto build test WARNING on v4.4-rc8]
[also build test WARNING on next-20160105]
[cannot apply to ulf.hansson-mmc/next]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Jisheng-Zhang/mmc-sdhci-bcm2835-use-sdhci_pltfm_init-for-private-allocation/20160105-190232
config: arm64-allmodconfig (attached as .config)
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=arm64 

All warnings (new ones prefixed by >>):

   drivers/mmc/host/sdhci-msm.c: In function 'sdhci_msm_probe':
>> drivers/mmc/host/sdhci-msm.c:440:32: warning: 'msm_host' is used uninitialized in this function [-Wuninitialized]
     host = sdhci_pltfm_init(pdev, &msm_host->sdhci_msm_pdata,
                                   ^

vim +/msm_host +440 drivers/mmc/host/sdhci-msm.c

   424		.set_clock = sdhci_set_clock,
   425		.set_bus_width = sdhci_set_bus_width,
   426		.set_uhs_signaling = sdhci_set_uhs_signaling,
   427	};
   428	
   429	static int sdhci_msm_probe(struct platform_device *pdev)
   430	{
   431		struct sdhci_host *host;
   432		struct sdhci_pltfm_host *pltfm_host;
   433		struct sdhci_msm_host *msm_host;
   434		struct resource *core_memres;
   435		int ret;
   436		u16 host_version, core_minor;
   437		u32 core_version, caps;
   438		u8 core_major;
   439	
 > 440		host = sdhci_pltfm_init(pdev, &msm_host->sdhci_msm_pdata,
   441					sizeof(*msm_host));
   442		if (IS_ERR(host))
   443			return PTR_ERR(host);
   444	
   445		pltfm_host = sdhci_priv(host);
   446		msm_host = sdhci_pltfm_priv(pltfm_host);
   447		msm_host->sdhci_msm_pdata.ops = &sdhci_msm_ops;
   448		msm_host->mmc = host->mmc;

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
Jisheng Zhang Jan. 6, 2016, 2:36 a.m. UTC | #2
On Tue, 5 Jan 2016 20:47:37 +0800 kbuild test robot wrote:

> Hi Jisheng,
> 
> [auto build test WARNING on v4.4-rc8]
> [also build test WARNING on next-20160105]
> [cannot apply to ulf.hansson-mmc/next]
> [if your patch is applied to the wrong git tree, please drop us a note to help improving the system]
> 
> url:    https://github.com/0day-ci/linux/commits/Jisheng-Zhang/mmc-sdhci-bcm2835-use-sdhci_pltfm_init-for-private-allocation/20160105-190232
> config: arm64-allmodconfig (attached as .config)
> reproduce:
>         wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # save the attached .config to linux build tree
>         make.cross ARCH=arm64 
> 
> All warnings (new ones prefixed by >>):
> 
>    drivers/mmc/host/sdhci-msm.c: In function 'sdhci_msm_probe':
> >> drivers/mmc/host/sdhci-msm.c:440:32: warning: 'msm_host' is used uninitialized in this function [-Wuninitialized]  
>      host = sdhci_pltfm_init(pdev, &msm_host->sdhci_msm_pdata,

OOPS, I'll fix it.

Thanks a lot,
Jisheng


>                                    ^
> 
> vim +/msm_host +440 drivers/mmc/host/sdhci-msm.c
> 
>    424		.set_clock = sdhci_set_clock,
>    425		.set_bus_width = sdhci_set_bus_width,
>    426		.set_uhs_signaling = sdhci_set_uhs_signaling,
>    427	};
>    428	
>    429	static int sdhci_msm_probe(struct platform_device *pdev)
>    430	{
>    431		struct sdhci_host *host;
>    432		struct sdhci_pltfm_host *pltfm_host;
>    433		struct sdhci_msm_host *msm_host;
>    434		struct resource *core_memres;
>    435		int ret;
>    436		u16 host_version, core_minor;
>    437		u32 core_version, caps;
>    438		u8 core_major;
>    439	
>  > 440		host = sdhci_pltfm_init(pdev, &msm_host->sdhci_msm_pdata,  
>    441					sizeof(*msm_host));
>    442		if (IS_ERR(host))
>    443			return PTR_ERR(host);
>    444	
>    445		pltfm_host = sdhci_priv(host);
>    446		msm_host = sdhci_pltfm_priv(pltfm_host);
>    447		msm_host->sdhci_msm_pdata.ops = &sdhci_msm_ops;
>    448		msm_host->mmc = host->mmc;
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
diff mbox

Patch

diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
index 4695bee..0109446 100644
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
@@ -437,17 +437,14 @@  static int sdhci_msm_probe(struct platform_device *pdev)
 	u32 core_version, caps;
 	u8 core_major;
 
-	msm_host = devm_kzalloc(&pdev->dev, sizeof(*msm_host), GFP_KERNEL);
-	if (!msm_host)
-		return -ENOMEM;
-
-	msm_host->sdhci_msm_pdata.ops = &sdhci_msm_ops;
-	host = sdhci_pltfm_init(pdev, &msm_host->sdhci_msm_pdata, 0);
+	host = sdhci_pltfm_init(pdev, &msm_host->sdhci_msm_pdata,
+				sizeof(*msm_host));
 	if (IS_ERR(host))
 		return PTR_ERR(host);
 
 	pltfm_host = sdhci_priv(host);
-	pltfm_host->priv = msm_host;
+	msm_host = sdhci_pltfm_priv(pltfm_host);
+	msm_host->sdhci_msm_pdata.ops = &sdhci_msm_ops;
 	msm_host->mmc = host->mmc;
 	msm_host->pdev = pdev;
 
@@ -570,7 +567,7 @@  static int sdhci_msm_remove(struct platform_device *pdev)
 {
 	struct sdhci_host *host = platform_get_drvdata(pdev);
 	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
-	struct sdhci_msm_host *msm_host = pltfm_host->priv;
+	struct sdhci_msm_host *msm_host = sdhci_pltfm_priv(pltfm_host);
 	int dead = (readl_relaxed(host->ioaddr + SDHCI_INT_STATUS) ==
 		    0xffffffff);