Commit 23ad7bb9 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

greybus: protocol: fix oops when no protocol is assigned



When removing a connection with no protocol assigned to it, the kernel
oopses as we always thought protocols were always there.

Fix that problem, oopses are bad.

Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
Reviewed-by: default avatarAlex Elder <elder@linaro.org>
parent 7422a1ec
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -165,10 +165,16 @@ struct gb_protocol *gb_protocol_get(u8 id, u8 major, u8 minor)

void gb_protocol_put(struct gb_protocol *protocol)
{
	u8 major = protocol->major;
	u8 minor = protocol->minor;
	u8 major;
	u8 minor;
	u8 protocol_count;

	if (!protocol)
		return;

	major = protocol->major;
	minor = protocol->minor;

	spin_lock_irq(&gb_protocols_lock);
	protocol = _gb_protocol_find(protocol->id, protocol->major,
						protocol->minor);