s390/qdio: adopt new tasklet API

Convert the Output Queue tasklet code to take a tasklet_struct as
parameter. Then initialize the tasklet with tasklet_setup() to indicate
that we follow the new model.

Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Reviewed-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
Julian Wiedmann 2020-10-01 09:47:47 +02:00 committed by Vasily Gorbik
parent ed645696e0
commit 6bb7a51b60
3 changed files with 5 additions and 11 deletions

View file

@ -370,7 +370,7 @@ void qdio_thinint_exit(void);
int test_nonshared_ind(struct qdio_irq *);
/* prototypes for setup */
void qdio_outbound_processing(unsigned long data);
void qdio_outbound_tasklet(struct tasklet_struct *t);
void qdio_outbound_timer(struct timer_list *t);
void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm,
struct irb *irb);

View file

@ -716,8 +716,10 @@ static int qdio_kick_outbound_q(struct qdio_q *q, unsigned int count,
return cc;
}
static void __qdio_outbound_processing(struct qdio_q *q)
void qdio_outbound_tasklet(struct tasklet_struct *t)
{
struct qdio_output_q *out_q = from_tasklet(out_q, t, tasklet);
struct qdio_q *q = container_of(out_q, struct qdio_q, u.out);
unsigned int start = q->first_to_check;
int count;
@ -754,13 +756,6 @@ static void __qdio_outbound_processing(struct qdio_q *q)
qdio_tasklet_schedule(q);
}
/* outbound tasklet */
void qdio_outbound_processing(unsigned long data)
{
struct qdio_q *q = (struct qdio_q *)data;
__qdio_outbound_processing(q);
}
void qdio_outbound_timer(struct timer_list *t)
{
struct qdio_q *q = from_timer(q, t, u.out.timer);

View file

@ -272,8 +272,7 @@ static void setup_queues(struct qdio_irq *irq_ptr,
setup_storage_lists(q, irq_ptr,
qdio_init->output_sbal_addr_array[i], i);
tasklet_init(&q->u.out.tasklet, qdio_outbound_processing,
(unsigned long) q);
tasklet_setup(&q->u.out.tasklet, qdio_outbound_tasklet);
timer_setup(&q->u.out.timer, qdio_outbound_timer, 0);
}
}