|
Message-ID: <202007161416.9C1B8F3D26@keescook> Date: Thu, 16 Jul 2020 14:24:20 -0700 From: Kees Cook <keescook@...omium.org> To: Dmitry Torokhov <dmitry.torokhov@...il.com> Cc: Peter Zijlstra <peterz@...radead.org>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Thomas Gleixner <tglx@...utronix.de>, Allen Pais <allen.lkml@...il.com>, Oscar Carter <oscar.carter@....com>, Romain Perier <romain.perier@...il.com>, Kevin Curtis <kevin.curtis@...site.co.uk>, "David S. Miller" <davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org>, Harald Freudenberger <freude@...ux.ibm.com>, Heiko Carstens <hca@...ux.ibm.com>, Vasily Gorbik <gor@...ux.ibm.com>, Christian Borntraeger <borntraeger@...ibm.com>, Jiri Slaby <jslaby@...e.com>, Felipe Balbi <balbi@...nel.org>, Jason Wessel <jason.wessel@...driver.com>, Daniel Thompson <daniel.thompson@...aro.org>, Douglas Anderson <dianders@...omium.org>, Mitchell Blank Jr <mitch@...oth.com>, Julian Wiedmann <jwi@...ux.ibm.com>, Karsten Graul <kgraul@...ux.ibm.com>, Ursula Braun <ubraun@...ux.ibm.com>, Jaroslav Kysela <perex@...ex.cz>, Takashi Iwai <tiwai@...e.com>, Christian Gromm <christian.gromm@...rochip.com>, Nishka Dasgupta <nishkadg.linux@...il.com>, Masahiro Yamada <masahiroy@...nel.org>, Stephen Boyd <swboyd@...omium.org>, "Matthew Wilcox (Oracle)" <willy@...radead.org>, Wambui Karuga <wambui.karugax@...il.com>, Guenter Roeck <linux@...ck-us.net>, Chris Packham <chris.packham@...iedtelesis.co.nz>, Kyungtae Kim <kt0755@...il.com>, Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@...ux.intel.com>, Sebastian Andrzej Siewior <bigeasy@...utronix.de>, "Rafael J. Wysocki" <rafael.j.wysocki@...el.com>, Jonathan Corbet <corbet@....net>, Will Deacon <will@...nel.org>, "linux-input@...r.kernel.org" <linux-input@...r.kernel.org>, lkml <linux-kernel@...r.kernel.org>, netdev <netdev@...r.kernel.org>, linux-s390@...r.kernel.org, devel@...verdev.osuosl.org, USB list <linux-usb@...r.kernel.org>, kgdb-bugreport@...ts.sourceforge.net, "alsa-devel@...a-project.org" <alsa-devel@...a-project.org>, kernel-hardening@...ts.openwall.com Subject: Re: [PATCH 0/3] Modernize tasklet callback API On Thu, Jul 16, 2020 at 01:48:20PM -0700, Dmitry Torokhov wrote: > On Thu, Jul 16, 2020 at 12:14 PM Kees Cook <keescook@...omium.org> wrote: > > > > On Thu, Jul 16, 2020 at 09:57:18AM +0200, Peter Zijlstra wrote: > > > On Wed, Jul 15, 2020 at 08:08:44PM -0700, Kees Cook wrote: > > > > Hi, > > > > > > > > This is the infrastructure changes to prepare the tasklet API for > > > > conversion to passing the tasklet struct as the callback argument instead > > > > of an arbitrary unsigned long. The first patch details why this is useful > > > > (it's the same rationale as the timer_struct changes from a bit ago: > > > > less abuse during memory corruption attacks, more in line with existing > > > > ways of doing things in the kernel, save a little space in struct, > > > > etc). Notably, the existing tasklet API use is much less messy, so there > > > > is less to clean up. > > > > > > I would _MUCH_ rather see tasklets go the way of the dodo, esp. given > > > that: > > > > > > > drivers/input/keyboard/omap-keypad.c | 2 +- > > > > drivers/input/serio/hil_mlc.c | 2 +- > > > > drivers/net/wan/farsync.c | 4 +-- > > > > drivers/s390/crypto/ap_bus.c | 2 +- > > > > drivers/staging/most/dim2/dim2.c | 2 +- > > > > drivers/staging/octeon/ethernet-tx.c | 2 +- > > > > drivers/tty/vt/keyboard.c | 2 +- > > > > drivers/usb/gadget/udc/snps_udc_core.c | 6 ++--- > > > > drivers/usb/host/fhci-sched.c | 2 +- > > > > include/linux/interrupt.h | 37 ++++++++++++++++++++++---- > > > > kernel/backtracetest.c | 2 +- > > > > kernel/debug/debug_core.c | 2 +- > > > > kernel/irq/resend.c | 2 +- > > > > kernel/softirq.c | 18 ++++++++++++- > > > > net/atm/pppoatm.c | 2 +- > > > > net/iucv/iucv.c | 2 +- > > > > sound/drivers/pcsp/pcsp_lib.c | 2 +- > > > > 17 files changed, 66 insertions(+), 25 deletions(-) > > > > > > there appear to be hardly any users left.. Can't we stage an extinction > > > event here instead? > > > > Oh, I wish, but no. That's just the ones using DECLARE_TASKLET. There > > are hundred(s?) more (see the referenced tree). > > Still, do we really need tasklets? Can we substitute timers executing > immediately in their place? If there is a direct replacement, then sure, I'd be happy to do whatever, however it does not look mechanical to me. If there is a mechanical way that will convert these two directories (as an example of various complexities): drivers/crypto/ccp/ drivers/gpu/drm/i915/gt/ then let's get it documented. But if not, let's write up a paragraph for the deprecated.rst, mark it as deprecated in comments, and modernize the API (which is a mostly mechanical change) to avoid it being a problem for CFI, for memory corruption, and heap space, etc. -- Kees Cook
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.