Hi Thierry, On Mon, Aug 18, 2014 at 10:20 AM, Thierry Reding <thierry.reding@xxxxxxxxx> wrote: > Could we achieve the same by storing a pointer to the best match and > then use that instead of p? Perhaps something like this: > > struct pwm_lookup *entry; > > ... > > if (match > best) { > chip = pwmchip_find_by_name(p->provider); > entry = p; > > if (match != 3) > best = match; > else > break; > } > > ... > > if (chip) > pwm = pwm_request_from_chip(chip, entry->index, > con_id ?: dev_id); > if (IS_ERR(pwm)) > return pwm; > > pwm_set_period(pwm, entry->period); > pwm_set_polarity(pwm, entry->polarity); > > ? That's possible. But that will add complexity, as you have to move the "mutex_unlock(&pwm_lookup_lock);" after the last user of "entry" again, and add a goto for the IS_ERR(pwm) case. So I'm not sure it's worth the effort. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html