From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753065AbdHQObA (ORCPT ); Thu, 17 Aug 2017 10:31:00 -0400 Received: from Galois.linutronix.de ([146.0.238.70]:36788 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752973AbdHQOa6 (ORCPT ); Thu, 17 Aug 2017 10:30:58 -0400 Date: Thu, 17 Aug 2017 16:30:55 +0200 (CEST) From: Thomas Gleixner To: Kees Cook cc: LKML , "kernel-hardening@lists.openwall.com" Subject: Re: refactoring timers to avoid init_timer*() In-Reply-To: Message-ID: References: User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 16 Aug 2017, Kees Cook wrote: > In the process I noticed that we already have > scripts/coccinelle/api/setup_timer.cocci to detect existing cases of: > > init_timer(t); > t->function = func; > t->data = data; > > And replace it with: setup_timer(t, func, data); > > Another pattern was: > > t->expires = when; > add_timer(t); > > Which can be replaced with mod_timer(t, when); > > So, I've created scripts/coccinelle/api/mod_timer.cocci for the > latter, and done a few passes with manual review. The current result > doesn't fully eliminate init_timer() yet, but it gets much closer. I > just wanted to be sure that this whole clean-up would actually be > welcome before I try to nail down the last many cases. I think it's worth the trouble, but rather than having a gazillion of commits with the same changelog, we should do that based on a cocci script right before the next rc1 in one go and be done with it. That will cover most of the init_timer() cases and we can fixup the remaining few oddballs manually after that. I just noticed that we have the same pattern with hrtimer_init(). I had a stab on adding hrtimer_setup() and friends which takes a function argument and converted the bulk with coccinelle. 82 files changed, 186 insertions(+), 210 deletions(-) We can do that in the same sweep as the init_timer() one and then you can do the canary magic on hrtimers as well. Thanks, tglx