On Mon, Sep 08, 2014 at 04:20:34PM +0300, Octavian Purdila wrote: > On Mon, Sep 8, 2014 at 2:32 PM, Johan Hovold <johan@xxxxxxxxxx> wrote: > > > +static bool find_free_slot(struct dln2_mod_rx_slots *rxs, int *slot) > > > +{ > > > + unsigned long flags; > > > + > > > + spin_lock_irqsave(&rxs->lock, flags); > > > + > > > + *slot = find_first_zero_bit(&rxs->bmap, DLN2_MAX_RX_SLOTS); > > > + > > > + if (*slot < DLN2_MAX_RX_SLOTS) { > > > + struct dln2_rx_context *rxc = &rxs->slots[*slot]; > > > + > > > + init_completion(&rxc->done); > > > > Initialise the completions when you allocate them (and there's no need > > to re-init here). > > You are right, but I think we need a reinit_completion(). Technically > we don't, as we don't use complete_all(), but I feel it is cleaner > that way. I will move the initialization in probe and add the > reinit_completion() in free_rx_slot. Is that OK with you? Sure, that's fine. Johan -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html