Patch "iio: core: Fix IIO_VAL_FRACTIONAL_LOG2 for negative values" has been added to the 4.10-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
iio: core: Fix IIO_VAL_FRACTIONAL_LOG2 for negative values
to the 4.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
iio-core-fix-iio_val_fractional_log2-for-negative-values.patch
and it can be found in the queue-4.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
7fd6592d1287046f61bfd3cda3c03cd35be490f7Mon Sep 17 00:00:00 2001
From: Nikolaus Schulz <[email protected]>
Date: Fri, 24 Mar 2017 13:41:51 +0100
Subject: iio: core: Fix IIO_VAL_FRACTIONAL_LOG2 for negative values
From: Nikolaus Schulz <[email protected]>
commit 7fd6592d1287046f61bfd3cda3c03cd35be490f7 upstream.
Fix formatting of negative values of type IIO_VAL_FRACTIONAL_LOG2 by switching from do_div(), which can't handle negative numbers, to div_s64_rem(). Also use shift_right for shifting, which is safe with negative values.
--- drivers/iio/industrialio-core.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
drivers/iio/industrialio-core.c +3 -4
@@ -608,10 +608,9 @@ static ssize_t __iio_format_value(char * tmp0 = (int )div_s64_rem (tmp,1000000000 , &tmp1);return snprintf (buf, len,"%d.%09u" , tmp0,abs (tmp1));case IIO_VAL_FRACTIONAL_LOG2 : - tmp = (s64 )vals[0 ] *1000000000LL >> vals[1 ]; - tmp1 =do_div (tmp,1000000000LL ); - tmp0 = tmp; -return snprintf (buf, len,"%d.%09u" , tmp0, tmp1); + tmp =shift_right ((s64 )vals[0 ] *1000000000LL , vals[1 ]); + tmp0 = (int )div_s64_rem (tmp,1000000000LL , &tmp1); +return snprintf (buf, len,"%d.%09u" , tmp0,abs (tmp1));case IIO_VAL_INT_MULTIPLE : {int i;
Patches currently in stable-queue which might be from [email protected] are
queue-4.10/iio-core-fix-iio_val_fractional_log2-for-negative-values.patch