| .. | .. |
|---|
| 100 | 100 | req_not << 31), |
|---|
| 101 | 101 | eq->doorbell); |
|---|
| 102 | 102 | /* We still want ordering, just not swabbing, so add a barrier */ |
|---|
| 103 | | - mb(); |
|---|
| 103 | + wmb(); |
|---|
| 104 | 104 | } |
|---|
| 105 | 105 | |
|---|
| 106 | 106 | static struct mlx4_eqe *get_eqe(struct mlx4_eq *eq, u32 entry, u8 eqe_factor, |
|---|
| .. | .. |
|---|
| 558 | 558 | mlx4_dbg(dev, "%s: MLX4_EVENT_TYPE_SRQ_LIMIT. srq_no=0x%x, eq 0x%x\n", |
|---|
| 559 | 559 | __func__, be32_to_cpu(eqe->event.srq.srqn), |
|---|
| 560 | 560 | eq->eqn); |
|---|
| 561 | + fallthrough; |
|---|
| 561 | 562 | case MLX4_EVENT_TYPE_SRQ_CATAS_ERROR: |
|---|
| 562 | 563 | if (mlx4_is_master(dev)) { |
|---|
| 563 | 564 | /* forward only to slave owning the SRQ */ |
|---|
| .. | .. |
|---|
| 820 | 821 | !!(eqe->owner & 0x80) ^ |
|---|
| 821 | 822 | !!(eq->cons_index & eq->nent) ? "HW" : "SW"); |
|---|
| 822 | 823 | break; |
|---|
| 823 | | - }; |
|---|
| 824 | + } |
|---|
| 824 | 825 | |
|---|
| 825 | 826 | ++eq->cons_index; |
|---|
| 826 | 827 | eqes_found = 1; |
|---|
| .. | .. |
|---|
| 1012 | 1013 | |
|---|
| 1013 | 1014 | dma_list[i] = t; |
|---|
| 1014 | 1015 | eq->page_list[i].map = t; |
|---|
| 1015 | | - |
|---|
| 1016 | | - memset(eq->page_list[i].buf, 0, PAGE_SIZE); |
|---|
| 1017 | 1016 | } |
|---|
| 1018 | 1017 | |
|---|
| 1019 | 1018 | eq->eqn = mlx4_bitmap_alloc(&priv->eq_table.bitmap); |
|---|
| .. | .. |
|---|
| 1058 | 1057 | INIT_LIST_HEAD(&eq->tasklet_ctx.list); |
|---|
| 1059 | 1058 | INIT_LIST_HEAD(&eq->tasklet_ctx.process_list); |
|---|
| 1060 | 1059 | spin_lock_init(&eq->tasklet_ctx.lock); |
|---|
| 1061 | | - tasklet_init(&eq->tasklet_ctx.task, mlx4_cq_tasklet_cb, |
|---|
| 1062 | | - (unsigned long)&eq->tasklet_ctx); |
|---|
| 1060 | + tasklet_setup(&eq->tasklet_ctx.task, mlx4_cq_tasklet_cb); |
|---|
| 1063 | 1061 | |
|---|
| 1064 | 1062 | return err; |
|---|
| 1065 | 1063 | |
|---|