[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202008171227.D3A4F454D8@keescook>
Date: Mon, 17 Aug 2020 12:28:11 -0700
From: Kees Cook <keescook@...omium.org>
To: James Bottomley <jejb@...ux.ibm.com>
Cc: Allen Pais <allen.cryptic@...il.com>, martin.petersen@...cle.com,
kashyap.desai@...adcom.com, sumit.saxena@...adcom.com,
shivasharan.srikanteshwara@...adcom.com,
linux-scsi@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org,
linux-kernel@...r.kernel.org, target-devel@...r.kernel.org,
megaraidlinux.pdl@...adcom.com, Allen Pais <allen.lkml@...il.com>
Subject: Re: [PATCH 0/8] scsi: convert tasklets to use new tasklet_setup()
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@...il.com>
> >
> > 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
Powered by blists - more mailing lists