diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-07-13 10:24:08 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-07-13 10:24:08 -0700 | 
| commit | a4dc32374ed6dd56e09039ea8b7151c3a3e2307d (patch) | |
| tree | c1a5482db418ff1adb0135ac9d3abd01d138c2ad | |
| parent | 51feb98d2547a389be2f666514f5bcd658f79eab (diff) | |
| parent | 38c7dc373029e4666b17850054dd43c1c96bb264 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:
  wm97xx_batery: replace driver_data with dev_get_drvdata()
  omap: video: remove direct access of driver_data
  Sound: remove direct access of driver_data
  driver model: fix show/store prototypes in doc.
  Firmware: firmware_class, fix lock imbalance
  Driver Core: remove BUS_ID_SIZE
  sparc: remove driver-core BUS_ID_SIZE
  partitions: fix broken uevent_suppress conversion
  devres: WARN() and return, don't crash on device_del() of uninitialized device
| -rw-r--r-- | Documentation/driver-model/driver.txt | 4 | ||||
| -rw-r--r-- | arch/sparc/kernel/vio.c | 7 | ||||
| -rw-r--r-- | drivers/base/devres.c | 3 | ||||
| -rw-r--r-- | drivers/base/firmware_class.c | 6 | ||||
| -rw-r--r-- | drivers/power/wm97xx_battery.c | 4 | ||||
| -rw-r--r-- | drivers/video/omap/omapfb_main.c | 14 | ||||
| -rw-r--r-- | fs/partitions/check.c | 2 | ||||
| -rw-r--r-- | include/linux/device.h | 2 | ||||
| -rw-r--r-- | sound/soc/codecs/wm8988.c | 4 | 
9 files changed, 27 insertions, 19 deletions
| diff --git a/Documentation/driver-model/driver.txt b/Documentation/driver-model/driver.txt index 82132169d47a..60120fb3b961 100644 --- a/Documentation/driver-model/driver.txt +++ b/Documentation/driver-model/driver.txt @@ -207,8 +207,8 @@ Attributes  ~~~~~~~~~~  struct driver_attribute {          struct attribute        attr; -        ssize_t (*show)(struct device_driver *, char * buf, size_t count, loff_t off); -        ssize_t (*store)(struct device_driver *, const char * buf, size_t count, loff_t off); +        ssize_t (*show)(struct device_driver *driver, char *buf); +        ssize_t (*store)(struct device_driver *, const char * buf, size_t count);  };  Device drivers can export attributes via their sysfs directories.  diff --git a/arch/sparc/kernel/vio.c b/arch/sparc/kernel/vio.c index 753d128ed158..c28c71449a6c 100644 --- a/arch/sparc/kernel/vio.c +++ b/arch/sparc/kernel/vio.c @@ -224,7 +224,12 @@ static struct vio_dev *vio_create_one(struct mdesc_handle *hp, u64 mp,  	if (!strcmp(type, "domain-services-port"))  		bus_id_name = "ds"; -	if (strlen(bus_id_name) >= BUS_ID_SIZE - 4) { +	/* +	 * 20 char is the old driver-core name size limit, which is no more. +	 * This check can probably be removed after review and possible +	 * adaption of the vio users name length handling. +	 */ +	if (strlen(bus_id_name) >= 20 - 4) {  		printk(KERN_ERR "VIO: bus_id_name [%s] is too long.\n",  		       bus_id_name);  		return NULL; diff --git a/drivers/base/devres.c b/drivers/base/devres.c index e8beb8e5b626..05dd307e8f02 100644 --- a/drivers/base/devres.c +++ b/drivers/base/devres.c @@ -428,6 +428,9 @@ int devres_release_all(struct device *dev)  {  	unsigned long flags; +	/* Looks like an uninitialized device structure */ +	if (WARN_ON(dev->devres_head.next == NULL)) +		return -ENODEV;  	spin_lock_irqsave(&dev->devres_lock, flags);  	return release_nodes(dev, dev->devres_head.next, &dev->devres_head,  			     flags); diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index fc466531260e..f285f441fab9 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c @@ -217,8 +217,10 @@ firmware_data_read(struct kobject *kobj, struct bin_attribute *bin_attr,  		ret_count = -ENODEV;  		goto out;  	} -	if (offset > fw->size) -		return 0; +	if (offset > fw->size) { +		ret_count = 0; +		goto out; +	}  	if (count > fw->size - offset)  		count = fw->size - offset; diff --git a/drivers/power/wm97xx_battery.c b/drivers/power/wm97xx_battery.c index 8bde92126d34..b787335a8419 100644 --- a/drivers/power/wm97xx_battery.c +++ b/drivers/power/wm97xx_battery.c @@ -33,14 +33,14 @@ static enum power_supply_property *prop;  static unsigned long wm97xx_read_bat(struct power_supply *bat_ps)  { -	return wm97xx_read_aux_adc(bat_ps->dev->parent->driver_data, +	return wm97xx_read_aux_adc(dev_get_drvdata(bat_ps->dev->parent),  					pdata->batt_aux) * pdata->batt_mult /  					pdata->batt_div;  }  static unsigned long wm97xx_read_temp(struct power_supply *bat_ps)  { -	return wm97xx_read_aux_adc(bat_ps->dev->parent->driver_data, +	return wm97xx_read_aux_adc(dev_get_drvdata(bat_ps->dev->parent),  					pdata->temp_aux) * pdata->temp_mult /  					pdata->temp_div;  } diff --git a/drivers/video/omap/omapfb_main.c b/drivers/video/omap/omapfb_main.c index 4ea99bfc37b4..8862233d57b6 100644 --- a/drivers/video/omap/omapfb_main.c +++ b/drivers/video/omap/omapfb_main.c @@ -1254,7 +1254,7 @@ static struct fb_ops omapfb_ops = {  static ssize_t omapfb_show_caps_num(struct device *dev,  				    struct device_attribute *attr, char *buf)  { -	struct omapfb_device *fbdev = (struct omapfb_device *)dev->driver_data; +	struct omapfb_device *fbdev = dev_get_drvdata(dev);  	int plane;  	size_t size;  	struct omapfb_caps caps; @@ -1274,7 +1274,7 @@ static ssize_t omapfb_show_caps_num(struct device *dev,  static ssize_t omapfb_show_caps_text(struct device *dev,  				     struct device_attribute *attr, char *buf)  { -	struct omapfb_device *fbdev = (struct omapfb_device *)dev->driver_data; +	struct omapfb_device *fbdev = dev_get_drvdata(dev);  	int i;  	struct omapfb_caps caps;  	int plane; @@ -1321,7 +1321,7 @@ static DEVICE_ATTR(caps_text, 0444, omapfb_show_caps_text, NULL);  static ssize_t omapfb_show_panel_name(struct device *dev,  				      struct device_attribute *attr, char *buf)  { -	struct omapfb_device *fbdev = (struct omapfb_device *)dev->driver_data; +	struct omapfb_device *fbdev = dev_get_drvdata(dev);  	return snprintf(buf, PAGE_SIZE, "%s\n", fbdev->panel->name);  } @@ -1330,7 +1330,7 @@ static ssize_t omapfb_show_bklight_level(struct device *dev,  					 struct device_attribute *attr,  					 char *buf)  { -	struct omapfb_device *fbdev = (struct omapfb_device *)dev->driver_data; +	struct omapfb_device *fbdev = dev_get_drvdata(dev);  	int r;  	if (fbdev->panel->get_bklight_level) { @@ -1345,7 +1345,7 @@ static ssize_t omapfb_store_bklight_level(struct device *dev,  					  struct device_attribute *attr,  					  const char *buf, size_t size)  { -	struct omapfb_device *fbdev = (struct omapfb_device *)dev->driver_data; +	struct omapfb_device *fbdev = dev_get_drvdata(dev);  	int r;  	if (fbdev->panel->set_bklight_level) { @@ -1364,7 +1364,7 @@ static ssize_t omapfb_store_bklight_level(struct device *dev,  static ssize_t omapfb_show_bklight_max(struct device *dev,  				       struct device_attribute *attr, char *buf)  { -	struct omapfb_device *fbdev = (struct omapfb_device *)dev->driver_data; +	struct omapfb_device *fbdev = dev_get_drvdata(dev);  	int r;  	if (fbdev->panel->get_bklight_level) { @@ -1397,7 +1397,7 @@ static struct attribute_group panel_attr_grp = {  static ssize_t omapfb_show_ctrl_name(struct device *dev,  				     struct device_attribute *attr, char *buf)  { -	struct omapfb_device *fbdev = (struct omapfb_device *)dev->driver_data; +	struct omapfb_device *fbdev = dev_get_drvdata(dev);  	return snprintf(buf, PAGE_SIZE, "%s\n", fbdev->ctrl->name);  } diff --git a/fs/partitions/check.c b/fs/partitions/check.c index 1a9c7878f864..ea4e6cb29e13 100644 --- a/fs/partitions/check.c +++ b/fs/partitions/check.c @@ -436,7 +436,7 @@ struct hd_struct *add_partition(struct gendisk *disk, int partno,  	rcu_assign_pointer(ptbl->part[partno], p);  	/* suppress uevent if the disk supresses it */ -	if (!dev_get_uevent_suppress(pdev)) +	if (!dev_get_uevent_suppress(ddev))  		kobject_uevent(&pdev->kobj, KOBJ_ADD);  	return p; diff --git a/include/linux/device.h b/include/linux/device.h index ed4e39f2c423..aebb81036db2 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -25,8 +25,6 @@  #include <asm/atomic.h>  #include <asm/device.h> -#define BUS_ID_SIZE		20 -  struct device;  struct device_private;  struct device_driver; diff --git a/sound/soc/codecs/wm8988.c b/sound/soc/codecs/wm8988.c index c05f71803aa8..8c0fdf84aac3 100644 --- a/sound/soc/codecs/wm8988.c +++ b/sound/soc/codecs/wm8988.c @@ -1037,14 +1037,14 @@ static int __devinit wm8988_spi_probe(struct spi_device *spi)  	codec->control_data = spi;  	codec->dev = &spi->dev; -	spi->dev.driver_data = wm8988; +	dev_set_drvdata(&spi->dev, wm8988);  	return wm8988_register(wm8988);  }  static int __devexit wm8988_spi_remove(struct spi_device *spi)  { -	struct wm8988_priv *wm8988 = spi->dev.driver_data; +	struct wm8988_priv *wm8988 = dev_get_drvdata(&spi->dev);  	wm8988_unregister(wm8988); | 
