On Sat, Jul 19, 2025 at 08:52:41AM +0200, Greg Kroah-Hartman wrote:
> On Fri, Jul 18, 2025 at 03:49:37PM +0200, Thierry Reding wrote:
> > On Thu, Jul 17, 2025 at 02:11:41PM +0200, Greg Kroah-Hartman wrote:
> > > On Thu, Jul 17, 2025 at 12:32:34PM +0200, Thierry Reding wrote:
[...]
> >     struct syscore;
> > 
> >     struct syscore_ops {
> >             int (*suspend)(struct syscore *syscore);
> >             void (*resume)(struct syscore *syscore);
> >             void (*shutdown)(struct syscore *syscore);
> >     };
> > 
> >     struct syscore {
> >             const struct syscore_ops *ops;
> >             struct list_head node;
> >     };
> > 
> > Is that what you had in mind?
> 
> I missed the list_head, so yes, this would be better, but don't pass
> back the syscore structure, how about just a void * instead, making the
> whole container_of() stuff go away?

Yeah, that's a possibility. I personally don't like passing the void *
around because it's easier to make mistakes that way. I also find it
unintuitive because it doesn't immediately show you what the functions
expect.

My understanding is that the container_of() should get optimized away
most of the time, so there aren't any obvious downsides that I can see.

But I don't feel very strongly, so if you have a strong preference for
void pointers, I can do that.

Thierry

Attachment: signature.asc
Description: PGP signature

Reply via email to