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

Commit c310f099 authored by Ryan Reading's avatar Ryan Reading Committed by David S. Miller
Browse files

[IRDA]: IrCOMM discovery indication simplification



From: Ryan Reading <ryanr23@gmail.com>

Every IrCOMM socket is registered with the discovery subsystem, so we don't
need to loop over all of them for every discovery event. We just need to
do it for the registered IrCOMM socket.

Signed-off-by: default avatarSamuel Ortiz <samuel@sortiz.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bd5435e7
Loading
Loading
Loading
Loading
+3 −12
Original line number Diff line number Diff line
@@ -381,18 +381,9 @@ static void ircomm_tty_discovery_indication(discinfo_t *discovery,
	info.daddr = discovery->daddr;
	info.saddr = discovery->saddr;

	/* FIXME. We have a locking problem on the hashbin here.
	 * We probably need to use hashbin_find_next(), but we first
	 * need to ensure that "line" is unique. - Jean II */
	self = (struct ircomm_tty_cb *) hashbin_get_first(ircomm_tty);
	while (self != NULL) {
		IRDA_ASSERT(self->magic == IRCOMM_TTY_MAGIC, return;);

	self = (struct ircomm_tty_cb *) priv;
	ircomm_tty_do_event(self, IRCOMM_TTY_DISCOVERY_INDICATION,
			    NULL, &info);

		self = (struct ircomm_tty_cb *) hashbin_get_next(ircomm_tty);
	}
}

/*