summaryrefslogtreecommitdiff
path: root/include/linux/sched.h
diff options
context:
space:
mode:
authorBernd Porr <mail@berndporr.me.uk>2019-11-18 23:07:59 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-11-28 18:26:27 +0100
commit4e23e97241b70f56c0d4478ef92e6cc290944214 (patch)
treeeae6d7c6c25f5851417893b1116ee53aa9a20628 /include/linux/sched.h
parentba9e9a9e1ef64f0bb62e86721a146a87b9bdd116 (diff)
staging: comedi: usbduxfast: usbduxfast_ai_cmdtest rounding error
commit 5618332e5b955b4bff06d0b88146b971c8dd7b32 upstream. The userspace comedilib function 'get_cmd_generic_timed' fills the cmd structure with an informed guess and then calls the function 'usbduxfast_ai_cmdtest' in this driver repeatedly while 'usbduxfast_ai_cmdtest' is modifying the cmd struct until it no longer changes. However, because of rounding errors this never converged because 'steps = (cmd->convert_arg * 30) / 1000' and then back to 'cmd->convert_arg = (steps * 1000) / 30' won't be the same because of rounding errors. 'Steps' should only be converted back to the 'convert_arg' if 'steps' has actually been modified. In addition the case of steps being 0 wasn't checked which is also now done. Signed-off-by: Bernd Porr <mail@berndporr.me.uk> Cc: <stable@vger.kernel.org> # 4.4+ Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Link: https://lore.kernel.org/r/20191118230759.1727-1-mail@berndporr.me.uk Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/sched.h')
0 files changed, 0 insertions, 0 deletions