clear-pkgs-linux-iot-lts2018/0817-media-intel-ipu4-VIRT-...

97 lines
2.7 KiB
Diff
Raw Normal View History

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ong Hock Yu <ong.hock.yu@intel.com>
Date: Sun, 25 Nov 2018 18:44:06 +0000
Subject: [PATCH] media: intel-ipu4: [VIRT] Fixed function exit to return error
when failed.
Change-Id: I59c7c9cf5a045a70e3a483c9d86dd3448c343f03
Tracked-On: OAM-64123
Tracked-On: OAM-64294
Tracked-On: OAM-64937
Tracked-On: OLINUX-2973
Tracked-On: OLINUX-3042
Signed-off-by: Ong Hock Yu <ong.hock.yu@intel.com>
---
.../virtio/intel-ipu4-virtio-be-stream.c | 41 +++++++++++--------
1 file changed, 25 insertions(+), 16 deletions(-)
diff --git a/drivers/media/pci/intel/virtio/intel-ipu4-virtio-be-stream.c b/drivers/media/pci/intel/virtio/intel-ipu4-virtio-be-stream.c
2020-10-27 02:14:06 +08:00
index 841abc9d6252..b47deacb9a00 100644
--- a/drivers/media/pci/intel/virtio/intel-ipu4-virtio-be-stream.c
+++ b/drivers/media/pci/intel/virtio/intel-ipu4-virtio-be-stream.c
@@ -139,11 +139,14 @@ int process_set_format(struct ipu4_virtio_req_info *req_info)
err = strm_dev->ipu_ioctl_ops->ici_set_format(sn->f, strm_dev, host_virt);
- if (err)
- pr_err("intel_ipu4_pvirt: internal set fmt failed\n");
-
unmap_guest_phys(domid, req->payload);
- return IPU4_REQ_PROCESSED;
+
+ if (err) {
+ pr_err("intel_ipu4_pvirt: internal set fmt failed\n");
+ return IPU4_REQ_ERROR;
+ }
+ else
+ return IPU4_REQ_PROCESSED;
}
int process_poll(struct ipu4_virtio_req_info *req_info)
@@ -238,11 +241,14 @@ int process_put_buf(struct ipu4_virtio_req_info *req_info)
}
err = strm_dev->ipu_ioctl_ops->ici_put_buf(sn->f, strm_dev, host_virt);
- if (err)
- pr_err("process_put_buf: ici_put_buf failed\n");
-
unmap_guest_phys(domid, req->payload);
- return IPU4_REQ_PROCESSED;
+
+ if (err) {
+ pr_err("process_put_buf: ici_put_buf failed\n");
+ return IPU4_REQ_ERROR;
+ }
+ else
+ return IPU4_REQ_PROCESSED;
}
int process_get_buf(struct ipu4_virtio_req_info *req_info)
@@ -379,10 +385,12 @@ int process_stream_on(struct ipu4_virtio_req_info *req_info)
err = strm_dev->ipu_ioctl_ops->ici_stream_on(sn->f, strm_dev);
- if (err)
+ if (err) {
pr_err("process_stream_on: stream on failed\n");
-
- return IPU4_REQ_PROCESSED;
+ return IPU4_REQ_ERROR;
+ }
+ else
+ return IPU4_REQ_PROCESSED;
}
int process_stream_off(struct ipu4_virtio_req_info *req_info)
@@ -419,11 +427,12 @@ int process_stream_off(struct ipu4_virtio_req_info *req_info)
err = strm_dev->ipu_ioctl_ops->ici_stream_off(sn->f, strm_dev);
- if (err)
- pr_err("%s: stream off failed\n",
- __func__);
-
- return IPU4_REQ_PROCESSED;
+ if (err) {
+ pr_err("%s: stream off failed\n", __func__);
+ return IPU4_REQ_ERROR;
+ }
+ else
+ return IPU4_REQ_PROCESSED;
}
int process_set_format_thread(void *data)
--
https://clearlinux.org