Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mmc: core: add proper be32 annotation

Annotate big endian values correctly and make sparse happy.
In mmc_app_send_scr remove scr function parameter as it was
updating card->raw_scr anyway.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

authored by

Winkler, Tomas and committed by
Ulf Hansson
06c9ccb7 861183f1

+16 -17
+4 -4
drivers/mmc/core/mmc_ops.c
··· 305 305 int mmc_send_csd(struct mmc_card *card, u32 *csd) 306 306 { 307 307 int ret, i; 308 - u32 *csd_tmp; 308 + __be32 *csd_tmp; 309 309 310 310 if (!mmc_host_is_spi(card->host)) 311 311 return mmc_send_cxd_native(card->host, card->rca << 16, ··· 319 319 if (ret) 320 320 goto err; 321 321 322 - for (i = 0;i < 4;i++) 322 + for (i = 0; i < 4; i++) 323 323 csd[i] = be32_to_cpu(csd_tmp[i]); 324 324 325 325 err: ··· 330 330 int mmc_send_cid(struct mmc_host *host, u32 *cid) 331 331 { 332 332 int ret, i; 333 - u32 *cid_tmp; 333 + __be32 *cid_tmp; 334 334 335 335 if (!mmc_host_is_spi(host)) { 336 336 if (!host->card) ··· 347 347 if (ret) 348 348 goto err; 349 349 350 - for (i = 0;i < 4;i++) 350 + for (i = 0; i < 4; i++) 351 351 cid[i] = be32_to_cpu(cid_tmp[i]); 352 352 353 353 err:
+2 -2
drivers/mmc/core/sd.c
··· 225 225 static int mmc_read_ssr(struct mmc_card *card) 226 226 { 227 227 unsigned int au, es, et, eo; 228 - u32 *raw_ssr; 228 + __be32 *raw_ssr; 229 229 int i; 230 230 231 231 if (!(card->csd.cmdclass & CCC_APP_SPEC)) { ··· 853 853 /* 854 854 * Fetch SCR from card. 855 855 */ 856 - err = mmc_app_send_scr(card, card->raw_scr); 856 + err = mmc_app_send_scr(card); 857 857 if (err) 858 858 return err; 859 859
+9 -10
drivers/mmc/core/sd_ops.c
··· 232 232 return 0; 233 233 } 234 234 235 - int mmc_app_send_scr(struct mmc_card *card, u32 *scr) 235 + int mmc_app_send_scr(struct mmc_card *card) 236 236 { 237 237 int err; 238 238 struct mmc_request mrq = {}; 239 239 struct mmc_command cmd = {}; 240 240 struct mmc_data data = {}; 241 241 struct scatterlist sg; 242 - void *data_buf; 242 + __be32 *scr; 243 243 244 244 /* NOTE: caller guarantees scr is heap-allocated */ 245 245 ··· 250 250 /* dma onto stack is unsafe/nonportable, but callers to this 251 251 * routine normally provide temporary on-stack buffers ... 252 252 */ 253 - data_buf = kmalloc(sizeof(card->raw_scr), GFP_KERNEL); 254 - if (data_buf == NULL) 253 + scr = kmalloc(sizeof(card->raw_scr), GFP_KERNEL); 254 + if (!scr) 255 255 return -ENOMEM; 256 256 257 257 mrq.cmd = &cmd; ··· 267 267 data.sg = &sg; 268 268 data.sg_len = 1; 269 269 270 - sg_init_one(&sg, data_buf, 8); 270 + sg_init_one(&sg, scr, 8); 271 271 272 272 mmc_set_data_timeout(&data, card); 273 273 274 274 mmc_wait_for_req(card->host, &mrq); 275 275 276 - memcpy(scr, data_buf, sizeof(card->raw_scr)); 277 - kfree(data_buf); 276 + card->raw_scr[0] = be32_to_cpu(scr[0]); 277 + card->raw_scr[1] = be32_to_cpu(scr[1]); 278 + 279 + kfree(scr); 278 280 279 281 if (cmd.error) 280 282 return cmd.error; 281 283 if (data.error) 282 284 return data.error; 283 - 284 - scr[0] = be32_to_cpu(scr[0]); 285 - scr[1] = be32_to_cpu(scr[1]); 286 285 287 286 return 0; 288 287 }
+1 -1
drivers/mmc/core/sd_ops.h
··· 22 22 int mmc_send_app_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr); 23 23 int mmc_send_if_cond(struct mmc_host *host, u32 ocr); 24 24 int mmc_send_relative_addr(struct mmc_host *host, unsigned int *rca); 25 - int mmc_app_send_scr(struct mmc_card *card, u32 *scr); 25 + int mmc_app_send_scr(struct mmc_card *card); 26 26 int mmc_sd_switch(struct mmc_card *card, int mode, int group, 27 27 u8 value, u8 *resp); 28 28 int mmc_app_sd_status(struct mmc_card *card, void *ssr);