On Fri, Jan 25, 2019 at 09:59:34PM +0100, Uwe Kleine-König wrote: > Adresses below 0x04 and above 0x77 are reserved in the i2c bus > specification, so don't probe these addresses unless requested > explicitly. > > Also do more strict boundary checking: > > - ensure start address is greater or equal to zero; > - don't decrease stopaddr after checking it being greater or equal to > startaddr. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > --- > commands/i2c.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) Applied, thanks Sascha > > diff --git a/commands/i2c.c b/commands/i2c.c > index 2f7f820d4d55..65ff7378ec14 100644 > --- a/commands/i2c.c > +++ b/commands/i2c.c > @@ -44,7 +44,7 @@ static void i2c_probe_range(struct i2c_adapter *adapter, int startaddr, int stop > static int do_i2c_probe(int argc, char *argv[]) > { > struct i2c_adapter *adapter = NULL; > - int startaddr = 0, stopaddr = 0x7f; > + int startaddr = 4, stopaddr = 0x77; > > if (argc > 1) { > adapter = i2c_get_adapter(simple_strtoul(argv[1], NULL, 0)); > @@ -57,13 +57,15 @@ static int do_i2c_probe(int argc, char *argv[]) > if (argc > 3) > stopaddr = simple_strtol(argv[3], NULL, 0); > > + if (stopaddr > 0x7f) > + stopaddr = 0x7f; > + > + if (startaddr < 0) > + startaddr = 0; > > if (startaddr > stopaddr) > return COMMAND_ERROR_USAGE; > > - if (stopaddr > 0x7F) > - stopaddr = 0x7F; > - > if (adapter) { > i2c_probe_range(adapter, startaddr, stopaddr); > } else { > -- > 2.20.1 > > > _______________________________________________ > barebox mailing list > barebox@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/barebox -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox