Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4708766pxj; Wed, 12 May 2021 11:23:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyHK6EJ22zr6r+ABP3pShWJL4LvvgyF0mLxGU3NCRoBFuDMQPe4PU5Fys5dAod5TVvE0euA X-Received: by 2002:a05:6402:1a48:: with SMTP id bf8mr4214718edb.150.1620843781555; Wed, 12 May 2021 11:23:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620843781; cv=none; d=google.com; s=arc-20160816; b=Wg5ZXQQqtq4hjqJVwlZr0lgqYDlFoWe73NuosAIsS874kkqPxL4h4XCTSvQn88nsAr SVHOLF13hqPUm6A7yf/g60r6reYCw9vo95+L+KT4N7SUSH0ko6jyfDnCdMIEeomdUOmW ObXpqRAwl5QI8qRp+nBdqFuBiJaiOJ+5bE4DiklStTflGHxHKPKCcR1lxIxoMvsP42bb qr0Fn4u0RIrfS7hy/CKdEVXYpmO9seHIC2OxOE4ZEj5xk/AoTrv0cqsw2/6j/NiYkNL4 MAZ9uSFEAKr0Qo9spospDjQjaxWXXN7FTHOFeUGKV+jwhMEoP6H5/Ax/L6xMrp7RXNF5 xQ2A== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=QfVILOJlQxPAzXXJxyizz1cnmbpZ7wfVKrv+qorOpTQ=; b=T5QCwzjSXosMivht9TbxocwCO+1Luv97otnasHean0BuXDqHPv111oep7dR6isWwFc FN1hlI97pLn7kvvNMQXUdbintjPSha/l/4i9v/r97hF9XY/LoM+duYta6fS+fe9ClFug SnavZWrv1tImjReqniKdtTW/SdPRKACTF5DQyQ82ttt9Q+U3b6OoG8zrF7Nsbb/ztIv0 Ly6kFcrdEnuiyOBuq2sKJ4AQkUxLdbx3vwYQx4czmo/OJTutqcWMnOsgOrXcVaWTIHS+ GlisuzrpK6jguseW8vKWYKkSQTiR2xzWFGzAKsWEP2A+8aU3eG1OApnZlaQe1h+86GJN 3U8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Vf5BJUNu; 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=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w21si657152ejy.240.2021.05.12.11.22.37; Wed, 12 May 2021 11:23:01 -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=@linuxfoundation.org header.s=korg header.b=Vf5BJUNu; 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=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1354113AbhELSQj (ORCPT + 99 others); Wed, 12 May 2021 14:16:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:44850 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241277AbhELQ07 (ORCPT ); Wed, 12 May 2021 12:26:59 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id A488661CB2; Wed, 12 May 2021 15:51:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620834669; bh=UjnAqzkJ/7fV397oV7mifUaEZkXARNZXHKfnwtLGrE4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Vf5BJUNuvn2P5bKJj1cuI66snwI6l1yW3UOv+Sc1vSrv3hqzS7+Rx2awp2oiffN8x nYhC3qpC7DSJCeroGC5T58G061nHOPp/KEddFgN6iqn/z4vFxkjnKhfqbVhv9HzyJq jh+mSES1TeJN7dDKylq01tOIc+jfvWyMzfktNWzQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Anthony Mallet , Oliver Neukum , Johan Hovold Subject: [PATCH 5.12 007/677] Revert "USB: cdc-acm: fix rounding error in TIOCSSERIAL" Date: Wed, 12 May 2021 16:40:53 +0200 Message-Id: <20210512144837.461667860@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144837.204217980@linuxfoundation.org> References: <20210512144837.204217980@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Johan Hovold commit 729f7955cb987c5b7d7e54c87c5ad71c789934f7 upstream. 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 Acked-by: Oliver Neukum Signed-off-by: Johan Hovold Link: https://lore.kernel.org/r/20210408131602.27956-2-johan@kernel.org Signed-off-by: Greg Kroah-Hartman --- drivers/usb/class/cdc-acm.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) --- 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_st { 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_st 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;