Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d9fb3754 authored by Bryan O'Donoghue's avatar Bryan O'Donoghue Committed by Greg Kroah-Hartman
Browse files

greybus: loopback: Relax locking during loopback operations



Currently a per-connection mutex is held during calls to
gb_operation_send_sync. It is not necessary to hold this lock and later
patches supporting multiple-outstanding bi-directional operations need to
take the per-connection lock and the gb_dev level lock. Since gb_dev must
always be taken before per-connection locks, it is both desirable and safe
to drop the lock now.

Signed-off-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 1700507d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -774,6 +774,8 @@ static int gb_loopback_fn(void *data)
			mutex_unlock(&gb->mutex);
			goto sleep;
		}
		mutex_unlock(&gb->mutex);

		/* Else operations to perform */
		gb->apbridge_latency_ts = 0;
		gb->gpbridge_latency_ts = 0;
@@ -783,7 +785,6 @@ static int gb_loopback_fn(void *data)
			error = gb_loopback_transfer(gb, size);
		else if (type == GB_LOOPBACK_TYPE_SINK)
			error = gb_loopback_sink(gb, size);
		mutex_unlock(&gb->mutex);

		mutex_lock(&gb_dev.mutex);
		mutex_lock(&gb->mutex);