summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Cavitt <jonathan.cavitt@intel.com>2025-09-18 21:45:16 +0000
committerAndi Shyti <andi.shyti@linux.intel.com>2025-09-25 18:27:06 +0200
commit69b4d367fff6d311da6e3ce1b8b34b3e37b59b5a (patch)
treead7088f34b8d64f7b85b225c4063cd3504faf08f
parentfe3c035330f545712919f9fe0a6613f4abc8ad56 (diff)
drm/i915/gvt: Simplify case switch in intel_vgpu_ioctl
We do not need a case switch to check cap_type_id in intel_vgpu_ioctl for various reasons (it's impossible to hit the default case in the current code, there's only one valid case to check, the error handling code overlaps in both cases, etc.). Simplify the case switch into a single if statement. This has the additional effect of simplifying the error handling code. Note that it is still currently impossible for 'if (cap_type_id == VFIO_REGION_INFO_CAP_SPARSE_MMAP)' to fail, but we should still guard against the possibility of this changing in the future. Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com> Cc: Andi Shyti <andi.shyti@linux.intel.com> Reviewed-by: Zhenyu Wang <zhenyuw.linux@gmail.com> Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com> Link: https://lore.kernel.org/r/20250918214515.66926-2-jonathan.cavitt@intel.com
-rw-r--r--drivers/gpu/drm/i915/gvt/kvmgt.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c b/drivers/gpu/drm/i915/gvt/kvmgt.c
index 69830a5c49d3..70af86d46fe8 100644
--- a/drivers/gpu/drm/i915/gvt/kvmgt.c
+++ b/drivers/gpu/drm/i915/gvt/kvmgt.c
@@ -1279,20 +1279,15 @@ static long intel_vgpu_ioctl(struct vfio_device *vfio_dev, unsigned int cmd,
}
if ((info.flags & VFIO_REGION_INFO_FLAG_CAPS) && sparse) {
- switch (cap_type_id) {
- case VFIO_REGION_INFO_CAP_SPARSE_MMAP:
+ ret = -EINVAL;
+ if (cap_type_id == VFIO_REGION_INFO_CAP_SPARSE_MMAP)
ret = vfio_info_add_capability(&caps,
&sparse->header,
struct_size(sparse, areas,
sparse->nr_areas));
- if (ret) {
- kfree(sparse);
- return ret;
- }
- break;
- default:
+ if (ret) {
kfree(sparse);
- return -EINVAL;
+ return ret;
}
}