Commit 6bb7a51b authored by Julian Wiedmann's avatar Julian Wiedmann Committed by Vasily Gorbik
Browse files

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: default avatarJulian Wiedmann <jwi@linux.ibm.com>
Reviewed-by: default avatarBenjamin Block <bblock@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent ed645696
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);
+3 −8
Original line number Diff line number Diff line
@@ -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);
+1 −2
Original line number Diff line number Diff line
@@ -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);
	}
}