Lines Matching refs:idata

342 	struct mmc_blk_ioc_data *idata;  in mmc_blk_ioctl_copy_from_user()  local
345 idata = kzalloc(sizeof(*idata), GFP_KERNEL); in mmc_blk_ioctl_copy_from_user()
346 if (!idata) { in mmc_blk_ioctl_copy_from_user()
351 if (copy_from_user(&idata->ic, user, sizeof(idata->ic))) { in mmc_blk_ioctl_copy_from_user()
356 idata->buf_bytes = (u64) idata->ic.blksz * idata->ic.blocks; in mmc_blk_ioctl_copy_from_user()
357 if (idata->buf_bytes > MMC_IOC_MAX_BYTES) { in mmc_blk_ioctl_copy_from_user()
362 if (!idata->buf_bytes) in mmc_blk_ioctl_copy_from_user()
363 return idata; in mmc_blk_ioctl_copy_from_user()
365 idata->buf = kzalloc(idata->buf_bytes, GFP_KERNEL); in mmc_blk_ioctl_copy_from_user()
366 if (!idata->buf) { in mmc_blk_ioctl_copy_from_user()
371 if (copy_from_user(idata->buf, (void __user *)(unsigned long) in mmc_blk_ioctl_copy_from_user()
372 idata->ic.data_ptr, idata->buf_bytes)) { in mmc_blk_ioctl_copy_from_user()
377 return idata; in mmc_blk_ioctl_copy_from_user()
380 kfree(idata->buf); in mmc_blk_ioctl_copy_from_user()
382 kfree(idata); in mmc_blk_ioctl_copy_from_user()
450 struct mmc_blk_ioc_data *idata; in mmc_blk_ioctl_cmd() local
469 idata = mmc_blk_ioctl_copy_from_user(ic_ptr); in mmc_blk_ioctl_cmd()
470 if (IS_ERR(idata)) in mmc_blk_ioctl_cmd()
471 return PTR_ERR(idata); in mmc_blk_ioctl_cmd()
488 cmd.opcode = idata->ic.opcode; in mmc_blk_ioctl_cmd()
489 cmd.arg = idata->ic.arg; in mmc_blk_ioctl_cmd()
490 cmd.flags = idata->ic.flags; in mmc_blk_ioctl_cmd()
492 if (idata->buf_bytes) { in mmc_blk_ioctl_cmd()
495 data.blksz = idata->ic.blksz; in mmc_blk_ioctl_cmd()
496 data.blocks = idata->ic.blocks; in mmc_blk_ioctl_cmd()
498 sg_init_one(data.sg, idata->buf, idata->buf_bytes); in mmc_blk_ioctl_cmd()
500 if (idata->ic.write_flag) in mmc_blk_ioctl_cmd()
509 if (idata->ic.data_timeout_ns) in mmc_blk_ioctl_cmd()
510 data.timeout_ns = idata->ic.data_timeout_ns; in mmc_blk_ioctl_cmd()
522 data.timeout_ns = idata->ic.cmd_timeout_ms * 1000000; in mmc_blk_ioctl_cmd()
536 if (idata->ic.is_acmd) { in mmc_blk_ioctl_cmd()
544 idata->ic.write_flag & (1 << 31)); in mmc_blk_ioctl_cmd()
579 if (idata->ic.postsleep_min_us) in mmc_blk_ioctl_cmd()
580 usleep_range(idata->ic.postsleep_min_us, idata->ic.postsleep_max_us); in mmc_blk_ioctl_cmd()
587 if (!idata->ic.write_flag) { in mmc_blk_ioctl_cmd()
588 if (copy_to_user((void __user *)(unsigned long) idata->ic.data_ptr, in mmc_blk_ioctl_cmd()
589 idata->buf, idata->buf_bytes)) { in mmc_blk_ioctl_cmd()
613 kfree(idata->buf); in mmc_blk_ioctl_cmd()
614 kfree(idata); in mmc_blk_ioctl_cmd()