On Mon, Aug 17, 2020 at 07:41:58AM -0700, James Bottomley wrote: > On Mon, 2020-08-17 at 14:24 +0530, Allen Pais wrote: > > From: Allen Pais <allen.lkml@xxxxxxxxx> > > > > Commit 12cc923f1ccc ("tasklet: Introduce new initialization API")' > > introduced a new tasklet initialization API. This series converts > > all the scsi drivers to use the new tasklet_setup() API > > I've got to say I agree with Jens, this was a silly obfuscation: > > +#define from_tasklet(var, callback_tasklet, tasklet_fieldname) \ > + container_of(callback_tasklet, typeof(*var), tasklet_fieldname) > > Just use container_of directly since we all understand what it does. But then the lines get really long, wrapped, etc. This is what the timer_struct conversion did too (added a container_of wrapper), so I think it makes sense here too. -- Kees Cook