fsi: Don't use device_unregister() in fsi_master_register()
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 28 Jun 2018 06:26:19 +0000 (16:26 +1000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 12 Jul 2018 02:05:11 +0000 (12:05 +1000)
commit265aac26bcd4a2a79d08d2bdcc08cf1653fd4248
tree0ea9f143ebe0341b91e361a81791abce1f594a0f
parent55382d301fd8992349da0e58c013400e2e72417d
fsi: Don't use device_unregister() in fsi_master_register()

In the error path of fsi_master_register(), we currently
use device_unregister(). This will cause the last reference
to the structure to be dropped, thus freeing the enclosing
structure, which isn't what the callers want.

Use device_del() instead so that we return to the caller
with a refcount of 1. The caller can then assume that it
must use put_device() after a call to fsi_master_register()
regardless of whether the latter suceeded or failed.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
drivers/fsi/fsi-core.c