| .. | .. |
|---|
| 62 | 62 | static void sdma_put(struct qib_sdma_state *); |
|---|
| 63 | 63 | static void sdma_set_state(struct qib_pportdata *, enum qib_sdma_states); |
|---|
| 64 | 64 | static void sdma_start_sw_clean_up(struct qib_pportdata *); |
|---|
| 65 | | -static void sdma_sw_clean_up_task(unsigned long); |
|---|
| 65 | +static void sdma_sw_clean_up_task(struct tasklet_struct *); |
|---|
| 66 | 66 | static void unmap_desc(struct qib_pportdata *, unsigned); |
|---|
| 67 | 67 | |
|---|
| 68 | 68 | static void sdma_get(struct qib_sdma_state *ss) |
|---|
| .. | .. |
|---|
| 119 | 119 | } |
|---|
| 120 | 120 | } |
|---|
| 121 | 121 | |
|---|
| 122 | | -static void sdma_sw_clean_up_task(unsigned long opaque) |
|---|
| 122 | +static void sdma_sw_clean_up_task(struct tasklet_struct *t) |
|---|
| 123 | 123 | { |
|---|
| 124 | | - struct qib_pportdata *ppd = (struct qib_pportdata *) opaque; |
|---|
| 124 | + struct qib_pportdata *ppd = from_tasklet(ppd, t, |
|---|
| 125 | + sdma_sw_clean_up_task); |
|---|
| 125 | 126 | unsigned long flags; |
|---|
| 126 | 127 | |
|---|
| 127 | 128 | spin_lock_irqsave(&ppd->sdma_lock, flags); |
|---|
| .. | .. |
|---|
| 436 | 437 | |
|---|
| 437 | 438 | INIT_LIST_HEAD(&ppd->sdma_activelist); |
|---|
| 438 | 439 | |
|---|
| 439 | | - tasklet_init(&ppd->sdma_sw_clean_up_task, sdma_sw_clean_up_task, |
|---|
| 440 | | - (unsigned long)ppd); |
|---|
| 440 | + tasklet_setup(&ppd->sdma_sw_clean_up_task, sdma_sw_clean_up_task); |
|---|
| 441 | 441 | |
|---|
| 442 | 442 | ret = dd->f_init_sdma_regs(ppd); |
|---|
| 443 | 443 | if (ret) |
|---|
| .. | .. |
|---|
| 565 | 565 | sge = &ss->sge; |
|---|
| 566 | 566 | while (dwords) { |
|---|
| 567 | 567 | u32 dw; |
|---|
| 568 | | - u32 len; |
|---|
| 568 | + u32 len = rvt_get_sge_length(sge, dwords << 2); |
|---|
| 569 | 569 | |
|---|
| 570 | | - len = dwords << 2; |
|---|
| 571 | | - if (len > sge->length) |
|---|
| 572 | | - len = sge->length; |
|---|
| 573 | | - if (len > sge->sge_length) |
|---|
| 574 | | - len = sge->sge_length; |
|---|
| 575 | | - BUG_ON(len == 0); |
|---|
| 576 | 570 | dw = (len + 3) >> 2; |
|---|
| 577 | 571 | addr = dma_map_single(&ppd->dd->pcidev->dev, sge->vaddr, |
|---|
| 578 | 572 | dw << 2, DMA_TO_DEVICE); |
|---|
| .. | .. |
|---|
| 595 | 589 | descqp = &ppd->sdma_descq[0].qw[0]; |
|---|
| 596 | 590 | ++ppd->sdma_generation; |
|---|
| 597 | 591 | } |
|---|
| 598 | | - sge->vaddr += len; |
|---|
| 599 | | - sge->length -= len; |
|---|
| 600 | | - sge->sge_length -= len; |
|---|
| 601 | | - if (sge->sge_length == 0) { |
|---|
| 602 | | - if (--ss->num_sge) |
|---|
| 603 | | - *sge = *ss->sg_list++; |
|---|
| 604 | | - } else if (sge->length == 0 && sge->mr->lkey) { |
|---|
| 605 | | - if (++sge->n >= RVT_SEGSZ) { |
|---|
| 606 | | - if (++sge->m >= sge->mr->mapsz) |
|---|
| 607 | | - break; |
|---|
| 608 | | - sge->n = 0; |
|---|
| 609 | | - } |
|---|
| 610 | | - sge->vaddr = |
|---|
| 611 | | - sge->mr->map[sge->m]->segs[sge->n].vaddr; |
|---|
| 612 | | - sge->length = |
|---|
| 613 | | - sge->mr->map[sge->m]->segs[sge->n].length; |
|---|
| 614 | | - } |
|---|
| 615 | | - |
|---|
| 592 | + rvt_update_sge(ss, len, false); |
|---|
| 616 | 593 | dwoffset += dw; |
|---|
| 617 | 594 | dwords -= dw; |
|---|
| 618 | 595 | } |
|---|
| .. | .. |
|---|
| 653 | 630 | if (ib_rvt_state_ops[qp->state] & RVT_PROCESS_RECV_OK) |
|---|
| 654 | 631 | rvt_error_qp(qp, IB_WC_GENERAL_ERR); |
|---|
| 655 | 632 | } else if (qp->s_wqe) |
|---|
| 656 | | - qib_send_complete(qp, qp->s_wqe, IB_WC_GENERAL_ERR); |
|---|
| 633 | + rvt_send_complete(qp, qp->s_wqe, IB_WC_GENERAL_ERR); |
|---|
| 657 | 634 | spin_unlock(&qp->s_lock); |
|---|
| 658 | 635 | spin_unlock(&qp->r_lock); |
|---|
| 659 | 636 | /* return zero to process the next send work request */ |
|---|
| .. | .. |
|---|
| 786 | 763 | * bringing the link up with traffic active on |
|---|
| 787 | 764 | * 7220, e.g. */ |
|---|
| 788 | 765 | ss->go_s99_running = 1; |
|---|
| 789 | | - /* fall through -- and start dma engine */ |
|---|
| 766 | + fallthrough; /* and start dma engine */ |
|---|
| 790 | 767 | case qib_sdma_event_e10_go_hw_start: |
|---|
| 791 | 768 | /* This reference means the state machine is started */ |
|---|
| 792 | 769 | sdma_get(&ppd->sdma_state); |
|---|