Re: [PATCH V5 4/6] mmc: sdhci-esdhc: make the writel/readl as the general APIs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> +	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
> +	struct pltfm_imx_data *imx_data =
> +				(struct pltfm_imx_data *)pltfm_host->scratchpad;
> +

Uh, no. Sorry that was a misunderstanding of this:

===
Do you means keep the u32 scratchpad, and use one u32---> pointer exchange, right?
-       u32 scratchpad; /* to handle quirks across io-accessor calls */
+       void *priv; /* to handle quirks across io-accessor calls */
===

When you said "exchanging" 'scratchpad' with a 'void *', I thought you really
meant replacing it in the struct like the diff sketches. Casting a variable to
a struct * is not a good idea. The private structure itself looks okay.

> +	struct pltfm_imx_data *imx_data;
> +
> +	imx_data = kzalloc(sizeof(struct pltfm_imx_data), GFP_KERNEL);
> +	pltfm_host->scratchpad = (u32)imx_data;
>  
>  	clk = clk_get(mmc_dev(host->mmc), NULL);
>  	if (IS_ERR(clk)) {

Do that after clk_get, otherwise you leak memory if it clk_get fails.

Regards

-- 
Pengutronix e.K.                           | Wolfram Sang                |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux