Re: [PATCH v2 02/15] spi: Drop duplicate IDR allocation code in spi_register_controller()

From: Andy Shevchenko
Date: Tue Jul 11 2023 - 06:58:34 EST


On Mon, Jul 10, 2023 at 06:09:00PM +0100, Mark Brown wrote:
> On Mon, Jul 10, 2023 at 06:49:19PM +0300, Andy Shevchenko wrote:
>
> > Refactor spi_register_controller() to drop duplicate IDR allocation.
> > Instead of if-else-if branching use two sequential if:s, which allows
> > to re-use the logic of IDR allocation in all cases.
>
> For legibility this should have been split into a separate factoring out
> of the shared code and rewriting of the logic, that'd make it trivial to
> review.

Should I do that for v3?

> > - mutex_lock(&board_lock);
> > - id = idr_alloc(&spi_master_idr, ctlr, first_dynamic,
> > - 0, GFP_KERNEL);
> > - mutex_unlock(&board_lock);
> > - if (WARN(id < 0, "couldn't get idr"))
> > - return id;
> > - ctlr->bus_num = id;
> > + status = spi_controller_id_alloc(ctlr, first_dynamic, 0);
> > + if (status)
> > + return status;
>
> The original does not do the remapping of return codes that the previous
> two copies do...

Yes, I had to mention this in the commit message that in my opinion this makes
no difference. With the dynamically allocated aliases the absence of the slot
has the same effect as in the other cases.

--
With Best Regards,
Andy Shevchenko