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

Commit d868772f authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6: (46 commits)
  dev_dbg: check dev_dbg() arguments
  drivers/base/attribute_container.c: use mutex instead of binary semaphore
  mod_sysfs_setup() doesn't return errno when kobject_add_dir() failure occurs
  s2ram: add arch irq disable/enable hooks
  define platform wakeup hook, use in pci_enable_wake()
  security: prevent permission checking of file removal via sysfs_remove_group()
  device_schedule_callback() needs a module reference
  s390: cio: Delay uevents for subchannels
  sysfs: bin.c printk fix
  Driver core: use mutex instead of semaphore in DMA pool handler
  driver core: bus_add_driver should return an error if no bus
  debugfs: Add debugfs_create_u64()
  the overdue removal of the mount/umount uevents
  kobject: Comment and warning fixes to kobject.c
  Driver core: warn when userspace writes to the uevent file in a non-supported way
  Driver core: make uevent-environment available in uevent-file
  kobject core: remove rwsem from struct subsystem
  qeth: Remove usage of subsys.rwsem
  PHY: remove rwsem use from phy core
  IEEE1394: remove rwsem use from ieee1394 core
  ...
parents a205752d 404d5b18
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -134,15 +134,6 @@ Who: Arjan van de Ven <arjan@linux.intel.com>

---------------------------

What:	mount/umount uevents
When:	February 2007
Why:	These events are not correct, and do not properly let userspace know
	when a file system has been mounted or unmounted.  Userspace should
	poll the /proc/mounts file instead to detect this properly.
Who:	Greg Kroah-Hartman <gregkh@suse.de>

---------------------------

What:	USB driver API moves to EXPORT_SYMBOL_GPL
When:	February 2008
Files:	include/linux/usb.h, drivers/usb/core/driver.c
+0 −3
Original line number Diff line number Diff line
@@ -475,9 +475,6 @@ static struct of_platform_driver of_pci_phb_driver = {
       .name = "of-pci",
       .match_table = of_pci_phb_ids,
       .probe = of_pci_phb_probe,
       .driver = {
	       .multithread_probe = 1,
       },
};

static __init int of_pci_phb_init(void)
+6 −7
Original line number Diff line number Diff line
@@ -47,14 +47,13 @@ static int amba_match(struct device *dev, struct device_driver *drv)
static int amba_uevent(struct device *dev, char **envp, int nr_env, char *buf, int bufsz)
{
	struct amba_device *pcdev = to_amba_device(dev);
	int retval = 0, i = 0, len = 0;

	if (nr_env < 2)
		return -ENOMEM;

	snprintf(buf, bufsz, "AMBA_ID=%08x", pcdev->periphid);
	*envp++ = buf;
	*envp++ = NULL;
	return 0;
	retval = add_uevent_var(envp, nr_env, &i,
				buf, bufsz, &len,
				"AMBA_ID=%08x", pcdev->periphid);
	envp[i] = NULL;
	return retval;
}
#else
#define amba_uevent NULL
+13 −13
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ EXPORT_SYMBOL_GPL(attribute_container_classdev_to_container);

static struct list_head attribute_container_list;

static DECLARE_MUTEX(attribute_container_mutex);
static DEFINE_MUTEX(attribute_container_mutex);

/**
 * attribute_container_register - register an attribute container
@@ -77,9 +77,9 @@ attribute_container_register(struct attribute_container *cont)
	klist_init(&cont->containers,internal_container_klist_get,
		   internal_container_klist_put);
		
	down(&attribute_container_mutex);
	mutex_lock(&attribute_container_mutex);
	list_add_tail(&cont->node, &attribute_container_list);
	up(&attribute_container_mutex);
	mutex_unlock(&attribute_container_mutex);

	return 0;
}
@@ -94,7 +94,7 @@ int
attribute_container_unregister(struct attribute_container *cont)
{
	int retval = -EBUSY;
	down(&attribute_container_mutex);
	mutex_lock(&attribute_container_mutex);
	spin_lock(&cont->containers.k_lock);
	if (!list_empty(&cont->containers.k_list))
		goto out;
@@ -102,7 +102,7 @@ attribute_container_unregister(struct attribute_container *cont)
	list_del(&cont->node);
 out:
	spin_unlock(&cont->containers.k_lock);
	up(&attribute_container_mutex);
	mutex_unlock(&attribute_container_mutex);
	return retval;
		
}
@@ -145,7 +145,7 @@ attribute_container_add_device(struct device *dev,
{
	struct attribute_container *cont;

	down(&attribute_container_mutex);
	mutex_lock(&attribute_container_mutex);
	list_for_each_entry(cont, &attribute_container_list, node) {
		struct internal_container *ic;

@@ -173,7 +173,7 @@ attribute_container_add_device(struct device *dev,
			attribute_container_add_class_device(&ic->classdev);
		klist_add_tail(&ic->node, &cont->containers);
	}
	up(&attribute_container_mutex);
	mutex_unlock(&attribute_container_mutex);
}

/* FIXME: can't break out of this unless klist_iter_exit is also
@@ -211,7 +211,7 @@ attribute_container_remove_device(struct device *dev,
{
	struct attribute_container *cont;

	down(&attribute_container_mutex);
	mutex_lock(&attribute_container_mutex);
	list_for_each_entry(cont, &attribute_container_list, node) {
		struct internal_container *ic;
		struct klist_iter iter;
@@ -234,7 +234,7 @@ attribute_container_remove_device(struct device *dev,
			}
		}
	}
	up(&attribute_container_mutex);
	mutex_unlock(&attribute_container_mutex);
}

/**
@@ -255,7 +255,7 @@ attribute_container_device_trigger(struct device *dev,
{
	struct attribute_container *cont;

	down(&attribute_container_mutex);
	mutex_lock(&attribute_container_mutex);
	list_for_each_entry(cont, &attribute_container_list, node) {
		struct internal_container *ic;
		struct klist_iter iter;
@@ -273,7 +273,7 @@ attribute_container_device_trigger(struct device *dev,
				fn(cont, dev, &ic->classdev);
		}
	}
	up(&attribute_container_mutex);
	mutex_unlock(&attribute_container_mutex);
}

/**
@@ -295,12 +295,12 @@ attribute_container_trigger(struct device *dev,
{
	struct attribute_container *cont;

	down(&attribute_container_mutex);
	mutex_lock(&attribute_container_mutex);
	list_for_each_entry(cont, &attribute_container_list, node) {
		if (cont->match(cont, dev))
			fn(cont, dev);
	}
	up(&attribute_container_mutex);
	mutex_unlock(&attribute_container_mutex);
}

/**
+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ extern int cpu_dev_init(void);
extern int attribute_container_init(void);

extern int bus_add_device(struct device * dev);
extern int bus_attach_device(struct device * dev);
extern void bus_attach_device(struct device * dev);
extern void bus_remove_device(struct device * dev);
extern struct bus_type *get_bus(struct bus_type * bus);
extern void put_bus(struct bus_type * bus);
Loading