Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp1036514ybi; Fri, 2 Aug 2019 08:18:38 -0700 (PDT) X-Google-Smtp-Source: APXvYqyRPBC/VrEtIjCWA8RcDxDLwVtnpKz7xUR68VC1CT08ezxxnvQlwOjbfbvQdcuIj2YGE3E0 X-Received: by 2002:aa7:92cb:: with SMTP id k11mr60971189pfa.126.1564759118120; Fri, 02 Aug 2019 08:18:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564759118; cv=none; d=google.com; s=arc-20160816; b=OoVG4F2PoSDSmWyPQK/KqoQ+Zu9zdNTTz80lUvAch6ROQK/x0hEkuI4lIAty2vcdOn qcbf+IQyVrcN8BwOjd/VCAcjclYFcBoJzXtPjJtH8KbbQF0uZEwjY/6/47igZDVTkdGk Btp/2eDtH5sjqcMNlYltbUHBR0reqogFYVnmWAa0H9eqp3hwa/dWBivmLY/5b22P/HUD UZ4QGEhxGefZZQPa+130LwT3hMZ8mXZKMBryhPl0qbBoUGGN6GgcL8/MVlXK0KKm5GO8 LDxIahqQOyxjrvnNviuMGT4+m115tH85f5X2op2b4Lee5Km2PaljPguwRY0mGcp/HyF0 105Q== 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=1IrywxQrD+ffNSaeU2eXoCXMuI9YjBnHhv2nOIgI4a0=; b=J7VEeoJHbav0teBTHhUIYOGMPnGL3gAOcLXVqnf//tLa6CsJec/hPewErfJODMS5tn Yz7aGvYdl/nDuzloow6Z9IzgugAQk/3abpUl0s7zpt/+W8Q6UurAUUa8tYVBGoIUvedn V5rCYj46oW/qZYDVMO53HuJ9EXHeCLSI1a5nDvGq8GeM+zW4S634ova7ctKYHEQvf2TQ qPe+/ZyH7HSKnnYqSgsoeMoJwN1uNIe+4xr/SwS01EIrGFzHZEO6JbUoaGhShW+aqVLG dxN7JkOLrxAhSTVBYwshH5uRlkqjyfniQJLBmFeVdAnurby9vN0Eb6BkeAefQIV5V7NK HzzA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=MyAxhf70; 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 x184si26094544pfb.24.2019.08.02.08.18.22; Fri, 02 Aug 2019 08:18:38 -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=MyAxhf70; 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 S2391383AbfHBJel (ORCPT + 99 others); Fri, 2 Aug 2019 05:34:41 -0400 Received: from mail.kernel.org ([198.145.29.99]:34646 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391367AbfHBJej (ORCPT ); Fri, 2 Aug 2019 05:34:39 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 DF2B1217D6; Fri, 2 Aug 2019 09:34:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1564738479; bh=zulbU9dXVtXT1AOE50P45ok6/U0P6cq2pq+G5ifMQ94=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MyAxhf70Wb+dKt/0C1e6b3myHddy9ALslmioft0WoYnR9KXzJO41D2+Kecf2Mmv5F prQPyze1DvzdxzeIgtoK3nigtdgCKkQLwB8sW8uwpsucZ1+jI7R64KmSURFZ0zRGNI OaF3OrsVgUJx1kfOX7DIwCogqvEw8Fhne30hpji4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Marek Vasut , Bjorn Helgaas , Geert Uytterhoeven , Phil Edworthy , Simon Horman , Tejun Heo , Wolfram Sang , Sasha Levin Subject: [PATCH 4.4 120/158] PCI: sysfs: Ignore lockdep for remove attribute Date: Fri, 2 Aug 2019 11:29:01 +0200 Message-Id: <20190802092228.312209239@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190802092203.671944552@linuxfoundation.org> References: <20190802092203.671944552@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 [ Upstream commit dc6b698a86fe40a50525433eb8e92a267847f6f9 ] With CONFIG_PROVE_LOCKING=y, using sysfs to remove a bridge with a device below it causes a lockdep warning, e.g., # echo 1 > /sys/class/pci_bus/0000:00/device/0000:00:00.0/remove ============================================ WARNING: possible recursive locking detected ... pci_bus 0000:01: busn_res: [bus 01] is released The remove recursively removes the subtree below the bridge. Each call uses a different lock so there's no deadlock, but the locks were all created with the same lockdep key so the lockdep checker can't tell them apart. Mark the "remove" sysfs attribute with __ATTR_IGNORE_LOCKDEP() as it is safe to ignore the lockdep check between different "remove" kernfs instances. There's discussion about a similar issue in USB at [1], which resulted in 356c05d58af0 ("sysfs: get rid of some lockdep false positives") and e9b526fe7048 ("i2c: suppress lockdep warning on delete_device"), which do basically the same thing for USB "remove" and i2c "delete_device" files. [1] https://lore.kernel.org/r/Pine.LNX.4.44L0.1204251436140.1206-100000@iolanthe.rowland.org Link: https://lore.kernel.org/r/20190526225151.3865-1-marek.vasut@gmail.com Signed-off-by: Marek Vasut [bhelgaas: trim commit log, details at above links] Signed-off-by: Bjorn Helgaas Cc: Geert Uytterhoeven Cc: Phil Edworthy Cc: Simon Horman Cc: Tejun Heo Cc: Wolfram Sang Signed-off-by: Sasha Levin --- drivers/pci/pci-sysfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index 5fb4ed6ea322..6ac6618c1c10 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c @@ -371,7 +371,7 @@ static ssize_t remove_store(struct device *dev, struct device_attribute *attr, pci_stop_and_remove_bus_device_locked(to_pci_dev(dev)); return count; } -static struct device_attribute dev_remove_attr = __ATTR(remove, +static struct device_attribute dev_remove_attr = __ATTR_IGNORE_LOCKDEP(remove, (S_IWUSR|S_IWGRP), NULL, remove_store); -- 2.20.1