diff mbox series

phy: cadence-torrent: Check return value on register read

Message ID 20240702032042.3993031-1-make24@iscas.ac.cn
State Accepted
Commit 967969cf594ed3c1678a9918d6e9bb2d1591cbe9
Headers show
Series phy: cadence-torrent: Check return value on register read | expand

Commit Message

Ma Ke July 2, 2024, 3:20 a.m. UTC
cdns_torrent_dp_set_power_state() does not consider that ret might be
overwritten. Add return value check of regmap_read_poll_timeout() after
register read in cdns_torrent_dp_set_power_state().

Fixes: 5b16a790f18d ("phy: cadence-torrent: Reorder few functions to remove function declarations")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
---
 drivers/phy/cadence/phy-cadence-torrent.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Markus Elfring July 2, 2024, 7:43 a.m. UTC | #1
> cdns_torrent_dp_set_power_state() does not consider that ret might be
> overwritten. Add return value check of regmap_read_poll_timeout() after
> register read in cdns_torrent_dp_set_power_state().

I suggest to improve such a change description another bit.

1. A return value is stored in the mentioned local variable.

2. Unfortunately, it was not immediately checked.

   * https://cwe.mitre.org/data/definitions/252.html

   * https://wiki.sei.cmu.edu/confluence/display/c/EXP12-C.+Do+not+ignore+values+returned+by+functions

3. How do you think about to avoid a repeated reference to a function name?


…
> Signed-off-by: Ma Ke <make24@iscas.ac.cn>

* Why was the personal name “Haoxiang Li” not specified here?

* Under which circumstances will applications of the Developer's Certificate of Origin
  be clarified better?
  https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.10-rc6#n398


How do you think about to use a summary phrase like “Complete error handling
in cdns_torrent_dp_set_power_state()”?

Regards,
Markus
Roger Quadros July 2, 2024, 11:54 a.m. UTC | #2
On 02/07/2024 06:20, Ma Ke wrote:
> cdns_torrent_dp_set_power_state() does not consider that ret might be
> overwritten. Add return value check of regmap_read_poll_timeout() after
> register read in cdns_torrent_dp_set_power_state().
> 
> Fixes: 5b16a790f18d ("phy: cadence-torrent: Reorder few functions to remove function declarations")
> Signed-off-by: Ma Ke <make24@iscas.ac.cn>

Reviewed-by: Roger Quadros <rogerq@kernel.org>
Vinod Koul July 2, 2024, 1:12 p.m. UTC | #3
On 02-07-24, 09:43, Markus Elfring wrote:
> > cdns_torrent_dp_set_power_state() does not consider that ret might be
> > overwritten. Add return value check of regmap_read_poll_timeout() after
> > register read in cdns_torrent_dp_set_power_state().
> 
> I suggest to improve such a change description another bit.
> 
> 1. A return value is stored in the mentioned local variable.
> 
> 2. Unfortunately, it was not immediately checked.
> 
>    * https://cwe.mitre.org/data/definitions/252.html
> 
>    * https://wiki.sei.cmu.edu/confluence/display/c/EXP12-C.+Do+not+ignore+values+returned+by+functions
> 
> 3. How do you think about to avoid a repeated reference to a function name?


<form letter>
Feel free to ignore all comments from Markus, regardless whether the
suggestion is reasonable or not. This person is banned from LKML and
several maintainers ignore Markus' feedback, because it is just a waste
of time.
</form letter>
Vinod Koul July 2, 2024, 1:35 p.m. UTC | #4
On Tue, 02 Jul 2024 11:20:42 +0800, Ma Ke wrote:
> cdns_torrent_dp_set_power_state() does not consider that ret might be
> overwritten. Add return value check of regmap_read_poll_timeout() after
> register read in cdns_torrent_dp_set_power_state().
> 
> 

Applied, thanks!

[1/1] phy: cadence-torrent: Check return value on register read
      commit: 967969cf594ed3c1678a9918d6e9bb2d1591cbe9

Best regards,
diff mbox series

Patch

diff --git a/drivers/phy/cadence/phy-cadence-torrent.c b/drivers/phy/cadence/phy-cadence-torrent.c
index 95924a09960c..6113f0022e6e 100644
--- a/drivers/phy/cadence/phy-cadence-torrent.c
+++ b/drivers/phy/cadence/phy-cadence-torrent.c
@@ -1156,6 +1156,9 @@  static int cdns_torrent_dp_set_power_state(struct cdns_torrent_phy *cdns_phy,
 	ret = regmap_read_poll_timeout(regmap, PHY_PMA_XCVR_POWER_STATE_ACK,
 				       read_val, (read_val & mask) == value, 0,
 				       POLL_TIMEOUT_US);
+	if (ret)
+		return ret;
+
 	cdns_torrent_dp_write(regmap, PHY_PMA_XCVR_POWER_STATE_REQ, 0x00000000);
 	ndelay(100);