Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1612434ybl; Thu, 22 Aug 2019 18:11:09 -0700 (PDT) X-Google-Smtp-Source: APXvYqyug8V5ZY85NBmEda5tmt6hxf3376mZzMbIcj4+/Z1OyJwNExTeN/HL1FWZE4aCi3vvmlPf X-Received: by 2002:aa7:8a97:: with SMTP id a23mr2192358pfc.117.1566522669428; Thu, 22 Aug 2019 18:11:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566522669; cv=none; d=google.com; s=arc-20160816; b=hJUal931XSRIA3luY6PvOwhToWz5ObYZGRkGnR5fgz2BPGnctrs2m83TT1G58usdl6 oJl3i9ehr//CjBUOGnWjUWlnaISRteoqusCRCqKaJIbYOpk9ov0O3NNihHr1WwIqzSq4 FeIaYXhihRt1UhQHcXQmn3x6G6Ydn3vav7EA8bCKctLdoKcbZqSjlLeAD470EiA5uq1I gwSByxu11MypQHeK1O0ffBPNhgAwSI2q+LGgsCWyBuK8GqzPctxv0lK3OPMdPXUSDM1c aiepKRk0vrHscYBdBYqryKCNEBrcVIvhlEO+iHryDT6OCBVU6ZsaakOBASmlFUzthh5j gP+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=7E2s124RR/67TmrU07WjwFVLaAhNxnWvDfj53X6ZL4I=; b=PHoBIONo1w6/8PHucGqEKCwwsNy6HRNIlyBy7nUFfX0oOJi1CYNuuyywkZb3MRwF3f OUp7ExGtf6H2flmO1Zd8NjVnqI0TjENatGV29B13INbcr9N2V39sFfS6dgWS2jix9AcF FnIpZt0TNtE+S60pu+7wqDIR0Yf0fRVXYsHNBn+4XYKEvVTBr6gZ7cBzy5VHWvNzuePr 0Dv/GMcUOPOG7BF4EvsBhCMal8BruvVXUlGPx0sJLlLGHO/M0PvahGi7e8BlAgXtWKXh /dHGog4U3qgx/cM1VueHRstPM6S8WYRYiOcLmvH54isRKeRuIvrzc2DAimIHSA3nuN5j 90WQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=q2qHo8id; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t17si673286pgv.54.2019.08.22.18.10.53; Thu, 22 Aug 2019 18:11:09 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=q2qHo8id; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404225AbfHVRYc (ORCPT + 99 others); Thu, 22 Aug 2019 13:24:32 -0400 Received: from mail.kernel.org ([198.145.29.99]:45318 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404110AbfHVRYL (ORCPT ); Thu, 22 Aug 2019 13:24:11 -0400 Received: from localhost (wsip-184-188-36-2.sd.sd.cox.net [184.188.36.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 58C3C23400; Thu, 22 Aug 2019 17:24:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1566494650; bh=Y/+XWBGaeuRRuumbxhD/nqhpYXI4L+3AvQCbGWM+bPQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=q2qHo8idWKjfrSMVB/jW9qsXJo9AHnpE638btQ1gBC4C2fmXXktmlg8j/mjwUGZg6 DlzIF3tH58gL1HOBr+OXxJHnTvOGWQ/i6YyaDZR3u4d2bbBXZdjiV3e6DDSRqB1hiV h/qpq70LeV7dsDSIud5H3bU3xx8Nx17NuaNTfTVA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ian Abbott Subject: [PATCH 4.9 082/103] staging: comedi: dt3000: Fix rounding up of timer divisor Date: Thu, 22 Aug 2019 10:19:10 -0700 Message-Id: <20190822171732.302698020@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190822171728.445189830@linuxfoundation.org> References: <20190822171728.445189830@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ian Abbott commit 8e2a589a3fc36ce858d42e767c3bcd8fc62a512b upstream. `dt3k_ns_to_timer()` determines the prescaler and divisor to use to produce a desired timing period. It is influenced by a rounding mode and can round the divisor up, down, or to the nearest value. However, the code for rounding up currently does the same as rounding down! Fix ir by using the `DIV_ROUND_UP()` macro to calculate the divisor when rounding up. Also, change the types of the `divider`, `base` and `prescale` variables from `int` to `unsigned int` to avoid mixing signed and unsigned types in the calculations. Also fix a typo in a nearby comment: "improvment" => "improvement". Signed-off-by: Ian Abbott Cc: stable Link: https://lore.kernel.org/r/20190812120814.21188-1-abbotti@mev.co.uk Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/drivers/dt3000.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) --- a/drivers/staging/comedi/drivers/dt3000.c +++ b/drivers/staging/comedi/drivers/dt3000.c @@ -351,9 +351,9 @@ static irqreturn_t dt3k_interrupt(int ir static int dt3k_ns_to_timer(unsigned int timer_base, unsigned int *nanosec, unsigned int flags) { - int divider, base, prescale; + unsigned int divider, base, prescale; - /* This function needs improvment */ + /* This function needs improvement */ /* Don't know if divider==0 works. */ for (prescale = 0; prescale < 16; prescale++) { @@ -367,7 +367,7 @@ static int dt3k_ns_to_timer(unsigned int divider = (*nanosec) / base; break; case CMDF_ROUND_UP: - divider = (*nanosec) / base; + divider = DIV_ROUND_UP(*nanosec, base); break; } if (divider < 65536) {