| .. | .. |
|---|
| 688 | 688 | } |
|---|
| 689 | 689 | } |
|---|
| 690 | 690 | |
|---|
| 691 | | -static void xgbe_an_isr_task(unsigned long data) |
|---|
| 691 | +static void xgbe_an_isr_task(struct tasklet_struct *t) |
|---|
| 692 | 692 | { |
|---|
| 693 | | - struct xgbe_prv_data *pdata = (struct xgbe_prv_data *)data; |
|---|
| 693 | + struct xgbe_prv_data *pdata = from_tasklet(pdata, t, tasklet_an); |
|---|
| 694 | 694 | |
|---|
| 695 | 695 | netif_dbg(pdata, intr, pdata->netdev, "AN interrupt received\n"); |
|---|
| 696 | 696 | |
|---|
| .. | .. |
|---|
| 715 | 715 | if (pdata->isr_as_tasklet) |
|---|
| 716 | 716 | tasklet_schedule(&pdata->tasklet_an); |
|---|
| 717 | 717 | else |
|---|
| 718 | | - xgbe_an_isr_task((unsigned long)pdata); |
|---|
| 718 | + xgbe_an_isr_task(&pdata->tasklet_an); |
|---|
| 719 | 719 | |
|---|
| 720 | 720 | return IRQ_HANDLED; |
|---|
| 721 | 721 | } |
|---|
| 722 | 722 | |
|---|
| 723 | 723 | static irqreturn_t xgbe_an_combined_isr(struct xgbe_prv_data *pdata) |
|---|
| 724 | 724 | { |
|---|
| 725 | | - xgbe_an_isr_task((unsigned long)pdata); |
|---|
| 725 | + xgbe_an_isr_task(&pdata->tasklet_an); |
|---|
| 726 | 726 | |
|---|
| 727 | 727 | return IRQ_HANDLED; |
|---|
| 728 | 728 | } |
|---|
| .. | .. |
|---|
| 1413 | 1413 | |
|---|
| 1414 | 1414 | /* If we have a separate AN irq, enable it */ |
|---|
| 1415 | 1415 | if (pdata->dev_irq != pdata->an_irq) { |
|---|
| 1416 | | - tasklet_init(&pdata->tasklet_an, xgbe_an_isr_task, |
|---|
| 1417 | | - (unsigned long)pdata); |
|---|
| 1416 | + tasklet_setup(&pdata->tasklet_an, xgbe_an_isr_task); |
|---|
| 1418 | 1417 | |
|---|
| 1419 | 1418 | ret = devm_request_irq(pdata->dev, pdata->an_irq, |
|---|
| 1420 | 1419 | xgbe_an_isr, 0, pdata->an_name, |
|---|