s390: qdio: Convert timers to use timer_setup()
Subsystems (2)
PATCH 1/1 s390: qdio: 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.
---
This requires commit 686fef928bba ("timer: Prepare to change timer callback argument type") in v4.14-rc3, but should be otherwise stand-alone.
--- drivers/s390/cio/qdio.h | 2 +- drivers/s390/cio/qdio_main.c | 4 ++-- drivers/s390/cio/qdio_setup.c | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-)
drivers/s390/cio/qdio.h +1 -1
@@ -392,7 +392,7 @@ int test_nonshared_ind(struct qdio_irq *);/* prototypes for setup */ void qdio_inbound_processing (unsigned long data);void qdio_outbound_processing (unsigned long data); -void qdio_outbound_timer (unsigned long data); +void qdio_outbound_timer (struct timer_list *t);void qdio_int_handler (struct ccw_device *cdev,unsigned long intparm,struct irb *irb); int qdio_allocate_qs(struct qdio_irq *irq_ptr, int nr_input_qs,
drivers/s390/cio/qdio_main.c +2 -2
@@ -894,9 +894,9 @@ void qdio_outbound_processing(unsigned long data)__qdio_outbound_processing (q); } -void qdio_outbound_timer (unsigned long data) +void qdio_outbound_timer (struct timer_list *t) { -struct qdio_q *q = (struct qdio_q *)data; +struct qdio_q *q =from_timer (q, t, o.out.timer);qdio_tasklet_schedule (q); }
drivers/s390/cio/qdio_setup.c +1 -2
@@ -252,8 +252,7 @@ static void setup_queues(struct qdio_irq *irq_ptr,tasklet_init (&q->tasklet, qdio_outbound_processing, (unsigned long ) q); -setup_timer (&q->u.out.timer, (void (*)(unsigned long )) - &qdio_outbound_timer, (unsigned long )q); +timer_setup (&q->u.out.timer, qdio_outbound_timer,0 ); } }
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security
drivers/s390/cio/qdio_main.c void qdio_outbound_processing(unsigned long data) · line 899
Quoted 9 lines · Kees Cook
In preparation for unconditionally passing the struct
timer_listpointer to all timer callbacks, switch to using the newtimer_setup()andfrom_timer()to pass the timer pointer explicitly.drivers/s390/cio/qdio_main.c +2
-2-void qdio_outbound_timer (unsigned long data) +void qdio_outbound_timer (struct timer_list *t) { -struct qdio_q *q = (struct qdio_q *)data; +struct qdio_q *q =from_timer (q, t, o.out.timer);
^
this should be u.out.timer
Will be applied to s390/linux.git
Thanks,
Sebastian
Quoted 5 lines · Sebastian Ott
Quoted 3 lines · Kees Cook
In preparation for unconditionally passing the struct
timer_listpointer to all timer callbacks, switch to using the newtimer_setup()andfrom_timer()to pass the timer pointer explicitly.
Quoted 7 lines
drivers/s390/cio/qdio_main.c void qdio_outbound_processing(unsigned long data) · line 899
Quoted 5 lines
drivers/s390/cio/qdio_main.c +2
-2-void qdio_outbound_timer (unsigned long data) +void qdio_outbound_timer (struct timer_list *t) { -struct qdio_q *q = (struct qdio_q *)data; +struct qdio_q *q =from_timer (q, t, o.out.timer);^
this should be u.out.timer
Oh thank you, good catch!
Quoted 1 line
Will be applied to s390/linux.git
Did you fix this up already or should I send a v2?
-Kees
Signature · 2 lines
Kees Cook Pixel Security
Quoted 14 lines · Kees Cook
Quoted 5 lines · Sebastian Ott
Quoted 3 lines · Kees Cook
In preparation for unconditionally passing the struct
timer_listpointer to all timer callbacks, switch to using the newtimer_setup()andfrom_timer()to pass the timer pointer explicitly.Quoted 7 lines
drivers/s390/cio/qdio_main.c void qdio_outbound_processing(unsigned long data) · line 899
Quoted 5 lines
drivers/s390/cio/qdio_main.c +2
-2-void qdio_outbound_timer (unsigned long data) +void qdio_outbound_timer (struct timer_list *t) { -struct qdio_q *q = (struct qdio_q *)data; +struct qdio_q *q =from_timer (q, t, o.out.timer);^
this should be u.out.timer
Quoted 5 lines
Oh thank you, good catch!
Quoted 1 line
Will be applied to s390/linux.git
Did you fix this up already or should I send a v2?
Already fixed, so no V2 needed.
Sebastian