mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/2] misc: ti_fpc202: two small fixes
@ 2026-02-20 17:20 Felix Gu
  2026-02-20 17:20 ` [PATCH 1/2] misc: ti_fpc202: fix off-by-one error in port ID bounds check Felix Gu
  2026-02-20 17:20 ` [PATCH 2/2] misc: ti_fpc202: remove dead code in fpc202_detach_addr() Felix Gu
  0 siblings, 2 replies; 5+ messages in thread
From: Felix Gu @ 2026-02-20 17:20 UTC (permalink / raw)
  To: Romain Gantois, Arnd Bergmann, Greg Kroah-Hartman, Andi Shyti,
	Wolfram Sang, Linus Walleij
  Cc: linux-kernel, Felix Gu

Signed-off-by: Felix Gu <ustc.gu@gmail.com>
---
Felix Gu (2):
      misc: ti_fpc202: fix off-by-one error in port ID bounds check
      misc: ti_fpc202: remove dead code in fpc202_detach_addr()

 drivers/misc/ti_fpc202.c | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)
---
base-commit: 44982d352c33767cd8d19f8044e7e1161a587ff7
change-id: 20260220-fp202-a85dc5e1ed22

Best regards,
-- 
Felix Gu <ustc.gu@gmail.com>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] misc: ti_fpc202: fix off-by-one error in port ID bounds check
  2026-02-20 17:20 [PATCH 0/2] misc: ti_fpc202: two small fixes Felix Gu
@ 2026-02-20 17:20 ` Felix Gu
  2026-02-26 12:49   ` Romain Gantois
  2026-02-20 17:20 ` [PATCH 2/2] misc: ti_fpc202: remove dead code in fpc202_detach_addr() Felix Gu
  1 sibling, 1 reply; 5+ messages in thread
From: Felix Gu @ 2026-02-20 17:20 UTC (permalink / raw)
  To: Romain Gantois, Arnd Bergmann, Greg Kroah-Hartman, Andi Shyti,
	Wolfram Sang, Linus Walleij
  Cc: linux-kernel, Felix Gu

FPC202_NUM_PORTS is 2, valid port IDs should be 0 and 1. A port_id of 2
would incorrectly pass the check, potentially causing out-of-bounds
access to the port-related arrays.

Found by code review, compile pass.

Fixes: 1e5c9b1efa1c ("misc: add FPC202 dual port controller driver")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
---
 drivers/misc/ti_fpc202.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/misc/ti_fpc202.c b/drivers/misc/ti_fpc202.c
index 8eb2b5ac9850..578feefb77f1 100644
--- a/drivers/misc/ti_fpc202.c
+++ b/drivers/misc/ti_fpc202.c
@@ -366,7 +366,7 @@ static int fpc202_probe(struct i2c_client *client)
 			goto unregister_chans;
 		}
 
-		if (port_id > FPC202_NUM_PORTS) {
+		if (port_id >= FPC202_NUM_PORTS) {
 			dev_err(dev, "port ID %d is out of range!\n", port_id);
 			ret = -EINVAL;
 			goto unregister_chans;

-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/2] misc: ti_fpc202: remove dead code in fpc202_detach_addr()
  2026-02-20 17:20 [PATCH 0/2] misc: ti_fpc202: two small fixes Felix Gu
  2026-02-20 17:20 ` [PATCH 1/2] misc: ti_fpc202: fix off-by-one error in port ID bounds check Felix Gu
@ 2026-02-20 17:20 ` Felix Gu
  2026-02-26 12:53   ` Romain Gantois
  1 sibling, 1 reply; 5+ messages in thread
From: Felix Gu @ 2026-02-20 17:20 UTC (permalink / raw)
  To: Romain Gantois, Arnd Bergmann, Greg Kroah-Hartman, Andi Shyti,
	Wolfram Sang, Linus Walleij
  Cc: linux-kernel, Felix Gu

val is assigned from addr_caches, which is a u8 array. So the check will
never be true.

Found by code review, compile pass.

Signed-off-by: Felix Gu <ustc.gu@gmail.com>
---
 drivers/misc/ti_fpc202.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/drivers/misc/ti_fpc202.c b/drivers/misc/ti_fpc202.c
