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 Original line 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,
At this time, a generic EEH recovery mechanism has been implemented,
so that individual device drivers do not need to be modified to support
so that individual device drivers do not need to be modified to support
EEH recovery.  This generic mechanism piggy-backs on the PCI hotplug
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
infrastructure.  Followiing is a detailed description of how this is
accomplished.
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().
drivers/pci/hotplug/pSeries_pci.c, called handle_eeh_events().
It saves the device BAR's and then calls rpaphp_unconfig_pci_adapter().
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,
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"
user-space scripts that might issue commands such as "ifdown eth0"
for ethernet cards, and so on.  This handler then sleeps for 5 seconds,
for ethernet cards, and so on.  This handler then sleeps for 5 seconds,
hoping to give the user-space scripts enough time to complete.
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
          calls
          kobject_del() {                    //in /libs/kobject.c
          kobject_del() {                    //in /libs/kobject.c
            calls
            calls
            kobject_hotplug() {            // in /libs/kobject.c
            kobject_uevent() {               // in /libs/kobject.c
              calls
              calls
              kset_hotplug() {             // in /lib/kobject.c
              kset_uevent() {                // in /lib/kobject.c
                calls
                calls
                kset->hotplug_ops->hotplug() which is really just
                kset->uevent_ops->uevent()   // which is really just
                a call to
                a call to
                dev_hotplug() {           // in /drivers/base/core.c
                dev_uevent() {               // in /drivers/base/core.c
                  calls
                  calls
                  dev->bus->hotplug() which is really just a call to
                  dev->bus->uevent() which is really just a call to
                  pci_hotplug () {      // in drivers/pci/hotplug.c
                  pci_uevent () {            // in drivers/pci/hotplug.c
                    which prints device name, etc....
                    which prints device name, etc....
                 }
                 }
               }
               }
               then kset_hotplug() calls
               then kobject_uevent() sends a netlink uevent to userspace
                call_usermodehelper () with
               --> userspace uevent
                   argv[0]=hotplug_path[] which is "/sbin/hotplug"
               (during early boot, nobody listens to netlink events and
             --> event to userspace,
               kobject_uevent() executes uevent_helper[], which runs the
               event process /sbin/hotplug)
           }
           }
         }
         }
         kobject_del() then calls sysfs_remove_dir(), which would
         kobject_del() then calls sysfs_remove_dir(), which would
+0 −6
Original line number Original line 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/
W:	http://www.cse.unsw.edu.au/~neilb/patches/linux-devel/
S:	Maintained
S:	Maintained


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

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


#ifdef CONFIG_HOTPLUG
#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);
	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;
	return 0;
}
}
#else
#else
#define amba_hotplug NULL
#define amba_uevent NULL
#endif
#endif


static int amba_suspend(struct device *dev, pm_message_t state)
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 = {
static struct bus_type amba_bustype = {
	.name		= "amba",
	.name		= "amba",
	.match		= amba_match,
	.match		= amba_match,
	.hotplug	= amba_hotplug,
	.uevent		= amba_uevent,
	.suspend	= amba_suspend,
	.suspend	= amba_suspend,
	.resume		= amba_resume,
	.resume		= amba_resume,
};
};
+2 −2
Original line number Original line 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)
			 char *buffer, int buffer_size)
{
{
	return -ENODEV;
	return -ENODEV;
@@ -79,7 +79,7 @@ static void tiocx_bus_release(struct device *dev)
struct bus_type tiocx_bus_type = {
struct bus_type tiocx_bus_type = {
	.name = "tiocx",
	.name = "tiocx",
	.match = tiocx_match,
	.match = tiocx_match,
	.hotplug = tiocx_hotplug,
	.uevent = tiocx_uevent,
};
};


/**
/**
+1 −1
Original line number Original line 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 = {
struct bus_type vio_bus_type = {
	.name = "vio",
	.name = "vio",
	.hotplug = vio_hotplug,
	.uevent = vio_hotplug,
	.match = vio_bus_match,
	.match = vio_bus_match,
};
};
Loading