* [PATCH 1/2] staging: pi433: fix (NULL device *) in log message
2017-11-20 23:02 [PATCH 0/2] staging: pi433: fix logging and naming issues Marcin Ciupak
@ 2017-11-20 23:03 ` Marcin Ciupak
2017-11-20 23:05 ` [PATCH 2/2] staging: pi433: fix naming when more than one radio is used Marcin Ciupak
1 sibling, 0 replies; 3+ messages in thread
From: Marcin Ciupak @ 2017-11-20 23:03 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: linux-kernel, devel
(NULL device *) is printed in log message in pi433_probe and
pi433_get_minor functions due to device->dev being used prior to call to
device_create function.
Signed-off-by: Marcin Ciupak <marcin.s.ciupak@gmail.com>
---
drivers/staging/pi433/pi433_if.c | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c
index d946838450d4..bc17676169cb 100644
--- a/drivers/staging/pi433/pi433_if.c
+++ b/drivers/staging/pi433/pi433_if.c
@@ -1051,7 +1051,7 @@ static int pi433_get_minor(struct pi433_device *device)
device->minor = retval;
retval = 0;
} else if (retval == -ENOSPC) {
- dev_err(device->dev, "too many pi433 devices\n");
+ dev_err(&device->spi->dev, "too many pi433 devices\n");
retval = -EINVAL;
}
mutex_unlock(&minor_lock);
@@ -1159,19 +1159,10 @@ static int pi433_probe(struct spi_device *spi)
SET_CHECKED(rf69_set_output_power_level (spi, 13));
SET_CHECKED(rf69_set_antenna_impedance (spi, fiftyOhm));
- /* start tx thread */
- device->tx_task_struct = kthread_run(pi433_tx_thread,
- device,
- "pi433_tx_task");
- if (IS_ERR(device->tx_task_struct)) {
- dev_dbg(device->dev, "start of send thread failed");
- goto send_thread_failed;
- }
-
/* determ minor number */
retval = pi433_get_minor(device);
if (retval) {
- dev_dbg(device->dev, "get of minor number failed");
+ dev_dbg(&spi->dev, "get of minor number failed");
goto minor_failed;
}
@@ -1194,6 +1185,15 @@ static int pi433_probe(struct spi_device *spi)
device->minor);
}
+ /* start tx thread */
+ device->tx_task_struct = kthread_run(pi433_tx_thread,
+ device,
+ "pi433_tx_task");
+ if (IS_ERR(device->tx_task_struct)) {
+ dev_dbg(device->dev, "start of send thread failed");
+ goto send_thread_failed;
+ }
+
/* create cdev */
device->cdev = cdev_alloc();
device->cdev->owner = THIS_MODULE;
@@ -1210,12 +1210,12 @@ static int pi433_probe(struct spi_device *spi)
return 0;
cdev_failed:
+ kthread_stop(device->tx_task_struct);
+send_thread_failed:
device_destroy(pi433_class, device->devt);
device_create_failed:
pi433_free_minor(device);
minor_failed:
- kthread_stop(device->tx_task_struct);
-send_thread_failed:
free_GPIOs(device);
GPIO_failed:
kfree(device);
--
2.15.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH 2/2] staging: pi433: fix naming when more than one radio is used
2017-11-20 23:02 [PATCH 0/2] staging: pi433: fix logging and naming issues Marcin Ciupak
2017-11-20 23:03 ` [PATCH 1/2] staging: pi433: fix (NULL device *) in log message Marcin Ciupak
@ 2017-11-20 23:05 ` Marcin Ciupak
1 sibling, 0 replies; 3+ messages in thread
From: Marcin Ciupak @ 2017-11-20 23:05 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: linux-kernel, devel
When using more than one hardware radio module pi433_probe fails as the
same name is used for all modules. Create unique name by adding minor
number to the device name.
Signed-off-by: Marcin Ciupak <marcin.s.ciupak@gmail.com>
---
drivers/staging/pi433/pi433_if.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c
index bc17676169cb..7a3e3101c483 100644
--- a/drivers/staging/pi433/pi433_if.c
+++ b/drivers/staging/pi433/pi433_if.c
@@ -1172,7 +1172,8 @@ static int pi433_probe(struct spi_device *spi)
&spi->dev,
device->devt,
device,
- "pi433");
+ "pi433.%d",
+ device->minor);
if (IS_ERR(device->dev)) {
pr_err("pi433: device register failed\n");
retval = PTR_ERR(device->dev);
@@ -1188,7 +1189,8 @@ static int pi433_probe(struct spi_device *spi)
/* start tx thread */
device->tx_task_struct = kthread_run(pi433_tx_thread,
device,
- "pi433_tx_task");
+ "pi433.%d_tx_task",
+ device->minor);
if (IS_ERR(device->tx_task_struct)) {
dev_dbg(device->dev, "start of send thread failed");
goto send_thread_failed;
--
2.15.0
^ permalink raw reply related [flat|nested] 3+ messages in thread