diff --git a/drivers/char/diag/diag_dci.c b/drivers/char/diag/diag_dci.c
index 42b8abfc2c89ccab7e860998f0de03107bb9ff77..79b59a50bc25f2dbcc69e62d6923451a78fa030f 100644
--- a/drivers/char/diag/diag_dci.c
+++ b/drivers/char/diag/diag_dci.c
@@ -828,7 +828,7 @@ static void dci_process_ctrl_status(unsigned char *buf, int len, int token)
 	read_len += sizeof(struct diag_ctrl_dci_status);
 
 	for (i = 0; i < header->count; i++) {
-		if (read_len > len) {
+		if (read_len > (len - 2)) {
 			pr_err("diag: In %s, Invalid length len: %d\n",
 			       __func__, len);
 			return;