Hi Richard, After the 'coding style related'/'useless' comments, now comes a real question related to the approach you've taken :-).
On Sun, 29 Mar 2015 14:13:17 +0200 Richard Weinberger <rich...@nod.at> wrote: [...] > + > +/** > + * ubi_wl_trigger_bitrot_check - triggers a re-read of all physical erase > + * blocks. > + * @ubi: UBI device description object > + */ > +void ubi_wl_trigger_bitrot_check(struct ubi_device *ubi) > +{ > + int i; > + struct ubi_wl_entry *e; > + > + ubi_msg(ubi, "Running a full read check"); > + > + for (i = 0; i < ubi->peb_count; i++) { > + spin_lock(&ubi->wl_lock); > + e = ubi->lookuptbl[i]; > + spin_unlock(&ubi->wl_lock); > + if (e) { > + atomic_inc(&ubi->bit_rot_work); > + schedule_bitrot_check(ubi, e); > + } > + } Do we really need to create a ubi_work per PEB ? Couldn't we create a single work being rescheduled inside the worker function (after updating the ubi_wl_entry of course). I'm pretty sure I'm missing something obvious that you'll probably point out ;-). -- Boris Brezillon, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/