diff --git a/drivers/block/tegra_virt_storage/tegra_hv_ioctl.c b/drivers/block/tegra_virt_storage/tegra_hv_ioctl.c index d81e32f4..868a2fc0 100644 --- a/drivers/block/tegra_virt_storage/tegra_hv_ioctl.c +++ b/drivers/block/tegra_virt_storage/tegra_hv_ioctl.c @@ -55,7 +55,7 @@ int vblk_prep_ioctl_req(struct vblk_dev *vblkdev, if (ioctl_req->ioctl_len > vsc_req->mempool_len) { dev_err(vblkdev->device, - "Ioctl length exceeding mempool length!\n"); + "Ioctl length %u exceeding mempool length!\n", ioctl_req->ioctl_len); return -EINVAL; } diff --git a/drivers/block/tegra_virt_storage/tegra_hv_vblk.c b/drivers/block/tegra_virt_storage/tegra_hv_vblk.c index fc83a988..6c82ceaa 100644 --- a/drivers/block/tegra_virt_storage/tegra_hv_vblk.c +++ b/drivers/block/tegra_virt_storage/tegra_hv_vblk.c @@ -1144,14 +1144,15 @@ static void setup_device(struct vblk_dev *vblkdev) req->mempool_virt = (void *)((uintptr_t)vblkdev->shared_buffer + (uintptr_t)(req_id * max_io_bytes)); req->mempool_offset = (req_id * max_io_bytes); + req->mempool_len = max_io_bytes; } else { if (vblkdev->config.blk_config.req_ops_supported & VS_BLK_IOCTL_OP_F) { req->mempool_virt = (void *)((uintptr_t)vblkdev->shared_buffer + (uintptr_t)((req_id % max_ioctl_requests) * UFS_IOCTL_MAX_SIZE_SUPPORTED)); req->mempool_offset = (req_id % max_ioctl_requests) * UFS_IOCTL_MAX_SIZE_SUPPORTED; + req->mempool_len = UFS_IOCTL_MAX_SIZE_SUPPORTED; } } - req->mempool_len = max_io_bytes; req->id = req_id; req->vblkdev = vblkdev; }