Received: by 2002:ab2:710b:0:b0:1ef:a325:1205 with SMTP id z11csp1851806lql; Wed, 13 Mar 2024 09:50:04 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCW8n9s9db9bpFIwrtNAYN9VUWfiWlNEZkrnuKNsgc6CbmtiHk03746h2z7iJUrGy3zOnsgVh41MTd8e6F6JHT05XAV29Jds22rcfgO/uw== X-Google-Smtp-Source: AGHT+IH9nCh8KqvqWzNC9o8UyEJSOUwX/ghICRITxmPRFqTt97XUenv45J+sqExVvj4oZL1HVHXk X-Received: by 2002:a17:906:aed1:b0:a46:651a:724e with SMTP id me17-20020a170906aed100b00a46651a724emr889607ejb.54.1710348604525; Wed, 13 Mar 2024 09:50:04 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1710348604; cv=pass; d=google.com; s=arc-20160816; b=LdRMMnR2Kny8nLXX7gQ6EgzT0TiPk1Iz2LLz6HhpBz25kbWPwnFwxhnjMU1D6Y/Bqv nYOK7kGeaVNHG2K3ATnWqhGSMKXS3FbkZIlfTDKraXQ9XTa1IrAS1zjwGvLny7Wr7uct 1fwVZ9A9oIbctBqDFOncmZmt4uWT71an3QN562aKCMUuMV1Y4A2wG0mlxQcbOw0qMlwx TCj2AiWAVkWCm9qbpc2PoRtjj8Z5P1lyNJAAUgxONHPEwj0dE7natWj2XKGNetlSN4lw 4LKlT8Gi+pE4T/J3dFS0Wh6ypFcVBkymIANsmQ/Ia/dkWtuKKywY3NX2z4Y+oUJHxyO6 ly3Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=Am+RfDIisgGkgQenLTh//5ruPSLt1bQt198I/0Aoses=; fh=Q3mXMmV4A1pi7D4LJ1eVG2lobrmAt7Z9OcoaFzeOPVg=; b=Pvaz7TcjBcqJ2S7vKq3yDHl8bXDgig7E8mzL3XfvlWd+H58111opALD7jVJ6McllVg Ex04ficzXKo1eiz5rGWAGCRTqj02dxh6i/1K9X1fnVn3sA9X/GZ9pJWDfcKR3MpoMXCL OFfaufy9lZU974o3NJPoM1zquzUuWAhqAdD0DDUuTNl/p27e0hVEQu9fKzFcM/eDXc6b SqcZTSHV865KNgIIPdZS7azJMgb9zBJG+MoRhSGdCaJhhYVJok3LTYGAZv7zhA1PMezb S7tWxk6DiPPRHXdfBmDIpkJD2Fgj9AhYjB5q40lqY60YeZsfCtVYMXcZQ7nWBfEYW7Jw LoCg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=IrRNcVkm; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-101813-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-101813-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id uz12-20020a170907118c00b00a464bfa5d29si1333343ejb.8.2024.03.13.09.50.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Mar 2024 09:50:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-101813-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=IrRNcVkm; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-101813-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-101813-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 397C51F21AC0 for ; Wed, 13 Mar 2024 16:50:04 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B427D5F465; Wed, 13 Mar 2024 16:37:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="IrRNcVkm" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CC4825EE69; Wed, 13 Mar 2024 16:37:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710347844; cv=none; b=XlT78yNTyb+mvPzWXGnrQR4yBKu+JVVgIV2qxuU+9yvbfDZcRuttePx8pDDHhybNwmSpvp5hIiKRBLSkM/N47E3IUSc8WwTntFBqygDAGbkUuzxdPkZRdQJ9Oac4CcTOy60XzE8+kGoiM0GCBa9pTZ3nOlOab48vuKIzCRnzUlg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710347844; c=relaxed/simple; bh=/XxBwg6gz3r1mMORyGr5xbaCyD2blV6a+6Ffh+orcgE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oPOanlF6539Q6yGYl1dkPm7uH8OfEIt5ZFVP+4kJqyoNrNhEEA+/+B0qDBEgYwQEY7B/YPhpKSjxrrF7gabbfhJF+5gf+p+kCM4YrZ1crdNJ8bjLaHFAZrD7IP/KgBu5MXNm1UvEe+usBTlPGXTjtxzihHOxpwJAXKCBm4JluqM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=IrRNcVkm; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7EA4AC43390; Wed, 13 Mar 2024 16:37:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710347843; bh=/XxBwg6gz3r1mMORyGr5xbaCyD2blV6a+6Ffh+orcgE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=IrRNcVkmsizEjgzgDaG3MoqTnchrqBc2EY1NhHG6kFFZLn1ool+bi7qsT6xO/cg5D dUHpE2tLVrq1iFsFFfwau/9mEdDG8eyaMks+NH2/uRY+vNeg5ywI9T/V/ukCIiU7yd GNn4oh1CcpO8AGvzlY3WfsmGoVY2J/HA+XU6YBk3MytDo1BjcLOfR9vGuM/O3/MHfM H5R3Mw4nf0LKv947bvwT/I1X/8e5QE5NMMfGzIkbL5vjWSte40oMr2ti8AwJtGoDHN R/5Zbno4+dve9fR0aYXmjO++2tpw7H/5pjUnNeNtva/zfJmeDHKDCPmE8DWfEMvmFc D7ERZulSk5KZw== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Oleksij Rempel , Jiri Pirko , "David S . Miller" , Sasha Levin Subject: [PATCH 6.6 10/60] net: lan78xx: fix runtime PM count underflow on link stop Date: Wed, 13 Mar 2024 12:36:17 -0400 Message-ID: <20240313163707.615000-11-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240313163707.615000-1-sashal@kernel.org> References: <20240313163707.615000-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-KernelTest-Patch: http://kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.6.22-rc1.gz X-KernelTest-Tree: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git X-KernelTest-Branch: linux-6.6.y X-KernelTest-Patches: git://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git X-KernelTest-Version: 6.6.22-rc1 X-KernelTest-Deadline: 2024-03-15T16:36+00:00 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit From: Oleksij Rempel [ Upstream commit 1eecc7ab82c42133b748e1895275942a054a7f67 ] Current driver has some asymmetry in the runtime PM calls. On lan78xx_open() it will call usb_autopm_get() and unconditionally usb_autopm_put(). And on lan78xx_stop() it will call only usb_autopm_put(). So far, it was working only because this driver do not activate autosuspend by default, so it was visible only by warning "Runtime PM usage count underflow!". Since, with current driver, we can't use runtime PM with active link, execute lan78xx_open()->usb_autopm_put() only in error case. Otherwise, keep ref counting high as long as interface is open. Fixes: 55d7de9de6c3 ("Microchip's LAN7800 family USB 2/3 to 10/100/1000 Ethernet device driver") Signed-off-by: Oleksij Rempel Reviewed-by: Jiri Pirko Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/usb/lan78xx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 8b1e1e1c8d5be..921ae046f8604 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -3137,7 +3137,8 @@ static int lan78xx_open(struct net_device *net) done: mutex_unlock(&dev->dev_mutex); - usb_autopm_put_interface(dev->intf); + if (ret < 0) + usb_autopm_put_interface(dev->intf); return ret; } -- 2.43.0