Received: by 2002:ab2:710b:0:b0:1ef:a325:1205 with SMTP id z11csp1893995lql; Wed, 13 Mar 2024 11:03:53 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWyQi7s2n6jBMVDSGWcQ94nQh8tMUN6OSgAkWKS7iJ4va2rY6qRHEZaQRzqEiamL2qsXQQVbSo9/QUg+d8OF+/DSG42If4qZbTptrSg6Q== X-Google-Smtp-Source: AGHT+IHQJ7tqFPC/z62laWaPd6wcZUITgLyA1mohJKbSaJtgSLkdvnMjchRstPmnBORqFS4pyfhe X-Received: by 2002:a05:620a:1a8c:b0:788:7485:1656 with SMTP id bl12-20020a05620a1a8c00b0078874851656mr818940qkb.27.1710353033237; Wed, 13 Mar 2024 11:03:53 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1710353033; cv=pass; d=google.com; s=arc-20160816; b=sCUuSz9gnPLvb65M3A+LI2wzllbsttylxzRAWMxR4HS52grvS/qbAINyq2XnOOEbpe HBu2BNvvCaQTTtAFLD9jQG900jHfGlpA4FYP3fBkNzKnWJgXfeDMTUa6KjhxEGCNn/wL SPWk5T2E1XJ3QnWgw+oc/kb13G2/LPFg3JXA+H14j79i8wgmgNcikXAF2hf5GN+Omt1C P0wKSNTcMMMddrBy5ELSUfJQoQy7arYVgt89WvzJqTS8izWulVq3cgVM0wjBoancVeCJ O/RUEXObT+Mu5z6523xdD09DD5wVpwxsH05EFbYd+/G55zKvoNCxxRy9DBH50HIkfij/ JWpQ== 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=+3G8iOjf4sU7lfl3qiWk/VVyXopH+VgtbhqfkKAHP/A=; fh=Q3mXMmV4A1pi7D4LJ1eVG2lobrmAt7Z9OcoaFzeOPVg=; b=ifgcZk/5c5fTpJc1lF0JBTmntNwMi7rjAPCWz3JEHEdIJqYiFpPpqzczU3fjZTWoU9 WpuGQ9QvvVB7hIYY30DwWY3xNOPBVNzlj3hI9C2j4WIt6ZLXHxC5jIASpcjZaY1ntxjd 5jOW2wZnaIBrF+XCFZfrWtZrpkmwKbMuySepWo4jfc6gjyIe+TI93hoXmFLdNe6FmLly wAuguIrAt2Q8WmwBXRXUatJqLJ/uqdGLOaiDitn14evWXrMX8citRhOlegwSmdsN3a9U 1zpkO5/FyRPSj4LmOt+Ugxy90VQoJUzmJ9QpviwO9xa92zz/V4SNKunB1/oqG0KafPVT rUQA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=UZqZtbMR; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-102125-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-102125-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id wl11-20020a05620a57cb00b0078833ee0b5esi10291321qkn.530.2024.03.13.11.03.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Mar 2024 11:03:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-102125-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=UZqZtbMR; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-102125-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-102125-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 ny.mirrors.kernel.org (Postfix) with ESMTPS id F08C01C239FF for ; Wed, 13 Mar 2024 18:03:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0107A6CDA8; Wed, 13 Mar 2024 17:02:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="UZqZtbMR" 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 164336BFCE; Wed, 13 Mar 2024 17:02:20 +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=1710349341; cv=none; b=qamypcGOMtjJ4TOmYlz2L11agUdM1dT69swTUYeqpklBSmpjy43s9EOs8GBCC10/Dur4sXprEfReJv5oQIqUXGHZ0mcEs/gkII481UZXh5MoYIphLp/aw2YqIVr4dS1Ji9lxQ34Fxb74A0f7huYjDZDipxwvsSA0YUNa415vQOU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710349341; c=relaxed/simple; bh=1PzYjJECdyxJFAvQj2oALN2vIBxJLj4yYEea3o4T+TI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MGf49zIuGBXep/ilctBk+tvsyYg6p8ECloO/Dzmc0JzO+TQqPAnNZ6obyGuN7P8iul37Ozcc3LnsNmUj/RtWU/EO4CrduLb2tMyUc8WnTt141NFeYuzMw8qiW2iPm2RICeLbNd3WSgBNb6i279YzpVhgmRmJHbcfepGaA+aGLxs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=UZqZtbMR; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id CB0E2C43394; Wed, 13 Mar 2024 17:02:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1710349340; bh=1PzYjJECdyxJFAvQj2oALN2vIBxJLj4yYEea3o4T+TI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UZqZtbMRDYMO/LX0YVIGcSvujNAT8uyDGnM85ZR/lfHVsq/vgmGf2+O41fiqZtcB9 IfbbkFYMzq3jsHo6q0lYMK88eWOZfhjuSrk3RoQ9jruJYCBSmxgmbddKVsYjaYhfOR AyVDS4dA1pgx5IclCcL+s760TNyiMtiFcC4mR2Q7YQpaQaUtdyTtnQIYpVy2Jw5d+3 5pgHb+dmOXWm0VGEofRHRZEI0hQaxYM7+gHxS8/J21abjBMClirbQ6GSutMWbGL5Lb L5yg/sZ8lhazOA0QkzpRD80Zbef/zNae+Rs3A1zUiU/5BggoJ0Y6LWo50k4fU60vQM nFeDdICoejoIw== 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 5.4 05/51] net: lan78xx: fix runtime PM count underflow on link stop Date: Wed, 13 Mar 2024 13:01:26 -0400 Message-ID: <20240313170212.616443-6-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240313170212.616443-1-sashal@kernel.org> References: <20240313170212.616443-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/v5.x/stable-review/patch-5.4.272-rc1.gz X-KernelTest-Tree: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git X-KernelTest-Branch: linux-5.4.y X-KernelTest-Patches: git://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git X-KernelTest-Version: 5.4.272-rc1 X-KernelTest-Deadline: 2024-03-15T17:02+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 42fe7753ff76d..b0efaf56d78f3 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -2905,7 +2905,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