mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
spi: release device claimed by bus_find_device_by_name
In success case the function bus_find_device_by_name calls get_device. In our context put_device should be called to decrease the device count usage. Signed-off-by: Roman Tereshonkov <roman.tereshonkov@nokia.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
This commit is contained in:
parent
9bd73715a1
commit
8ec130a017
@ -257,6 +257,7 @@ int spi_add_device(struct spi_device *spi)
|
||||
{
|
||||
static DEFINE_MUTEX(spi_add_lock);
|
||||
struct device *dev = spi->master->dev.parent;
|
||||
struct device *d;
|
||||
int status;
|
||||
|
||||
/* Chipselects are numbered 0..max; validate. */
|
||||
@ -278,10 +279,11 @@ int spi_add_device(struct spi_device *spi)
|
||||
*/
|
||||
mutex_lock(&spi_add_lock);
|
||||
|
||||
if (bus_find_device_by_name(&spi_bus_type, NULL, dev_name(&spi->dev))
|
||||
!= NULL) {
|
||||
d = bus_find_device_by_name(&spi_bus_type, NULL, dev_name(&spi->dev));
|
||||
if (d != NULL) {
|
||||
dev_err(dev, "chipselect %d already in use\n",
|
||||
spi->chip_select);
|
||||
put_device(d);
|
||||
status = -EBUSY;
|
||||
goto done;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user