This patch moves hwmon_device_register() to the end of ads7871_probe().
So we can make sure the device exists and is properly initialized
before the device is exposed to user-space.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
drivers/hwmon/ads7871.c | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/hwmon/ads7871.c b/drivers/hwmon/ads7871.c
index b300a20..45f5829 100644
--- a/drivers/hwmon/ads7871.c
+++ b/drivers/hwmon/ads7871.c
@@ -176,12 +176,6 @@ static int __devinit ads7871_probe(struct spi_device *spi)
if (status < 0)
goto error_free;
- pdata->hwmon_dev = hwmon_device_register(&spi->dev);
- if (IS_ERR(pdata->hwmon_dev)) {
- err = PTR_ERR(pdata->hwmon_dev);
- goto error_remove;
- }
-
spi_set_drvdata(spi, pdata);
/* Configure the SPI bus */
@@ -204,6 +198,12 @@ static int __devinit ads7871_probe(struct spi_device *spi)
goto error_remove;
}
+ pdata->hwmon_dev = hwmon_device_register(&spi->dev);
+ if (IS_ERR(pdata->hwmon_dev)) {
+ err = PTR_ERR(pdata->hwmon_dev);
+ goto error_remove;
+ }
+
return 0;
error_remove:
--
1.7.0.4
--