Re: [PATCH] media: cec: core: remove length check of Timer Status

From: Hans Verkuil
Date: Thu Apr 04 2024 - 04:40:58 EST


Hi Nini,

This patch has now been merged in mainline as commit ce5d241c3ad45
("media: cec: core: remove length check of Timer Status").

To get this into older kernels please post this patch to
stable@xxxxxxxxxxxxxxx, CC the linux-media mailinglist, and mention the
mainline commit that I provided above.

Also mention that this patch applies to 5.10 and up. You can mention
that the patch applies to 5.4 and 4.19 as well after removing the '/core'
directory from the pathnames.

Since you are the author of the patch, you should be the one to post
the patch.

Regards,

Hans


On 25/01/2024 14:28, nini.song@xxxxxxxxxxxx wrote:
> From: "nini.song" <nini.song@xxxxxxxxxxxx>
>
> The valid_la is used to check the length requirements,
> including special cases of Timer Status. If the length is
> shorter than 5, that means no Duration Available is returned,
> the message will be forced to be invalid.
>
> However, the description of Duration Available in the spec
> is that this parameter may be returned when these cases, or
> that it can be optionally return when these cases. The key
> words in the spec description are flexible choices.
>
> Remove the special length check of Timer Status to fit the
> spec which is not compulsory about that.
>
> Signed-off-by: Nini Song <nini.song@xxxxxxxxxxxx>
> ---
> drivers/media/cec/core/cec-adap.c | 14 --------------
> 1 file changed, 14 deletions(-)
>
> diff --git a/drivers/media/cec/core/cec-adap.c b/drivers/media/cec/core/cec-adap.c
> index 5741adf09a2e..559a172ebc6c 100644
> --- a/drivers/media/cec/core/cec-adap.c
> +++ b/drivers/media/cec/core/cec-adap.c
> @@ -1151,20 +1151,6 @@ void cec_received_msg_ts(struct cec_adapter *adap,
> if (valid_la && min_len) {
> /* These messages have special length requirements */
> switch (cmd) {
> - case CEC_MSG_TIMER_STATUS:
> - if (msg->msg[2] & 0x10) {
> - switch (msg->msg[2] & 0xf) {
> - case CEC_OP_PROG_INFO_NOT_ENOUGH_SPACE:
> - case CEC_OP_PROG_INFO_MIGHT_NOT_BE_ENOUGH_SPACE:
> - if (msg->len < 5)
> - valid_la = false;
> - break;
> - }
> - } else if ((msg->msg[2] & 0xf) == CEC_OP_PROG_ERROR_DUPLICATE) {
> - if (msg->len < 5)
> - valid_la = false;
> - }
> - break;
> case CEC_MSG_RECORD_ON:
> switch (msg->msg[2]) {
> case CEC_OP_RECORD_SRC_OWN: