Commit bb7006cb authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

PCI Hotplug: created /proc/bus/pci/slots for pcihpfs to be mounted on.

proc_bus_pci_dir had to be exported for this to work properly.
parent 371a77da
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
#include <linux/namei.h> #include <linux/namei.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/dnotify.h> #include <linux/dnotify.h>
#include <linux/proc_fs.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include "pci_hotplug.h" #include "pci_hotplug.h"
...@@ -113,6 +114,12 @@ static char *pci_bus_speed_strings[] = { ...@@ -113,6 +114,12 @@ static char *pci_bus_speed_strings[] = {
"133 MHz PCIX 533", /* 0x13 */ "133 MHz PCIX 533", /* 0x13 */
}; };
#ifdef CONFIG_PROC_FS
extern struct proc_dir_entry *proc_bus_pci_dir;
static struct proc_dir_entry *slotdir = NULL;
static const char *slotdir_name = "slots";
#endif
static struct inode *pcihpfs_get_inode (struct super_block *sb, int mode, int dev) static struct inode *pcihpfs_get_inode (struct super_block *sb, int mode, int dev)
{ {
struct inode *inode = new_inode(sb); struct inode *inode = new_inode(sb);
...@@ -1265,6 +1272,11 @@ static int __init pci_hotplug_init (void) ...@@ -1265,6 +1272,11 @@ static int __init pci_hotplug_init (void)
goto exit; goto exit;
} }
#ifdef CONFIG_PROC_FS
/* create mount point for pcihpfs */
slotdir = proc_mkdir(slotdir_name, proc_bus_pci_dir);
#endif
info (DRIVER_DESC " version: " DRIVER_VERSION "\n"); info (DRIVER_DESC " version: " DRIVER_VERSION "\n");
exit: exit:
...@@ -1274,6 +1286,11 @@ static int __init pci_hotplug_init (void) ...@@ -1274,6 +1286,11 @@ static int __init pci_hotplug_init (void)
static void __exit pci_hotplug_exit (void) static void __exit pci_hotplug_exit (void)
{ {
unregister_filesystem(&pcihpfs_type); unregister_filesystem(&pcihpfs_type);
#ifdef CONFIG_PROC_FS
if (slotdir)
remove_proc_entry(slotdir_name, proc_bus_pci_dir);
#endif
} }
module_init(pci_hotplug_init); module_init(pci_hotplug_init);
......
...@@ -371,7 +371,7 @@ static struct seq_operations proc_bus_pci_devices_op = { ...@@ -371,7 +371,7 @@ static struct seq_operations proc_bus_pci_devices_op = {
show: show_device show: show_device
}; };
static struct proc_dir_entry *proc_bus_pci_dir; struct proc_dir_entry *proc_bus_pci_dir;
/* driverfs files */ /* driverfs files */
static ssize_t pci_show_irq(struct device * dev, char * buf, size_t count, loff_t off) static ssize_t pci_show_irq(struct device * dev, char * buf, size_t count, loff_t off)
...@@ -621,5 +621,6 @@ EXPORT_SYMBOL(pci_proc_attach_device); ...@@ -621,5 +621,6 @@ EXPORT_SYMBOL(pci_proc_attach_device);
EXPORT_SYMBOL(pci_proc_detach_device); EXPORT_SYMBOL(pci_proc_detach_device);
EXPORT_SYMBOL(pci_proc_attach_bus); EXPORT_SYMBOL(pci_proc_attach_bus);
EXPORT_SYMBOL(pci_proc_detach_bus); EXPORT_SYMBOL(pci_proc_detach_bus);
EXPORT_SYMBOL(proc_bus_pci_dir);
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment