Hi, On Wed, 25 Oct 2023 07:59:05 +0000 Michel Alex wrote: > Calculate the maximum length of the buffer when writing > across the page boundary. If the buffer length (len) > exceeds the page boundary (pagesize), split it. Use this > length instead of comparing the length with the pagesize, > because if the write start address (offset) is not at the > beginning of a page and the page_offset + len is greater > than the page boundary (pagesize), the write operation > would overflow the current page and the behaviour can be > undefined (e.g. at24). > > Signed-off-by: Alex Michel <alex.mic...@wiedemann-group.com> > --- > Changes for v2: > - fixed deviations from checkpatch.pl > - improved commit message > --- > drivers/misc/i2c_eeprom.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/drivers/misc/i2c_eeprom.c b/drivers/misc/i2c_eeprom.c > index bdd7e018cc..0eecbd07ba 100644 > --- a/drivers/misc/i2c_eeprom.c > +++ b/drivers/misc/i2c_eeprom.c > @@ -60,6 +60,17 @@ static int i2c_eeprom_std_read(struct udevice *dev, int > offset, uint8_t *buf, > return dm_i2c_read(dev, offset, buf, size); > } > > +static int i2c_eeprom_len(unsigned int offset, unsigned int len, unsigned > int pagesize) > +{ > + int page_offset = ((offset) & (pagesize - 1)); int page_offset = offset & (pagesize - 1); 2 many ()
Lothar Waßmann -- ___________________________________________________________ Ka-Ro electronics GmbH | Pascalstraße 22 | D - 52076 Aachen Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10 Geschäftsführer: Matthias Kaussen Handelsregistereintrag: Amtsgericht Aachen, HRB 4996 www.karo-electronics.de | i...@karo-electronics.de ___________________________________________________________