From: Trent Piepho <xyzzy@speakeasy.org>
To: linux-kernel@vger.kernel.org
Cc: linux-pci <linux-pci@vger.kernel.org>,
Matthew Wilcox <matthew@wil.cx>, Alex Chiang <achiang@hp.com>,
Trent Piepho <xyzzy@speakeasy.org>
Subject: [PATCH] PCI: Method for removing PCI devices
Date: Mon, 1 Dec 2008 06:08:09 -0800 [thread overview]
Message-ID: <1228140490-32199-1-git-send-email-xyzzy@speakeasy.org> (raw)
In-Reply-To: <Pine.LNX.4.58.0812010500330.2943@shell2.speakeasy.net>
This patch adds an attribute named "remove" to a PCI device's sysfs
directory. Writing a non-zero value to this attribute will remove the PCI
device and any children of it.
---
drivers/pci/pci-sysfs.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 9a5bdc0..fe0f6a9 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -217,6 +217,31 @@ msi_bus_store(struct device *dev, struct device_attribute *attr,
return count;
}
+static void remove_callback(void *data)
+{
+ pci_remove_bus_device((struct pci_dev *)data);
+}
+
+static ssize_t
+remove_store(struct device *dev, struct device_attribute *dummy,
+ const char *buf, size_t count)
+{
+ struct pci_dev *pdev = to_pci_dev(dev);
+ unsigned long val;
+
+ if (strict_strtoul(buf, 0, &val) < 0)
+ return -EINVAL;
+
+ if (!capable(CAP_SYS_ADMIN))
+ return -EPERM;
+
+ if (val)
+ sysfs_schedule_callback(&dev->kobj, remove_callback, pdev,
+ THIS_MODULE);
+
+ return count;
+}
+
struct device_attribute pci_dev_attrs[] = {
__ATTR_RO(resource),
__ATTR_RO(vendor),
@@ -235,6 +260,7 @@ struct device_attribute pci_dev_attrs[] = {
__ATTR(broken_parity_status,(S_IRUGO|S_IWUSR),
broken_parity_status_show,broken_parity_status_store),
__ATTR(msi_bus, 0644, msi_bus_show, msi_bus_store),
+ __ATTR(remove, S_IWUSR, NULL, remove_store),
__ATTR_NULL,
};
--
1.5.4.1
next prev parent reply other threads:[~2008-12-01 14:09 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-25 21:24 [PATCH] fakephp: Allocate PCI resources before adding the device Darrick J. Wong
2008-11-25 21:43 ` Greg KH
2008-11-26 4:46 ` Trent Piepho
2008-11-26 7:48 ` Darrick J. Wong
2008-11-26 9:56 ` Trent Piepho
2008-11-26 18:18 ` Darrick J. Wong
2008-11-26 22:23 ` Trent Piepho
2008-11-26 22:55 ` Alex Chiang
2008-11-27 1:44 ` Trent Piepho
2008-11-27 2:42 ` Matthew Wilcox
2008-11-28 10:11 ` Trent Piepho
2008-11-28 18:57 ` Matthew Wilcox
2008-11-28 21:21 ` Trent Piepho
2008-11-28 21:30 ` Matthew Wilcox
2008-12-01 1:10 ` Problems with fakephp Trent Piepho
2008-12-16 20:28 ` fixup PCI device booleans in sysfs Jesse Barnes
2008-11-28 23:18 ` [PATCH] fakephp: Allocate PCI resources before adding the device Alex Chiang
2008-12-01 13:00 ` Problems with fakephp Trent Piepho
2008-12-01 13:36 ` Trent Piepho
2008-12-01 14:08 ` Trent Piepho [this message]
2008-12-01 14:40 ` [PATCH] PCI: Method for removing PCI devices Greg KH
2008-12-01 14:08 ` [PATCH] PCI: Legacy fakephp driver Trent Piepho
2008-12-02 3:16 ` Problems with fakephp Alex Chiang
2008-12-03 4:07 ` Trent Piepho
2008-12-03 4:38 ` Alex Chiang
2008-12-03 17:22 ` Rolf Eike Beer
2008-12-03 17:43 ` Alex Chiang
2008-12-03 17:55 ` Rolf Eike Beer
2008-12-03 18:22 ` Alex Chiang
2008-12-08 21:09 ` Rolf Eike Beer
2008-11-27 1:52 ` [PATCH] fakephp: Allocate PCI resources before adding the device Darrick J. Wong
2008-11-28 9:51 ` Trent Piepho
2008-11-28 18:42 ` Rolf Eike Beer
2008-11-28 21:06 ` Trent Piepho
2008-12-01 17:08 ` Rolf Eike Beer
2008-12-16 19:33 ` Jesse Barnes
2008-12-16 20:56 ` [PATCH] fakephp: Allocate PCI resources before adding the?device Darrick J. Wong
2008-12-21 2:23 ` Trent Piepho
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1228140490-32199-1-git-send-email-xyzzy@speakeasy.org \
--to=xyzzy@speakeasy.org \
--cc=achiang@hp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=matthew@wil.cx \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®