mirror of https://gitee.com/openkylin/linux.git
net: sched: convert tasklets to use new tasklet_setup() API
In preparation for unconditionally passing the struct tasklet_struct pointer to all tasklet callbacks, switch to using the new tasklet_setup() and from_tasklet() to pass the tasklet pointer explicitly. Signed-off-by: Romain Perier <romain.perier@gmail.com> Signed-off-by: Allen Pais <apais@linux.microsoft.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
b5bd8b62df
commit
6e1978a9a9
|
@ -24,6 +24,11 @@ static inline void *qdisc_priv(struct Qdisc *q)
|
|||
return &q->privdata;
|
||||
}
|
||||
|
||||
static inline struct Qdisc *qdisc_from_priv(void *priv)
|
||||
{
|
||||
return container_of(priv, struct Qdisc, privdata);
|
||||
}
|
||||
|
||||
/*
|
||||
Timer resolution MUST BE < 10% of min_schedulable_packet_size/bandwidth
|
||||
|
||||
|
|
|
@ -466,10 +466,10 @@ drop: __maybe_unused
|
|||
* non-ATM interfaces.
|
||||
*/
|
||||
|
||||
static void sch_atm_dequeue(unsigned long data)
|
||||
static void sch_atm_dequeue(struct tasklet_struct *t)
|
||||
{
|
||||
struct Qdisc *sch = (struct Qdisc *)data;
|
||||
struct atm_qdisc_data *p = qdisc_priv(sch);
|
||||
struct atm_qdisc_data *p = from_tasklet(p, t, task);
|
||||
struct Qdisc *sch = qdisc_from_priv(p);
|
||||
struct atm_flow_data *flow;
|
||||
struct sk_buff *skb;
|
||||
|
||||
|
@ -563,7 +563,7 @@ static int atm_tc_init(struct Qdisc *sch, struct nlattr *opt,
|
|||
if (err)
|
||||
return err;
|
||||
|
||||
tasklet_init(&p->task, sch_atm_dequeue, (unsigned long)sch);
|
||||
tasklet_setup(&p->task, sch_atm_dequeue);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue