From: Kees Cook <keescook@chromium.org>
To: Romain Perier <romain.perier@gmail.com>
Cc: kernel-hardening@lists.openwall.com
Subject: Re: [PRE-REVIEW PATCH 00/16] Modernize the tasklet API
Date: Mon, 30 Sep 2019 16:06:50 -0700 [thread overview]
Message-ID: <201909301552.4AAB4D4@keescook> (raw)
In-Reply-To: <20190929163028.9665-1-romain.perier@gmail.com>
On Sun, Sep 29, 2019 at 06:30:12PM +0200, Romain Perier wrote:
> Hello,
>
> Nowadays, modern kernel subsystems that use callbacks pass the data
> structure associated with a given callback as argument to the callback.
> The data structure specific to the driver or subsystem that uses this
> callback framework is usually "derivated" from the data structure that
> is passed as argument to the callback.
>
> The tasklet subsystem remains the one to pass callback argument as an
> arbitrary unsigned long argument (This has several issues that are
> explained in the first commit).
>
> This series aims to improve the tasklet API and converts all the code
> that is using it. It is based on the series for timer_list at [1].
>
> 1. https://lore.kernel.org/patchwork/patch/835464
>
>
> Romain Perier (16):
> tasklet: Prepare to change tasklet callback argument type
> crypto: ccp - Prepare to use the new tasklet API
> mmc: renesas_sdhi: Prepare to use the new tasklet API
> net: liquidio: Prepare to use the new tasklet API
> chelsio: Prepare to use the new tasklet API
> net: mvpp2: Prepare to use the new tasklet API
> qed: Prepare to use the new tasklet API
> isdn: Prepare to use the new tasklet API
> scsi: pm8001: Prepare to use the new tasklet API
> scsi: pmcraid: Prepare to use the new tasklet API
> treewide: Globally replace tasklet_init() by tasklet_setup()
> tasklet: Pass tasklet_struct pointer as .data in DECLARE_TASKLET
> tasklet: Pass tasklet_struct pointer to callbacks unconditionally
> tasklet: Remove the data argument from DECLARE_TASKLET() macros
> tasklet: convert callbacks prototype for using struct tasklet_struct *
> arguments
> tasklet: Add the new initialization function permanently
This is looking really good; thank you! I think for easier review it
would make sense to break out the "special" cases (where you're changing
structures, etc) into their own patches (and not as a bulk change --
they need review by different subsystem maintainers, etc).
Then the patch phases can be:
1) Introduce new APIs and casts
2) Convert special cases include passing the tasklet as their .data
(while also changing the prototypes and replacing tasklet_init() with
tasklet_setup())
3) Convert DECLARE_TASKLET() users to the same
4) Manual one-off conversions of tasklet_init() -> tasklet_setup()
5) Mechanical mass conversion of tasklet_init() -> tasklet_setup()
6) Mass removal of .data argument from DECLARE_TASKLET()
7) tasklet API internal swap and removal of .data
8) tasklet_init() and helper cast removals.
Step 1 needs to happen in an -rc1 (e.g. v5.5-rc1).
Then steps 2, 3, and 4 can happen simultaneously across all the
maintainers that need to be aware of it and land in the next release
(the linux-next for v5.6).
Finally steps 5, 6, 7, and 8 happen in the next release's -rc1
(v5.6-rc1).
If we can get the "phase 1" patch ready quick, maybe we can get into
-rc2 for v5.4 and move things up by a release...
-Kees
--
Kees Cook
next prev parent reply other threads:[~2019-09-30 23:07 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-29 16:30 [PRE-REVIEW PATCH 00/16] Modernize the tasklet API Romain Perier
2019-09-29 16:30 ` [PRE-REVIEW PATCH 01/16] tasklet: Prepare to change tasklet callback argument type Romain Perier
2019-09-29 16:30 ` [PRE-REVIEW PATCH 02/16] crypto: ccp - Prepare to use the new tasklet API Romain Perier
2019-09-30 22:35 ` Kees Cook
2019-09-29 16:30 ` [PRE-REVIEW PATCH 03/16] mmc: renesas_sdhi: " Romain Perier
2019-09-29 16:30 ` [PRE-REVIEW PATCH 04/16] net: liquidio: " Romain Perier
2019-09-29 16:30 ` [PRE-REVIEW PATCH 05/16] chelsio: " Romain Perier
2019-09-29 16:30 ` [PRE-REVIEW PATCH 06/16] net: mvpp2: " Romain Perier
2019-09-29 16:30 ` [PRE-REVIEW PATCH 07/16] qed: " Romain Perier
2019-09-29 16:30 ` [PRE-REVIEW PATCH 08/16] isdn: " Romain Perier
2019-09-29 16:30 ` [PRE-REVIEW PATCH 09/16] scsi: pm8001: " Romain Perier
2019-09-29 16:30 ` [PRE-REVIEW PATCH 10/16] scsi: pmcraid: " Romain Perier
2019-09-29 16:30 ` [PRE-REVIEW PATCH 11/16] treewide: Globally replace tasklet_init() by tasklet_setup() Romain Perier
2019-09-30 22:46 ` Kees Cook
2019-10-01 17:18 ` Romain Perier
2019-10-10 22:30 ` Kees Cook
2019-09-29 16:30 ` [PRE-REVIEW PATCH 12/16] tasklet: Pass tasklet_struct pointer as .data in DECLARE_TASKLET Romain Perier
2019-09-30 22:44 ` Kees Cook
2019-09-29 16:30 ` [PRE-REVIEW PATCH 13/16] tasklet: Pass tasklet_struct pointer to callbacks unconditionally Romain Perier
2019-09-30 22:49 ` Kees Cook
2019-09-29 16:30 ` [PRE-REVIEW PATCH 14/16] tasklet: Remove the data argument from DECLARE_TASKLET() macros Romain Perier
2019-09-30 22:50 ` Kees Cook
2019-09-29 16:30 ` [PRE-REVIEW PATCH 15/16] tasklet: convert callbacks prototype for using struct tasklet_struct * arguments Romain Perier
2019-09-29 16:30 ` [PRE-REVIEW PATCH 16/16] tasklet: Add the new initialization function permanently Romain Perier
2019-09-30 22:52 ` Kees Cook
2019-10-01 17:34 ` Romain Perier
2019-09-30 23:06 ` Kees Cook [this message]
2019-10-01 17:47 ` [PRE-REVIEW PATCH 00/16] Modernize the tasklet API Romain Perier
2019-10-10 22:34 ` Kees Cook
2019-10-30 8:20 ` Allen
2019-11-07 7:29 ` Romain Perier
2019-11-07 21:22 ` Kees Cook
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201909301552.4AAB4D4@keescook \
--to=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=romain.perier@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.