Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp36896ybl; Thu, 22 Aug 2019 19:15:32 -0700 (PDT) X-Google-Smtp-Source: APXvYqwkxN1fOZgF3bO8io9qqw5SuzH29r4Gt31QMb1EribaFQXOOlDdy97qFtcT2XzGnWFsPqCC X-Received: by 2002:a17:90a:eb05:: with SMTP id j5mr2821167pjz.102.1566526532375; Thu, 22 Aug 2019 19:15:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566526532; cv=none; d=google.com; s=arc-20160816; b=y+RANeTaS3X10A7Kk+/q7Hix/uaKJetEH4CKVoJZnNfmhDjDq/Sd4tWdP5nM3uAzeY JKiUaKqBRKHvKK0+gwkLRITYX/3zxVRVE6w38X0gl1g4ajqO8fMIoIIWTDfX48VuvSHN myGRDd11UKfCYERgUheOwZH1nCO0sRb9rDbe739vt3csllR8qKZKhKTjFfbbdLQaFFFb pycWCkqwB8kDJZuXji2zC5l7WD68+gG3xUimh8GY6KvlcVuhtJz9omlC9m9sasKNp83t oJy3Z6mzBoVa8Wy+8u6jIkDT8x4f1wQfoX4N/SJ0lczpjlU0Zjqdh623q6/7bMdkZJN7 GV2g== 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=qKV8ldSmHq8kx5BioY1Nvn2SCdZMOGV+T1NQDvUKfiI=; b=vhWYh5ctl+7OGlphChzeqCdPoW3eF7OTwy3zKkhLKpuILAg+ivuU5wpIoV1FikK1D5 p675vefMtRmMa86tC88EO/YJanZk8lkZ9Kc3FunGh4CBmOdH2UddVrAL08+Wwwhxpw1g GMUxQmAyrbFWYcGMWACsuJf3SJU4LB6DUJA7fpSNhitXjiXAphkMklLdod/CuSCZf+qt SIhGk2O+XtTkbM7XXL+S3eL0CyggzZr1vX8xkkn86TyU5MMYfdUfohDI5vWqg5h8JFyD QuX2ebiTISLXpM2xBZrb3rJU9vVfvzlZo0s9Ex+vUFpeSq8fQaoUh4HHYj8V2oejUeQd A6tg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=U1cuA3pC; 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 y7si788904pgp.409.2019.08.22.19.15.17; Thu, 22 Aug 2019 19:15:32 -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=U1cuA3pC; 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 S2392025AbfHVR11 (ORCPT + 99 others); Thu, 22 Aug 2019 13:27:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:50226 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404540AbfHVRZ5 (ORCPT ); Thu, 22 Aug 2019 13:25:57 -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 639E82341C; Thu, 22 Aug 2019 17:25:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1566494756; bh=seQynoquBhsfEosIOR5PXp3K4/WUQdH/99onwZUV/c0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=U1cuA3pCNB9Ym7IY05W+W4x3IrODtpSx9HYqi8XoDW8cgMtGyMfLGw57C2X3IJwq+ o9ESguAgHBZiKnA8Z6jrToEklMhOO/A2Ol9SeK+uuOry2I6PmS8rCyPNDcVIKZ3Qxx CrdRhzOtXrr8bBCOpwxbOhxoNI2eHKb+y4oU+x8k= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ian Abbott Subject: [PATCH 4.19 57/85] staging: comedi: dt3000: Fix rounding up of timer divisor Date: Thu, 22 Aug 2019 10:19:30 -0700 Message-Id: <20190822171733.691612184@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190822171731.012687054@linuxfoundation.org> References: <20190822171731.012687054@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 @@ -342,9 +342,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++) { @@ -358,7 +358,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) {