diff options
| author | Sudip Mukherjee <sudipm.mukherjee@gmail.com> | 2016-03-07 06:35:50 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-04-30 17:15:56 -0400 |
| commit | 47f55b74cfb28cbd3328ffd5c4c0f7a14da36498 (patch) | |
| tree | 6692441e028bcbf74ac20f87cf2cc9425da96bc4 /drivers/spmi | |
| parent | 7ff4bdd45448936363dc6dc6c851112b5c08e209 (diff) | |
spmi: do not use bus internal data
The variable p is a data structure which is used by the driver core
internally and it is not expected that busses will be directly accessing
these driver core internal only data.
Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/spmi')
| -rw-r--r-- | drivers/spmi/spmi.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/spmi/spmi.c b/drivers/spmi/spmi.c index 6b3da1bb0d63..2b9b0941d9eb 100644 --- a/drivers/spmi/spmi.c +++ b/drivers/spmi/spmi.c | |||
| @@ -25,6 +25,7 @@ | |||
| 25 | #define CREATE_TRACE_POINTS | 25 | #define CREATE_TRACE_POINTS |
| 26 | #include <trace/events/spmi.h> | 26 | #include <trace/events/spmi.h> |
| 27 | 27 | ||
| 28 | static bool is_registered; | ||
| 28 | static DEFINE_IDA(ctrl_ida); | 29 | static DEFINE_IDA(ctrl_ida); |
| 29 | 30 | ||
| 30 | static void spmi_dev_release(struct device *dev) | 31 | static void spmi_dev_release(struct device *dev) |
| @@ -507,7 +508,7 @@ int spmi_controller_add(struct spmi_controller *ctrl) | |||
| 507 | int ret; | 508 | int ret; |
| 508 | 509 | ||
| 509 | /* Can't register until after driver model init */ | 510 | /* Can't register until after driver model init */ |
| 510 | if (WARN_ON(!spmi_bus_type.p)) | 511 | if (WARN_ON(!is_registered)) |
| 511 | return -EAGAIN; | 512 | return -EAGAIN; |
| 512 | 513 | ||
| 513 | ret = device_add(&ctrl->dev); | 514 | ret = device_add(&ctrl->dev); |
| @@ -576,7 +577,14 @@ module_exit(spmi_exit); | |||
| 576 | 577 | ||
| 577 | static int __init spmi_init(void) | 578 | static int __init spmi_init(void) |
| 578 | { | 579 | { |
| 579 | return bus_register(&spmi_bus_type); | 580 | int ret; |
| 581 | |||
| 582 | ret = bus_register(&spmi_bus_type); | ||
| 583 | if (ret) | ||
| 584 | return ret; | ||
| 585 | |||
| 586 | is_registered = true; | ||
| 587 | return 0; | ||
| 580 | } | 588 | } |
| 581 | postcore_initcall(spmi_init); | 589 | postcore_initcall(spmi_init); |
| 582 | 590 | ||
