summaryrefslogtreecommitdiffstats
path: root/drivers/hsi
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2017-10-04 19:26:59 -0400
committerThomas Gleixner <tglx@linutronix.de>2017-10-05 09:01:18 -0400
commitdf7e828c1b699792b2ff26ebcf0a6d1025b2b790 (patch)
treeb1979d9daaa83d8ad7b4e4b0f5e01700f04380d1 /drivers/hsi
parent185981d54a60ae90942c6ba9006b250f3348cef2 (diff)
timer: Remove init_timer_deferrable() in favor of timer_setup()
This refactors the only users of init_timer_deferrable() to use the new timer_setup() and from_timer(). Removes definition of init_timer_deferrable(). Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: David S. Miller <davem@davemloft.net> # for networking parts Acked-by: Sebastian Reichel <sre@kernel.org> # for drivers/hsi parts Cc: linux-mips@linux-mips.org Cc: Petr Mladek <pmladek@suse.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Lai Jiangshan <jiangshanlai@gmail.com> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Kalle Valo <kvalo@qca.qualcomm.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Pavel Machek <pavel@ucw.cz> Cc: linux1394-devel@lists.sourceforge.net Cc: Chris Metcalf <cmetcalf@mellanox.com> Cc: linux-s390@vger.kernel.org Cc: "James E.J. Bottomley" <jejb@linux.vnet.ibm.com> Cc: Wim Van Sebroeck <wim@iguana.be> 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: Guenter Roeck <linux@roeck-us.net> 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: Heiko Carstens <heiko.carstens@de.ibm.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: "Rafael J. Wysocki" <rjw@rjwysocki.net> Cc: linux-watchdog@vger.kernel.org Cc: linux-scsi@vger.kernel.org Cc: "Martin K. Petersen" <martin.petersen@oracle.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: linux-wireless@vger.kernel.org Cc: Sebastian Reichel <sre@kernel.org> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Stefan Richter <stefanr@s5r6.in-berlin.de> Cc: Michael Reed <mdr@sgi.com> 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-6-git-send-email-keescook@chromium.org
Diffstat (limited to 'drivers/hsi')
-rw-r--r--drivers/hsi/clients/ssi_protocol.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/drivers/hsi/clients/ssi_protocol.c b/drivers/hsi/clients/ssi_protocol.c
index 93d28c0ec8bf..67af03d3aeb3 100644
--- a/drivers/hsi/clients/ssi_protocol.c
+++ b/drivers/hsi/clients/ssi_protocol.c
@@ -464,10 +464,10 @@ static void ssip_error(struct hsi_client *cl)
464 hsi_async_read(cl, msg); 464 hsi_async_read(cl, msg);
465} 465}
466 466
467static void ssip_keep_alive(unsigned long data) 467static void ssip_keep_alive(struct timer_list *t)
468{ 468{
469 struct hsi_client *cl = (struct hsi_client *)data; 469 struct ssi_protocol *ssi = from_timer(ssi, t, keep_alive);
470 struct ssi_protocol *ssi = hsi_client_drvdata(cl); 470 struct hsi_client *cl = ssi->cl;
471 471
472 dev_dbg(&cl->device, "Keep alive kick in: m(%d) r(%d) s(%d)\n", 472 dev_dbg(&cl->device, "Keep alive kick in: m(%d) r(%d) s(%d)\n",
473 ssi->main_state, ssi->recv_state, ssi->send_state); 473 ssi->main_state, ssi->recv_state, ssi->send_state);
@@ -490,9 +490,19 @@ static void ssip_keep_alive(unsigned long data)
490 spin_unlock(&ssi->lock); 490 spin_unlock(&ssi->lock);
491} 491}
492 492
493static void ssip_wd(unsigned long data) 493static void ssip_rx_wd(struct timer_list *t)
494{
495 struct ssi_protocol *ssi = from_timer(ssi, t, rx_wd);
496 struct hsi_client *cl = ssi->cl;
497
498 dev_err(&cl->device, "Watchdog trigerred\n");
499 ssip_error(cl);
500}
501
502static void ssip_tx_wd(unsigned long data)
494{ 503{
495 struct hsi_client *cl = (struct hsi_client *)data; 504 struct ssi_protocol *ssi = from_timer(ssi, t, tx_wd);
505 struct hsi_client *cl = ssi->cl;
496 506
497 dev_err(&cl->device, "Watchdog trigerred\n"); 507 dev_err(&cl->device, "Watchdog trigerred\n");
498 ssip_error(cl); 508 ssip_error(cl);
@@ -1084,15 +1094,9 @@ static int ssi_protocol_probe(struct device *dev)
1084 } 1094 }
1085 1095
1086 spin_lock_init(&ssi->lock); 1096 spin_lock_init(&ssi->lock);
1087 init_timer_deferrable(&ssi->rx_wd); 1097 timer_setup(&ssi->rx_wd, ssip_rx_wd, TIMER_DEFERRABLE);
1088 init_timer_deferrable(&ssi->tx_wd); 1098 timer_setup(&ssi->tx_wd, ssip_tx_wd, TIMER_DEFERRABLE);
1089 init_timer(&ssi->keep_alive); 1099 timer_setup(&ssi->keep_alive, ssip_keep_alive, 0);
1090 ssi->rx_wd.data = (unsigned long)cl;
1091 ssi->rx_wd.function = ssip_wd;
1092 ssi->tx_wd.data = (unsigned long)cl;
1093 ssi->tx_wd.function = ssip_wd;
1094 ssi->keep_alive.data = (unsigned long)cl;
1095 ssi->keep_alive.function = ssip_keep_alive;
1096 INIT_LIST_HEAD(&ssi->txqueue); 1100 INIT_LIST_HEAD(&ssi->txqueue);
1097 INIT_LIST_HEAD(&ssi->cmdqueue); 1101 INIT_LIST_HEAD(&ssi->cmdqueue);
1098 atomic_set(&ssi->tx_usecnt, 0); 1102 atomic_set(&ssi->tx_usecnt, 0);