Messages in this thread | | | Date | Mon, 27 Nov 2023 11:29:55 +0300 | From | Dan Carpenter <> | Subject | Re: [PATCH 1/2] mux: Turn 'mux' into a flexible array in 'struct mux_chip' |
| |
On Sun, Nov 26, 2023 at 09:08:11AM +0100, Christophe JAILLET wrote: > The 'mux' array stored in 'struct mux_chip' can be changed into a flexible > array. > > This saves: > - a pointer in the structure > - an indirection when accessing the array > - some pointer arithmetic when computing and storing the address in > 'mux' > > It is also now possible to use __counted_by() and struct_size() for > additional safety. > > The address for the 'priv' memory is computed with mux_chip_priv(). It > should work as good with a flexible array. > > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > --- > The struct_size() goodies only work if sizeof_priv is 0. Adding an > additional size_add() would make it safe in all cases but would make code > less readable (IMHO).
Once people start using size_add() then we'll get used to reading it.
The controllers value comes from device tree. For example, in mux_mmio_probe().
ret = of_property_count_u32_elems(np, "mux-reg-masks");
I should make Smatch parse device trees. So that it will know the correct range for ret in that assignment. Eventually, I will.
KTODO: make Smatch understand device tree values
regards, dan carpenter
| |