index 578feefb77f1..79a029d79f7a 100644
--- a/drivers/misc/ti_fpc202.c
+++ b/drivers/misc/ti_fpc202.c
@@ -243,23 +243,15 @@ static void fpc202_detach_addr(struct i2c_atr *atr, u32 chan_id,
 			       u16 addr)
 {
 	struct fpc202_priv *priv = i2c_atr_get_driver_data(atr);
-	int dev_num, reg_mod, val;
+	int dev_num, val;
 
 	for (dev_num = 0; dev_num < 2; dev_num++) {
-		reg_mod = FPC202_REG_MOD_DEV(chan_id, dev_num);
-
 		mutex_lock(&priv->reg_dev_lock);
 
 		val = priv->addr_caches[chan_id][dev_num];
 
 		mutex_unlock(&priv->reg_dev_lock);
 
-		if (val < 0) {
-			dev_err(&priv->client->dev, "failed to read register 0x%x while detaching address 0x%02x\n",
-				reg_mod, addr);
-			return;
-		}
-
 		if (val == (addr & 0x7f)) {
 			fpc202_write_dev_addr(priv, chan_id, dev_num, FPC202_REG_DEV_INVALID);
 			return;

-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] misc: ti_fpc202: fix off-by-one error in port ID bounds check
  2026-02-20 17:20 ` [PATCH 1/2] misc: ti_fpc202: fix off-by-one error in port ID bounds check Felix Gu
@ 2026-02-26 12:49   ` Romain Gantois
  0 siblings, 0 replies; 5+ messages in thread
From: Romain Gantois @ 2026-02-26 12:49 UTC (permalink / raw)
  To: Arnd Bergmann, Greg Kroah-Hartman, Andi Shyti, Wolfram Sang,
	Linus Walleij, Felix Gu
  Cc: linux-kernel, Felix Gu

[-- Attachment #1: Type: text/plain, Size: 1044 bytes --]

On Friday, 20 February 2026 18:20:31 CET Felix Gu wrote:
> FPC202_NUM_PORTS is 2, valid port IDs should be 0 and 1. A port_id of 2
> would incorrectly pass the check, potentially causing out-of-bounds
> access to the port-related arrays.
> 
> Found by code review, compile pass.
> 
> Fixes: 1e5c9b1efa1c ("misc: add FPC202 dual port controller driver")
> Signed-off-by: Felix Gu <ustc.gu@gmail.com>
> ---
> 
>  drivers/misc/ti_fpc202.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/misc/ti_fpc202.c b/drivers/misc/ti_fpc202.c
> index 8eb2b5ac9850..578feefb77f1 100644
> --- a/drivers/misc/ti_fpc202.c
> +++ b/drivers/misc/ti_fpc202.c
> @@ -366,7 +366,7 @@ static int fpc202_probe(struct i2c_client *client)
> 
>  			goto unregister_chans;
>  		
>  		}
> 
> -		if (port_id > FPC202_NUM_PORTS) {
> +		if (port_id >= FPC202_NUM_PORTS) {
> 
>  			dev_err(dev, "port ID %d is out of range!\n", port_id);
>  			ret = -EINVAL;
>  			goto unregister_chans;

Reviewed-by: Romain Gantois <romain.gantois@bootlin.com>


[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] misc: ti_fpc202: remove dead code in fpc202_detach_addr()
  2026-02-20 17:20 ` [PATCH 2/2] misc: ti_fpc202: remove dead code in fpc202_detach_addr() Felix Gu
@ 2026-02-26 12:53   ` Romain Gantois
  0 siblings, 0 replies; 5+ messages in thread
From: Romain Gantois @ 2026-02-26 12:53 UTC (permalink / raw)
  To: Arnd Bergmann, Greg Kroah-Hartman, Andi Shyti, Wolfram Sang,
	Linus Walleij, Felix Gu
  Cc: linux-kernel, Felix Gu

[-- Attachment #1: Type: text/plain, Size: 1366 bytes --]

On Friday, 20 February 2026 18:20:32 CET Felix Gu wrote:
> val is assigned from addr_caches, which is a u8 array. So the check will
> never be true.
> 
> Found by code review, compile pass.
> 
> Signed-off-by: Felix Gu <ustc.gu@gmail.com>
> ---
> 
>  drivers/misc/ti_fpc202.c | 10 +---------
>  1 file changed, 1 insertion(+), 9 deletions(-)
> 
> diff --git a/drivers/misc/ti_fpc202.c b/drivers/misc/ti_fpc202.c
> index 578feefb77f1..79a029d79f7a 100644
> --- a/drivers/misc/ti_fpc202.c
> +++ b/drivers/misc/ti_fpc202.c
> @@ -243,23 +243,15 @@ static void fpc202_detach_addr(struct i2c_atr *atr,
> u32 chan_id, u16 addr)
> 
>  {
>  
>  	struct fpc202_priv *priv = i2c_atr_get_driver_data(atr);
> 
> -	int dev_num, reg_mod, val;
> +	int dev_num, val;
> 
>  	for (dev_num = 0; dev_num < 2; dev_num++) {
> 
> -		reg_mod = FPC202_REG_MOD_DEV(chan_id, dev_num);
> -
> 
>  		mutex_lock(&priv->reg_dev_lock);
>  		
>  		val = priv->addr_caches[chan_id][dev_num];
>  		
>  		mutex_unlock(&priv->reg_dev_lock);
> 
> -		if (val < 0) {
> -			dev_err(&priv->client->dev, "failed to read register 
0x%x while
> detaching address 0x%02x\n", -				reg_mod, addr);
> -			return;
> -		}
> -
> 
>  		if (val == (addr & 0x7f)) {
>  		
>  			fpc202_write_dev_addr(priv, chan_id, dev_num, 
FPC202_REG_DEV_INVALID);
>  			return;

Reviewed-by: Romain Gantois <romain.gantois@bootlin.com>


[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-02-26 12:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-02-20 17:20 [PATCH 0/2] misc: ti_fpc202: two small fixes Felix Gu
2026-02-20 17:20 ` [PATCH 1/2] misc: ti_fpc202: fix off-by-one error in port ID bounds check Felix Gu
2026-02-26 12:49   ` Romain Gantois
2026-02-20 17:20 ` [PATCH 2/2] misc: ti_fpc202: remove dead code in fpc202_detach_addr() Felix Gu
2026-02-26 12:53   ` Romain Gantois

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome