25.03.2021 01:01, John Hubbard пишет: > On 3/24/21 2:31 PM, Dmitry Osipenko wrote: >> ... >>> +#include <linux/kobject.h> >>> + >>> +struct cma_kobject { >>> + struct cma *cma; >>> + struct kobject kobj; >> >> If you'll place the kobj as the first member of the struct, then >> container_of will be a no-op. >> > > However, *this does not matter*. Let's not get carried away. If > container_of() ends up as a compile-time addition of +8, instead > of +0, there is not going to be a visible effect in the world. > Or do you have some perf data to the contrary? > > Sometimes these kinds of things matter. But other times, they are > just pointless to fret about, and this is once such case. Performance is out of question here, my main point is about maintaining a good coding style. Otherwise there is no point in not embedding kobj into cma struct as well, IMO.