diff mbox series

drm/bridge: it6505: fix HDCP V match check is not performed correctly

Message ID 20250108-fix-hdcp-v-comp-v1-1-9404811825cd@ite.com.tw (mailing list archive)
State New
Headers show
Series drm/bridge: it6505: fix HDCP V match check is not performed correctly | expand

Commit Message

Hermes Wu via B4 Relay Jan. 8, 2025, 5:45 a.m. UTC
From: Hermes Wu <Hermes.wu@ite.com.tw>

The loop of V compare is expected to iterate for 5 times
which compare V array form av[0][] to av[4][].
It should check loop counter reach the last statement before return true

Fixes: 0989c02c7a5c ("drm/bridge: it6505: fix HDCP CTS compare V matching")

Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
---
 drivers/gpu/drm/bridge/ite-it6505.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)


---
base-commit: 938fbb16aba8f7b88e0fdcf56f315a5bbad41aad
change-id: 20250107-fix-hdcp-v-comp-3ba8e3d7adf3

Best regards,

Comments

Dmitry Baryshkov Jan. 8, 2025, 10:43 a.m. UTC | #1
On Wed, Jan 08, 2025 at 01:45:14PM +0800, Hermes Wu via B4 Relay wrote:
> From: Hermes Wu <Hermes.wu@ite.com.tw>
> 
> The loop of V compare is expected to iterate for 5 times
> which compare V array form av[0][] to av[4][].
> It should check loop counter reach the last statement before return true
> 
> Fixes: 0989c02c7a5c ("drm/bridge: it6505: fix HDCP CTS compare V matching")
> 
> Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>

No empty lines between tags, please.

