tty: cyclades: Convert timers to use timer_setup()
PATCH 1/1 tty: cyclades: Convert timers to use timer_setup()
In preparation for unconditionally passing the struct timer_list pointer to all timer callbacks, switch to using the new timer_setup() and from_timer() to pass the timer pointer explicitly. Moves timer structures from global to attached to struct cyclades_port.
Cc Greg Kroah-Hartman <[email protected]>
Cc Jiri Slaby <[email protected]>
Signed-off-by Kees Cook <[email protected]>
--- drivers/tty/cyclades.c | 16 ++++++---------- include/linux/cyclades.h | 3 +++ 2 files changed, 9 insertions(+), 10 deletions(-)
drivers/tty/cyclades.c +6 -10
@@ -286,8 +286,7 @@ static long cyz_polling_cycle = CZ_DEF_POLL; static DEFINE_TIMER(cyz_timerlist, cyz_poll, 0, 0);#else /* CONFIG_CYZ_INTR */ -static void cyz_rx_restart (unsigned long ); -static struct timer_list cyz_rx_full_timer[NR_PORTS ]; +static void cyz_rx_restart (struct timer_list *);#endif /* CONFIG_CYZ_INTR */ static void cyy_writeb (struct cyclades_port *port,u32 reg,u8 val)
@@ -992,10 +991,8 @@ static void cyz_handle_rx(struct cyclades_port *info) else char_count = rx_put - rx_get + rx_bufsize;if (char_count >=readl (&buf_ctrl->rx_threshold) && - !timer_pending (&cyz_rx_full_timer[ - info->line])) -mod_timer (&cyz_rx_full_timer[info->line], - jiffies +1 ); + !timer_pending (&info->rx_full_timer)) +mod_timer (&info->rx_full_timer, jiffies +1 );#endif info->idle_stats.recv_idle = jiffies;tty_schedule_flip (&info->port);
@@ -1197,9 +1194,9 @@ static irqreturn_t cyz_interrupt(int irq, void *dev_id)return IRQ_HANDLED ; }/* cyz_interrupt */ -static void cyz_rx_restart (unsigned long arg) +static void cyz_rx_restart (struct timer_list *t) { -struct cyclades_port *info = (struct cyclades_port *)arg; +struct cyclades_port *info =from_timer (info, t, rx_full_timer);struct cyclades_card *card = info->card;int retval;__u32 channel = info->line - card->first_line;
@@ -3097,8 +3094,7 @@ static int cy_init_card(struct cyclades_card *cinfo)else info->xmit_fifo_size =4 *CYZ_FIFO_SIZE ;#ifdef CONFIG_CYZ_INTR -setup_timer (&cyz_rx_full_timer[port], - cyz_rx_restart, (unsigned long )info); +timer_setup (&info->rx_full_timer, cyz_rx_restart,0 );#endif }else {unsigned short chip_number;
include/linux/cyclades.h +3 -0
@@ -156,6 +156,9 @@ struct cyclades_port {struct cyclades_icount icount;struct completion shutdown_wait;int throttle; +#ifdef CONFIG_CYZ_INTR +struct timer_list rx_full_timer; +#endif };#define CLOSING_WAIT_DELAY 30*HZ
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security