timer: Remove init_timer_on_stack() in favor of timer_setup_on_stack()
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(). Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: linux-mips@linux-mips.org Cc: Petr Mladek <pmladek@suse.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Sebastian Reichel <sre@kernel.org> Cc: Kalle Valo <kvalo@qca.qualcomm.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Pavel Machek <pavel@ucw.cz> Cc: Wim Van Sebroeck <wim@iguana.be> Cc: linux1394-devel@lists.sourceforge.net Cc: Chris Metcalf <cmetcalf@mellanox.com> Cc: linux-s390@vger.kernel.org Cc: linux-wireless@vger.kernel.org Cc: "James E.J. Bottomley" <jejb@linux.vnet.ibm.com> Cc: linux-scsi@vger.kernel.org Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Ursula Braun <ubraun@linux.vnet.ibm.com> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Viresh Kumar <viresh.kumar@linaro.org> Cc: Harish Patil <harish.patil@cavium.com> Cc: Stephen Boyd <sboyd@codeaurora.org> Cc: Michael Reed <mdr@sgi.com> Cc: Manish Chopra <manish.chopra@cavium.com> Cc: Len Brown <len.brown@intel.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: linux-pm@vger.kernel.org Cc: Lai Jiangshan <jiangshanlai@gmail.com> Cc: Tejun Heo <tj@kernel.org> Cc: Julian Wiedmann <jwi@linux.vnet.ibm.com> Cc: John Stultz <john.stultz@linaro.org> Cc: Mark Gross <mark.gross@intel.com> Cc: linux-watchdog@vger.kernel.org Cc: "Martin K. Petersen" <martin.petersen@oracle.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Stefan Richter <stefanr@s5r6.in-berlin.de> Cc: Guenter Roeck <linux@roeck-us.net> Cc: netdev@vger.kernel.org Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: linuxppc-dev@lists.ozlabs.org Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com> Link: https://lkml.kernel.org/r/1507159627-127660-4-git-send-email-keescook@chromium.org
这个提交包含在:
@@ -44,10 +44,11 @@ static void parport_ieee1284_wakeup (struct parport *port)
|
||||
up (&port->physport->ieee1284.irq);
|
||||
}
|
||||
|
||||
static struct parport *port_from_cookie[PARPORT_MAX];
|
||||
static void timeout_waiting_on_port (unsigned long cookie)
|
||||
static void timeout_waiting_on_port (struct timer_list *t)
|
||||
{
|
||||
parport_ieee1284_wakeup (port_from_cookie[cookie % PARPORT_MAX]);
|
||||
struct parport *port = from_timer(port, t, timer);
|
||||
|
||||
parport_ieee1284_wakeup (port);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -69,27 +70,19 @@ static void timeout_waiting_on_port (unsigned long cookie)
|
||||
int parport_wait_event (struct parport *port, signed long timeout)
|
||||
{
|
||||
int ret;
|
||||
struct timer_list timer;
|
||||
|
||||
if (!port->physport->cad->timeout)
|
||||
/* Zero timeout is special, and we can't down() the
|
||||
semaphore. */
|
||||
return 1;
|
||||
|
||||
init_timer_on_stack(&timer);
|
||||
timer.expires = jiffies + timeout;
|
||||
timer.function = timeout_waiting_on_port;
|
||||
port_from_cookie[port->number % PARPORT_MAX] = port;
|
||||
timer.data = port->number;
|
||||
|
||||
add_timer (&timer);
|
||||
timer_setup(&port->timer, timeout_waiting_on_port, 0);
|
||||
mod_timer(&port->timer, jiffies + timeout);
|
||||
ret = down_interruptible (&port->physport->ieee1284.irq);
|
||||
if (!del_timer_sync(&timer) && !ret)
|
||||
if (!del_timer_sync(&port->timer) && !ret)
|
||||
/* Timed out. */
|
||||
ret = 1;
|
||||
|
||||
destroy_timer_on_stack(&timer);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
在新工单中引用
屏蔽一个用户