Skip to content

Commit

Permalink
[IRDA]: IrCOMM discovery indication simplification
Browse files Browse the repository at this point in the history
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: Samuel Ortiz <samuel@sortiz.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
ryanr23 authored and davem330 committed Oct 18, 2007
1 parent bd5435e commit c310f09
Showing 1 changed file with 3 additions and 12 deletions.
15 changes: 3 additions & 12 deletions net/irda/ircomm/ircomm_tty_attach.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;);

ircomm_tty_do_event(self, IRCOMM_TTY_DISCOVERY_INDICATION,
NULL, &info);

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

/*
Expand Down

0 comments on commit c310f09

Please sign in to comment.