Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit db9edfd7 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Trivial manual merge fixup for usb_find_interface clashes.
parents 631b0347 fd586bac
Loading
Loading
Loading
Loading
+16 −15
Original line number Diff line number Diff line
@@ -115,7 +115,7 @@ Current PPC64 Linux EEH Implementation
At this time, a generic EEH recovery mechanism has been implemented,
so that individual device drivers do not need to be modified to support
EEH recovery.  This generic mechanism piggy-backs on the PCI hotplug
infrastructure,  and percolates events up through the hotplug/udev
infrastructure,  and percolates events up through the userspace/udev
infrastructure.  Followiing is a detailed description of how this is
accomplished.

@@ -172,7 +172,7 @@ A handler for the EEH notifier_block events is implemented in
drivers/pci/hotplug/pSeries_pci.c, called handle_eeh_events().
It saves the device BAR's and then calls rpaphp_unconfig_pci_adapter().
This last call causes the device driver for the card to be stopped,
which causes hotplug events to go out to user space. This triggers
which causes uevents to go out to user space. This triggers
user-space scripts that might issue commands such as "ifdown eth0"
for ethernet cards, and so on.  This handler then sleeps for 5 seconds,
hoping to give the user-space scripts enough time to complete.
@@ -264,23 +264,24 @@ rpa_php_unconfig_pci_adapter() { // in rpaphp_pci.c
          calls
          kobject_del() {                    //in /libs/kobject.c
            calls
            kobject_hotplug() {            // in /libs/kobject.c
            kobject_uevent() {               // in /libs/kobject.c
              calls
              kset_hotplug() {             // in /lib/kobject.c
              kset_uevent() {                // in /lib/kobject.c
                calls
                kset->hotplug_ops->hotplug() which is really just
                kset->uevent_ops->uevent()   // which is really just
                a call to
                dev_hotplug() {           // in /drivers/base/core.c
                dev_uevent() {               // in /drivers/base/core.c
                  calls
                  dev->bus->hotplug() which is really just a call to
                  pci_hotplug () {      // in drivers/pci/hotplug.c
                  dev->bus->uevent() which is really just a call to
                  pci_uevent () {            // in drivers/pci/hotplug.c
                    which prints device name, etc....
                 }
               }
               then kset_hotplug() calls
                call_usermodehelper () with
                   argv[0]=hotplug_path[] which is "/sbin/hotplug"
             --> event to userspace,
               then kobject_uevent() sends a netlink uevent to userspace
               --> userspace uevent
               (during early boot, nobody listens to netlink events and
               kobject_uevent() executes uevent_helper[], which runs the
               event process /sbin/hotplug)
           }
         }
         kobject_del() then calls sysfs_remove_dir(), which would
+0 −6
Original line number Diff line number Diff line
@@ -1480,12 +1480,6 @@ W: http://nfs.sourceforge.net/
W:	http://www.cse.unsw.edu.au/~neilb/patches/linux-devel/
S:	Maintained

KERNEL EVENT LAYER (KOBJECT_UEVENT)
P:	Robert Love
M:	rml@novell.com
L:	linux-kernel@vger.kernel.org
S:	Maintained

KEXEC
P:	Eric Biederman
P:	Randy Dunlap
+3 −3
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ static int amba_match(struct device *dev, struct device_driver *drv)
}

#ifdef CONFIG_HOTPLUG
static int amba_hotplug(struct device *dev, char **envp, int nr_env, char *buf, int bufsz)
static int amba_uevent(struct device *dev, char **envp, int nr_env, char *buf, int bufsz)
{
	struct amba_device *pcdev = to_amba_device(dev);

@@ -58,7 +58,7 @@ static int amba_hotplug(struct device *dev, char **envp, int nr_env, char *buf,
	return 0;
}
#else
#define amba_hotplug NULL
#define amba_uevent NULL
#endif

static int amba_suspend(struct device *dev, pm_message_t state)
@@ -88,7 +88,7 @@ static int amba_resume(struct device *dev)
static struct bus_type amba_bustype = {
	.name		= "amba",
	.match		= amba_match,
	.hotplug	= amba_hotplug,
	.uevent		= amba_uevent,
	.suspend	= amba_suspend,
	.resume		= amba_resume,
};
+2 −2
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ static int tiocx_match(struct device *dev, struct device_driver *drv)

}

static int tiocx_hotplug(struct device *dev, char **envp, int num_envp,
static int tiocx_uevent(struct device *dev, char **envp, int num_envp,
			 char *buffer, int buffer_size)
{
	return -ENODEV;
@@ -79,7 +79,7 @@ static void tiocx_bus_release(struct device *dev)
struct bus_type tiocx_bus_type = {
	.name = "tiocx",
	.match = tiocx_match,
	.hotplug = tiocx_hotplug,
	.uevent = tiocx_uevent,
};

/**
+1 −1
Original line number Diff line number Diff line
@@ -293,6 +293,6 @@ static int vio_hotplug(struct device *dev, char **envp, int num_envp,

struct bus_type vio_bus_type = {
	.name = "vio",
	.hotplug = vio_hotplug,
	.uevent = vio_hotplug,
	.match = vio_bus_match,
};
Loading