> ---
>  drivers/gpu/drm/bridge/ite-it6505.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c
> index 88ef76a37fe6accacdd343839ff2569b31b18ceb..e87247aea1d2ffbdad192e241056d34fdfb32163 100644
> --- a/drivers/gpu/drm/bridge/ite-it6505.c
> +++ b/drivers/gpu/drm/bridge/ite-it6505.c
> @@ -2254,9 +2254,12 @@ static bool it6505_hdcp_part2_ksvlist_check(struct it6505 *it6505)
>  			if (bv[i][3] != av[i][0] || bv[i][2] != av[i][1] ||
>  			    av[i][1] != av[i][2] || bv[i][0] != av[i][3])
>  				break;
> -
> -			DRM_DEV_DEBUG_DRIVER(dev, "V' all match!! %d, %d", retry, i);
> -			return true;
> +			if (i == 4) {

I think there was a similar patch yesteday.
Anyway, I have exactly the same feedback: please pull this out of the
loop, this is how it's usually checked / done.

> +				DRM_DEV_DEBUG_DRIVER(dev,
> +						     "V' all match!! %d",
> +						     retry);
> +				return true;
> +			}
>  		}
>  	}
>  
> 
> ---
> base-commit: 938fbb16aba8f7b88e0fdcf56f315a5bbad41aad
> change-id: 20250107-fix-hdcp-v-comp-3ba8e3d7adf3
> 
> Best regards,
> -- 
> Hermes Wu <Hermes.wu@ite.com.tw>
> 
>
Hermes Wu Jan. 9, 2025, 2:36 a.m. UTC | #2
hi
>
>-----Original Message-----
>From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> 
>Sent: Wednesday, January 8, 2025 6:43 PM
>To: Hermes Wu (吳佳宏) <Hermes.Wu@ite.com.tw>
>Cc: Andrzej Hajda <andrzej.hajda@intel.com>; Neil Armstrong <neil.armstrong@linaro.org>; Robert Foss <rfoss@kernel.org>; Laurent Pinchart <Laurent.pinchart@ideasonboard.com>; Jonas Karlman <jonas@kwiboo.se>; Jernej Skrabec <jernej.skrabec@gmail.com>; Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; David Airlie <airlied@gmail.com>; Simona Vetter <simona@ffwll.ch>; AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>; dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.org; Pet Weng (翁玉芬) <Pet.Weng@ite.com.tw>; Kenneth Hung (洪家倫) <Kenneth.Hung@ite.com.tw>; treapking@chromium.org
>Subject: Re: [PATCH] drm/bridge: it6505: fix HDCP V match check is not performed correctly
>
>On Wed, Jan 08, 2025 at 01:45:14PM +0800, Hermes Wu via B4 Relay wrote:
>> From: Hermes Wu <Hermes.wu@ite.com.tw>
>> 
>> The loop of V compare is expected to iterate for 5 times which compare 
>> V array form av[0][] to av[4][].
>> It should check loop counter reach the last statement before return 
>> true
>> 
>> Fixes: 0989c02c7a5c ("drm/bridge: it6505: fix HDCP CTS compare V 
>> matching")
>> 
>> Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
>
>No empty lines between tags, please.
>
>> ---
>>  drivers/gpu/drm/bridge/ite-it6505.c | 9 ++++++---
>>  1 file changed, 6 insertions(+), 3 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/bridge/ite-it6505.c 
>> b/drivers/gpu/drm/bridge/ite-it6505.c
>> index 
>> 88ef76a37fe6accacdd343839ff2569b31b18ceb..e87247aea1d2ffbdad192e241056
>> d34fdfb32163 100644
>> --- a/drivers/gpu/drm/bridge/ite-it6505.c
>> +++ b/drivers/gpu/drm/bridge/ite-it6505.c
>> @@ -2254,9 +2254,12 @@ static bool it6505_hdcp_part2_ksvlist_check(struct it6505 *it6505)
>>  			if (bv[i][3] != av[i][0] || bv[i][2] != av[i][1] ||
>>  			    av[i][1] != av[i][2] || bv[i][0] != av[i][3])
>>  				break;
>> -
>> -			DRM_DEV_DEBUG_DRIVER(dev, "V' all match!! %d, %d", retry, i);
>> -			return true;
>> +			if (i == 4) {
>
>I think there was a similar patch yesteday.

I can't find patch for it6505, would you provide link?
If it also fixes this bug, should I just drop this patch?  

>Anyway, I have exactly the same feedback: please pull this out of the loop, this is how it's usually checked / done.
>
I will move it out the loop,

Thanks.

>> +				DRM_DEV_DEBUG_DRIVER(dev,
>> +						     "V' all match!! %d",
>> +						     retry);
>> +				return true;
>> +			}
>>  		}
>>  	}
>>  
>> 
>> ---
>> base-commit: 938fbb16aba8f7b88e0fdcf56f315a5bbad41aad
>> change-id: 20250107-fix-hdcp-v-comp-3ba8e3d7adf3
>> 
>> Best regards,
>> --
>> Hermes Wu <Hermes.wu@ite.com.tw>
>> 
>> 
>
>--
>With best wishes
>Dmitry
>

BR,
Hermes
Pin-yen Lin Jan. 9, 2025, 3:56 a.m. UTC | #3
Hi Hermes,

