On Mon 2018-09-17 07:20:35, Andreas Kemnade wrote: > the charging current uses unsigned int variables, if we step back > if the current is still low, we would run into negative which > means setting the target to a huge value. > Better add checks here. Do you expect this to happen in practice? Too high current while charging seems bad, right? Cc: stable? Pavel > Signed-off-by: Andreas Kemnade <andreas@xxxxxxxxxxxx> > --- > drivers/power/supply/twl4030_charger.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/power/supply/twl4030_charger.c b/drivers/power/supply/twl4030_charger.c > index b72838663872..c954b7234393 100644 > --- a/drivers/power/supply/twl4030_charger.c > +++ b/drivers/power/supply/twl4030_charger.c > @@ -421,7 +421,8 @@ static void twl4030_current_worker(struct work_struct *data) > > if (v < USB_MIN_VOLT) { > /* Back up and stop adjusting. */ > - bci->usb_cur -= USB_CUR_STEP; > + if (bci->usb_cur >= USB_CUR_STEP) > + bci->usb_cur -= USB_CUR_STEP; > bci->usb_cur_target = bci->usb_cur; > } else if (bci->usb_cur >= bci->usb_cur_target || > bci->usb_cur + USB_CUR_STEP > USB_MAX_CURRENT) { -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Attachment:
signature.asc
Description: Digital signature