[char-misc-next 1/2] mei: bus: block send with vtag on non-conformat FW

From: Tomas Winkler
Date: Mon Feb 08 2021 - 10:53:48 EST


From: Alexander Usyskin <alexander.usyskin@xxxxxxxxx>

Block data send with vtag if either transport layer or
FW client are not supporting vtags.

Cc: <stable@xxxxxxxxxxxxxxx> # v5.10+
Signed-off-by: Alexander Usyskin <alexander.usyskin@xxxxxxxxx>
Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx>
---
drivers/misc/mei/bus.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/misc/mei/bus.c b/drivers/misc/mei/bus.c
index 34fb5e541fe5..be99bb0a16cf 100644
--- a/drivers/misc/mei/bus.c
+++ b/drivers/misc/mei/bus.c
@@ -61,6 +61,13 @@ ssize_t __mei_cl_send(struct mei_cl *cl, u8 *buf, size_t length, u8 vtag,
goto out;
}

+ if (vtag) {
+ /* Check if vtag is supported by client */
+ rets = mei_cl_vt_support_check(cl);
+ if (rets)
+ goto out;
+ }
+
if (length > mei_cl_mtu(cl)) {
rets = -EFBIG;
goto out;
--
2.26.2