On Thu, Oct 5, 2017 at 1:26 AM, Kees Cook [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Remove uses of init_timer_on_stack() with open-coded function and data
assignments that could be expressed using timer_setup_on_stack(). Several
were removed from the stack entirely since there was a one-to-one mapping
of parent structure to timer, those are switched to using timer_setup()
instead. All related callbacks were adjusted to use from_timer().
Cc: "Rafael J. Wysocki" <redacted>
Cc: Pavel Machek <redacted>
Cc: Len Brown <redacted>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Stefan Richter <stefanr@s5r6.in-berlin.de>
Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Cc: Martin Schwidefsky <redacted>
Cc: Heiko Carstens <redacted>
Cc: Julian Wiedmann <redacted>
Cc: Ursula Braun <redacted>
Cc: Michael Reed <mdr@sgi.com>
Cc: "James E.J. Bottomley" <redacted>
Cc: "Martin K. Petersen" <redacted>
Cc: Thomas Gleixner <redacted>
Cc: <redacted>
Cc: <redacted>
Cc: <redacted>
Cc: <redacted>
Signed-off-by: Kees Cook <redacted>
---
drivers/base/power/main.c | 8 +++-----
drivers/firewire/core-transaction.c | 10 +++++-----
drivers/parport/ieee1284.c | 21 +++++++--------------
drivers/s390/char/tape.h | 1 +
drivers/s390/char/tape_std.c | 18 ++++++------------
drivers/s390/net/lcs.c | 16 ++++++----------
drivers/s390/net/lcs.h | 1 +
drivers/scsi/qla1280.c | 14 +++++---------
drivers/scsi/qla1280.h | 1 +
include/linux/parport.h | 1 +
include/linux/timer.h | 2 --
11 files changed, 36 insertions(+), 57 deletions(-)
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index 770b1539a083..ae47b2ec84b4 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -478,9 +478,9 @@ struct dpm_watchdog {
* There's not much we can do here to recover so panic() to
* capture a crash-dump in pstore.
*/
-static void dpm_watchdog_handler(unsigned long data)
+static void dpm_watchdog_handler(struct timer_list *t)
{
- struct dpm_watchdog *wd = (void *)data;
+ struct dpm_watchdog *wd = from_timer(wd, t, timer);
dev_emerg(wd->dev, "**** DPM device timeout ****\n");
show_stack(wd->tsk, NULL);@@ -500,11 +500,9 @@ static void dpm_watchdog_set(struct dpm_watchdog *wd, struct device *dev)
wd->dev = dev;
wd->tsk = current;
- init_timer_on_stack(timer);
+ timer_setup_on_stack(timer, dpm_watchdog_handler, 0);
/* use same timeout value for both suspend and resume */
timer->expires = jiffies + HZ * CONFIG_DPM_WATCHDOG_TIMEOUT;
- timer->function = dpm_watchdog_handler;
- timer->data = (unsigned long)wd;
add_timer(timer);
}
For the above:
Acked-by: Rafael J. Wysocki <redacted>