jerpelea opened a new pull request, #20302:
URL: https://github.com/apache/nuttx/pull/20302

   ## Summary
   
   clock_t is an unsigned type unless CONFIG_SYSTEM_TIME64 is selected, as 
documented in sys/types.h.  The difference in
   
       while (current - timeout < 0 && priv->error == 0)
   
   therefore underflows to a large positive value instead of being negative, 
the comparison is always false, and the loop body never runs. status keeps its 
initial value of zero and the function returns OK without having waited for the 
transfer at all.
   
   Because the polling path reports completion immediately, every transfer 
looks successful: no timeout is ever raised and register reads return whatever 
the RX FIFO happens to contain.  The function is compiled in under 
CONFIG_I2C_POLLED, which boards use when the I2C interrupt is not wired up.
   
   Cast the difference to int32_t to get the intended signed comparison. The 
result also stays correct across the counter wrap, as long as the timeout is 
shorter than the counter range, which SEC2TICK(10) satisfies.
   
   Since this file is modified by this commit, the pre-existing nxstyle 
violations reported by the check job are fixed as well, as asked in 
CONTRIBUTING.md section 2.1 (adapt all modified files even if you did not 
introduce the problem yourself):
   
   * esp_i2c.c:1267      - statement over-indented inside its enclosing
                           block (8 spaces where the block body is at 6)
   * esp_i2c.c:1303      - missing blank line after declarations
   * esp_i2c.c:1592      - missing blank line after declarations
   * esp_i2c.c:1710-1725 - 'case'/'default' labels inside switch(port)
                           sat at the same indent as the brace opening
                           the switch body; they belong one level further
                           in, with the case logic one more level in from
                           the label
   
   ## Impact
   
   RELEASE
   
   ## Testing
   
   CI


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to