diff options
| author | Kees Cook <keescook@chromium.org> | 2017-10-04 19:26:59 -0400 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2017-10-05 09:01:18 -0400 |
| commit | df7e828c1b699792b2ff26ebcf0a6d1025b2b790 (patch) | |
| tree | b1979d9daaa83d8ad7b4e4b0f5e01700f04380d1 /drivers/hsi | |
| parent | 185981d54a60ae90942c6ba9006b250f3348cef2 (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.c | 32 |
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 | ||
| 467 | static void ssip_keep_alive(unsigned long data) | 467 | static 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 | ||
| 493 | static void ssip_wd(unsigned long data) | 493 | static 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 | |||
| 502 | static 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); |
