mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-18 02:04:05 +08:00
driver core: let dev_set_drvdata return int instead of void as it can fail
Before commit
b402843
(Driver core: move dev_get/set_drvdata to drivers/base/dd.c)
calling dev_set_drvdata with dev=NULL was an unchecked error. After some
discussion about what to return in this case removing the check (and so
producing a null pointer exception) seems fine.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
4a03d6f7c8
commit
c870508240
@ -413,17 +413,16 @@ void *dev_get_drvdata(const struct device *dev)
|
||||
}
|
||||
EXPORT_SYMBOL(dev_get_drvdata);
|
||||
|
||||
void dev_set_drvdata(struct device *dev, void *data)
|
||||
int dev_set_drvdata(struct device *dev, void *data)
|
||||
{
|
||||
int error;
|
||||
|
||||
if (!dev)
|
||||
return;
|
||||
if (!dev->p) {
|
||||
error = device_private_init(dev);
|
||||
if (error)
|
||||
return;
|
||||
return error;
|
||||
}
|
||||
dev->p->driver_data = data;
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(dev_set_drvdata);
|
||||
|
@ -557,7 +557,7 @@ extern int device_move(struct device *dev, struct device *new_parent,
|
||||
extern const char *device_get_devnode(struct device *dev,
|
||||
mode_t *mode, const char **tmp);
|
||||
extern void *dev_get_drvdata(const struct device *dev);
|
||||
extern void dev_set_drvdata(struct device *dev, void *data);
|
||||
extern int dev_set_drvdata(struct device *dev, void *data);
|
||||
|
||||
/*
|
||||
* Root device objects for grouping under /sys/devices
|
||||
|
Loading…
Reference in New Issue
Block a user