On Thu, Jan 9, 2025 at 10:36 AM <Hermes.Wu@ite.com.tw> wrote:
>
> hi
> >
> >-----Original Message-----
> >From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> >Sent: Wednesday, January 8, 2025 6:43 PM
> >To: Hermes Wu (吳佳宏) <Hermes.Wu@ite.com.tw>
> >Cc: Andrzej Hajda <andrzej.hajda@intel.com>; Neil Armstrong <neil.armstrong@linaro.org>; Robert Foss <rfoss@kernel.org>; Laurent Pinchart <Laurent.pinchart@ideasonboard.com>; Jonas Karlman <jonas@kwiboo.se>; Jernej Skrabec <jernej.skrabec@gmail.com>; Maarten Lankhorst <maarten.lankhorst@linux.intel.com>; Maxime Ripard <mripard@kernel.org>; Thomas Zimmermann <tzimmermann@suse.de>; David Airlie <airlied@gmail.com>; Simona Vetter <simona@ffwll.ch>; AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>; dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.org; Pet Weng (翁玉芬) <Pet.Weng@ite.com.tw>; Kenneth Hung (洪家倫) <Kenneth.Hung@ite.com.tw>; treapking@chromium.org
> >Subject: Re: [PATCH] drm/bridge: it6505: fix HDCP V match check is not performed correctly
> >
> >On Wed, Jan 08, 2025 at 01:45:14PM +0800, Hermes Wu via B4 Relay wrote:
> >> From: Hermes Wu <Hermes.wu@ite.com.tw>
> >>
> >> The loop of V compare is expected to iterate for 5 times which compare
> >> V array form av[0][] to av[4][].
> >> It should check loop counter reach the last statement before return
> >> true
> >>
> >> Fixes: 0989c02c7a5c ("drm/bridge: it6505: fix HDCP CTS compare V
> >> matching")
> >>
> >> Signed-off-by: Hermes Wu <Hermes.wu@ite.com.tw>
> >
> >No empty lines between tags, please.
> >
> >> ---
> >>  drivers/gpu/drm/bridge/ite-it6505.c | 9 ++++++---
> >>  1 file changed, 6 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/bridge/ite-it6505.c
> >> b/drivers/gpu/drm/bridge/ite-it6505.c
> >> index
> >> 88ef76a37fe6accacdd343839ff2569b31b18ceb..e87247aea1d2ffbdad192e241056
> >> d34fdfb32163 100644
> >> --- a/drivers/gpu/drm/bridge/ite-it6505.c
> >> +++ b/drivers/gpu/drm/bridge/ite-it6505.c
> >> @@ -2254,9 +2254,12 @@ static bool it6505_hdcp_part2_ksvlist_check(struct it6505 *it6505)
> >>                      if (bv[i][3] != av[i][0] || bv[i][2] != av[i][1] ||
> >>                          av[i][1] != av[i][2] || bv[i][0] != av[i][3])
> >>                              break;
> >> -
> >> -                    DRM_DEV_DEBUG_DRIVER(dev, "V' all match!! %d, %d", retry, i);
> >> -                    return true;
> >> +                    if (i == 4) {
> >
> >I think there was a similar patch yesteday.
>
> I can't find patch for it6505, would you provide link?
> If it also fixes this bug, should I just drop this patch?

I believe Dmitry is referring to
https://lore.kernel.org/all/20250107110740.42892-1-dheeraj.linuxdev@gmail.com/

You can upload a v2 for this and CC Dheeraj on your next patch.
>
> >Anyway, I have exactly the same feedback: please pull this out of the loop, this is how it's usually checked / done.
> >
> I will move it out the loop,
>
> Thanks.
>
> >> +                            DRM_DEV_DEBUG_DRIVER(dev,
> >> +                                                 "V' all match!! %d",
> >> +                                                 retry);
> >> +                            return true;
> >> +                    }
> >>              }
> >>      }
> >>
> >>
> >> ---
> >> base-commit: 938fbb16aba8f7b88e0fdcf56f315a5bbad41aad
> >> change-id: 20250107-fix-hdcp-v-comp-3ba8e3d7adf3
> >>
> >> Best regards,
> >> --
> >> Hermes Wu <Hermes.wu@ite.com.tw>
> >>
> >>
> >
> >--
> >With best wishes
> >Dmitry
> >
>
> BR,
> Hermes

Regards,
Pin-yen
diff mbox series

Patch

diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c
index 88ef76a37fe6accacdd343839ff2569b31b18ceb..e87247aea1d2ffbdad192e241056d34fdfb32163 100644
--- a/drivers/gpu/drm/bridge/ite-it6505.c
+++ b/drivers/gpu/drm/bridge/ite-it6505.c
@@ -2254,9 +2254,12 @@  static bool it6505_hdcp_part2_ksvlist_check(struct it6505 *it6505)
 			if (bv[i][3] != av[i][0] || bv[i][2] != av[i][1] ||
 			    av[i][1] != av[i][2] || bv[i][0] != av[i][3])
 				break;
-
-			DRM_DEV_DEBUG_DRIVER(dev, "V' all match!! %d, %d", retry, i);
-			return true;
+			if (i == 4) {
+				DRM_DEV_DEBUG_DRIVER(dev,
+						     "V' all match!! %d",
+						     retry);
+				return true;
+			}
 		}
 	}