Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp439835pxf; Thu, 8 Apr 2021 06:21:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw+cYcECPGsn8p4lucEcZUOXYm0u2X/Ajpudud2Rp+ZeVmtBulGPhNTJ5q7/pD3vd5cdsRx X-Received: by 2002:a05:6402:8c2:: with SMTP id d2mr11565643edz.4.1617888066482; Thu, 08 Apr 2021 06:21:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617888066; cv=none; d=google.com; s=arc-20160816; b=TK7vfDbfhJQ98sKHjUYiFEZDdSbQwF28+Ijit+yWLjU38I5P3KjnZQ1hnpPGvVQkkN gqFzvqnjVMmWymgrecDfI2A/EGH2JAnKdjdR3OXsmaLYUucYW9eFi5jrN9qd0KC7IFXH ao6iRPF0OLB4JSJU3RFFQhvtt3rcxtVKZdLydHsaaO/93ix6P5Vm/darfHagtV9HQ2va u897ArIE57/TGzpH2wjgGO786GzVtP1H8hz+XvP72Zm6xx9CA3GbXfGwVY5YYdbzF68V Q3PBhS+A6YmDDItA+/261hRcoadi4ZvrnLuvMGzYDldC0SsfWRLuKbG6pKRVegjrkoop 5QFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=3QYpE3d4PrURvkBeKpQki1Re0vU9aniQytZSNyiuXcM=; b=KLUxteJjVPmgCvPBOa15IreL8ZZBNTaycTo4L/+Qg3j+sDUdKic1F1IFcBK9QY5DH2 pu9fBiwx/9t8RbLUwKcoYwyeDvfttWA6NQRGsyleWtho6myYP1/GrILUT8CxKficrlRA YRBsesIz23ppIghzKNW8jXIh7hXt8DSpWfElwR5N5l4e/x4a6bRaH4BS/lRGnslu4YYM Qr7rYpQMn71+I9a6fImom0Kc7twGqKHUDAA2ZSzwDSqBdt+lcMmXcoj1RxS5yIuI0JB9 FxGbe4SOiRfFEFiscQINm+Iw4LrH/tGVWVDd4lE0JoiRfTMebHwKOtaBjti9RtR+lgKj WNFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Uh8hPpWV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q16si21168610ejd.145.2021.04.08.06.20.43; Thu, 08 Apr 2021 06:21:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Uh8hPpWV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231667AbhDHNQk (ORCPT + 99 others); Thu, 8 Apr 2021 09:16:40 -0400 Received: from mail.kernel.org ([198.145.29.99]:36550 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231255AbhDHNQ2 (ORCPT ); Thu, 8 Apr 2021 09:16:28 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id B06F461153; Thu, 8 Apr 2021 13:16:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1617887776; bh=d3QIU2csiNcJOLhdhvMefuw6/6a+Kk8J/zx9o70Jpps=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Uh8hPpWVU5FMBgvNilxKuYOwn9YjfqX36+j/9INbaLI/SFniaEjUPvTSrDSkK0jsw 0AvOzuI3LpG+S/7BIqkjUk54KQVts84ymLFz1xx7WbAl118XMuByWMXb/sA9bG6QIr A/5hCFZw3sxdlyg87QbCW6jvYuzcztYI1U9onCfqcUAXytL3EF/e1A2mlIHBywVulQ XJnpqOvT7M6LQpxGQT9P714cWxD2ncacZLCd6ASSkB8M/2E8bt3G9d4veSRKPNfCIz qB3J1YKvbnqj91qkaQ+BAsIEHuqpmEAVpXleYlOJybzM8yi8aQMNtFwLJNJXJPLi0S oRKh1qYVG+jXQ== Received: from johan by xi.lan with local (Exim 4.93.0.4) (envelope-from ) id 1lUUW4-0007Hi-FQ; Thu, 08 Apr 2021 15:16:12 +0200 From: Johan Hovold To: Greg Kroah-Hartman Cc: Oliver Neukum , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , Anthony Mallet , stable@vger.kernel.org Subject: [PATCH v2 1/3] Revert "USB: cdc-acm: fix rounding error in TIOCSSERIAL" Date: Thu, 8 Apr 2021 15:16:00 +0200 Message-Id: <20210408131602.27956-2-johan@kernel.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210408131602.27956-1-johan@kernel.org> References: <20210408131602.27956-1-johan@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This reverts commit b401f8c4f492cbf74f3f59c9141e5be3071071bb. The offending commit claimed that trying to set the values reported back by TIOCGSERIAL as a regular user could result in an -EPERM error when HZ is 250, but that was never the case. With HZ=250, the default 0.5 second value of close_delay is converted to 125 jiffies when set and is converted back to 50 centiseconds by TIOCGSERIAL as expected (not 12 cs as was claimed, even if that was the case before an earlier fix). Comparing the internal current and new jiffies values is just fine to determine if the value is about to change so drop the bogus workaround (which was also backported to stable). For completeness: With different default values for these parameters or with a HZ value not divisible by two, the lack of rounding when setting the default values in tty_port_init() could result in an -EPERM being returned, but this is hardly something we need to worry about. Cc: Anthony Mallet Cc: stable@vger.kernel.org Signed-off-by: Johan Hovold --- drivers/usb/class/cdc-acm.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 3fda1ec961d7..96e221803fa6 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -942,7 +942,6 @@ static int set_serial_info(struct tty_struct *tty, struct serial_struct *ss) { struct acm *acm = tty->driver_data; unsigned int closing_wait, close_delay; - unsigned int old_closing_wait, old_close_delay; int retval = 0; close_delay = msecs_to_jiffies(ss->close_delay * 10); @@ -950,17 +949,11 @@ static int set_serial_info(struct tty_struct *tty, struct serial_struct *ss) ASYNC_CLOSING_WAIT_NONE : msecs_to_jiffies(ss->closing_wait * 10); - /* we must redo the rounding here, so that the values match */ - old_close_delay = jiffies_to_msecs(acm->port.close_delay) / 10; - old_closing_wait = acm->port.closing_wait == ASYNC_CLOSING_WAIT_NONE ? - ASYNC_CLOSING_WAIT_NONE : - jiffies_to_msecs(acm->port.closing_wait) / 10; - mutex_lock(&acm->port.mutex); if (!capable(CAP_SYS_ADMIN)) { - if ((ss->close_delay != old_close_delay) || - (ss->closing_wait != old_closing_wait)) + if ((close_delay != acm->port.close_delay) || + (closing_wait != acm->port.closing_wait)) retval = -EPERM; else retval = -EOPNOTSUPP; -- 2.26.3