Loading drivers/firmware/efi/libstub/x86-stub.h +2 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ #include <linux/efi.h> extern struct boot_params *boot_params_pointer asm("boot_params"); extern void trampoline_32bit_src(void *, bool); extern const u16 trampoline_ljmp_imm_offset; Loading drivers/infiniband/hw/irdma/verbs.c +0 −20 Original line number Diff line number Diff line Loading @@ -1174,21 +1174,6 @@ static int irdma_wait_for_suspend(struct irdma_qp *iwqp) return 0; } static int irdma_wait_for_suspend(struct irdma_qp *iwqp) { if (!wait_event_timeout(iwqp->iwdev->suspend_wq, !iwqp->suspend_pending, msecs_to_jiffies(IRDMA_EVENT_TIMEOUT_MS))) { iwqp->suspend_pending = false; ibdev_warn(&iwqp->iwdev->ibdev, "modify_qp timed out waiting for suspend. qp_id = %d, last_ae = 0x%x\n", iwqp->ibqp.qp_num, iwqp->last_aeq); return -EBUSY; } return 0; } /** * irdma_modify_qp_roce - modify qp request * @ibqp: qp's pointer for modify Loading Loading @@ -2951,11 +2936,6 @@ static int irdma_reg_user_mr_type_qp(struct irdma_mem_reg_req req, int err; u8 lvl; /* iWarp: Catch page not starting on OS page boundary */ if (!rdma_protocol_roce(&iwdev->ibdev, 1) && ib_umem_offset(iwmr->region)) return -EINVAL; /* iWarp: Catch page not starting on OS page boundary */ if (!rdma_protocol_roce(&iwdev->ibdev, 1) && ib_umem_offset(iwmr->region)) Loading drivers/md/dm-verity-target.c +3 −28 Original line number Diff line number Diff line Loading @@ -616,10 +616,7 @@ static int verity_verify_io(struct dm_verity_io *io) if (unlikely(r < 0)) return r; #if defined(CONFIG_DM_VERITY_FEC) if (verity_fec_is_enabled(v)) start = *iter; #endif r = verity_for_io_block(v, io, iter, &wait); if (unlikely(r < 0)) return r; Loading Loading @@ -704,23 +701,6 @@ static void verity_work(struct work_struct *w) verity_finish_io(io, errno_to_blk_status(verity_verify_io(io))); } static void verity_tasklet(unsigned long data) { struct dm_verity_io *io = (struct dm_verity_io *)data; int err; io->in_tasklet = true; err = verity_verify_io(io); if (err == -EAGAIN || err == -ENOMEM) { /* fallback to retrying with work-queue */ INIT_WORK(&io->work, verity_work); queue_work(io->v->verify_wq, &io->work); return; } verity_finish_io(io, errno_to_blk_status(err)); } static void verity_end_io(struct bio *bio) { struct dm_verity_io *io = bio->bi_private; Loading @@ -733,14 +713,9 @@ static void verity_end_io(struct bio *bio) return; } if (static_branch_unlikely(&use_tasklet_enabled) && io->v->use_tasklet) { tasklet_init(&io->tasklet, verity_tasklet, (unsigned long)io); tasklet_schedule(&io->tasklet); } else { INIT_WORK(&io->work, verity_work); queue_work(io->v->verify_wq, &io->work); } } /* * Prefetch buffers for the specified io. Loading drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c +55 −20 Original line number Diff line number Diff line Loading @@ -539,44 +539,79 @@ stmmac_set_pauseparam(struct net_device *netdev, } } static u64 stmmac_get_rx_normal_irq_n(struct stmmac_priv *priv, int q) { u64 total; int cpu; total = 0; for_each_possible_cpu(cpu) { struct stmmac_pcpu_stats *pcpu; unsigned int start; u64 irq_n; pcpu = per_cpu_ptr(priv->xstats.pcpu_stats, cpu); do { start = u64_stats_fetch_begin(&pcpu->syncp); irq_n = u64_stats_read(&pcpu->rx_normal_irq_n[q]); } while (u64_stats_fetch_retry(&pcpu->syncp, start)); total += irq_n; } return total; } static u64 stmmac_get_tx_normal_irq_n(struct stmmac_priv *priv, int q) { u64 total; int cpu; total = 0; for_each_possible_cpu(cpu) { struct stmmac_pcpu_stats *pcpu; unsigned int start; u64 irq_n; pcpu = per_cpu_ptr(priv->xstats.pcpu_stats, cpu); do { start = u64_stats_fetch_begin(&pcpu->syncp); irq_n = u64_stats_read(&pcpu->tx_normal_irq_n[q]); } while (u64_stats_fetch_retry(&pcpu->syncp, start)); total += irq_n; } return total; } static void stmmac_get_per_qstats(struct stmmac_priv *priv, u64 *data) { u32 tx_cnt = priv->plat->tx_queues_to_use; u32 rx_cnt = priv->plat->rx_queues_to_use; unsigned int start; int q, stat; char *p; int q; for (q = 0; q < tx_cnt; q++) { struct stmmac_txq_stats *txq_stats = &priv->xstats.txq_stats[q]; struct stmmac_txq_stats snapshot; u64 pkt_n; do { start = u64_stats_fetch_begin(&txq_stats->syncp); snapshot = *txq_stats; } while (u64_stats_fetch_retry(&txq_stats->syncp, start)); start = u64_stats_fetch_begin(&txq_stats->napi_syncp); pkt_n = u64_stats_read(&txq_stats->napi.tx_pkt_n); } while (u64_stats_fetch_retry(&txq_stats->napi_syncp, start)); p = (char *)&snapshot + offsetof(struct stmmac_txq_stats, tx_pkt_n); for (stat = 0; stat < STMMAC_TXQ_STATS; stat++) { *data++ = (*(u64 *)p); p += sizeof(u64); } *data++ = pkt_n; *data++ = stmmac_get_tx_normal_irq_n(priv, q); } for (q = 0; q < rx_cnt; q++) { struct stmmac_rxq_stats *rxq_stats = &priv->xstats.rxq_stats[q]; struct stmmac_rxq_stats snapshot; u64 pkt_n; do { start = u64_stats_fetch_begin(&rxq_stats->syncp); snapshot = *rxq_stats; } while (u64_stats_fetch_retry(&rxq_stats->syncp, start)); start = u64_stats_fetch_begin(&rxq_stats->napi_syncp); pkt_n = u64_stats_read(&rxq_stats->napi.rx_pkt_n); } while (u64_stats_fetch_retry(&rxq_stats->napi_syncp, start)); p = (char *)&snapshot + offsetof(struct stmmac_rxq_stats, rx_pkt_n); for (stat = 0; stat < STMMAC_RXQ_STATS; stat++) { *data++ = (*(u64 *)p); p += sizeof(u64); } *data++ = pkt_n; *data++ = stmmac_get_rx_normal_irq_n(priv, q); } } Loading Loading
drivers/firmware/efi/libstub/x86-stub.h +2 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ #include <linux/efi.h> extern struct boot_params *boot_params_pointer asm("boot_params"); extern void trampoline_32bit_src(void *, bool); extern const u16 trampoline_ljmp_imm_offset; Loading
drivers/infiniband/hw/irdma/verbs.c +0 −20 Original line number Diff line number Diff line Loading @@ -1174,21 +1174,6 @@ static int irdma_wait_for_suspend(struct irdma_qp *iwqp) return 0; } static int irdma_wait_for_suspend(struct irdma_qp *iwqp) { if (!wait_event_timeout(iwqp->iwdev->suspend_wq, !iwqp->suspend_pending, msecs_to_jiffies(IRDMA_EVENT_TIMEOUT_MS))) { iwqp->suspend_pending = false; ibdev_warn(&iwqp->iwdev->ibdev, "modify_qp timed out waiting for suspend. qp_id = %d, last_ae = 0x%x\n", iwqp->ibqp.qp_num, iwqp->last_aeq); return -EBUSY; } return 0; } /** * irdma_modify_qp_roce - modify qp request * @ibqp: qp's pointer for modify Loading Loading @@ -2951,11 +2936,6 @@ static int irdma_reg_user_mr_type_qp(struct irdma_mem_reg_req req, int err; u8 lvl; /* iWarp: Catch page not starting on OS page boundary */ if (!rdma_protocol_roce(&iwdev->ibdev, 1) && ib_umem_offset(iwmr->region)) return -EINVAL; /* iWarp: Catch page not starting on OS page boundary */ if (!rdma_protocol_roce(&iwdev->ibdev, 1) && ib_umem_offset(iwmr->region)) Loading
drivers/md/dm-verity-target.c +3 −28 Original line number Diff line number Diff line Loading @@ -616,10 +616,7 @@ static int verity_verify_io(struct dm_verity_io *io) if (unlikely(r < 0)) return r; #if defined(CONFIG_DM_VERITY_FEC) if (verity_fec_is_enabled(v)) start = *iter; #endif r = verity_for_io_block(v, io, iter, &wait); if (unlikely(r < 0)) return r; Loading Loading @@ -704,23 +701,6 @@ static void verity_work(struct work_struct *w) verity_finish_io(io, errno_to_blk_status(verity_verify_io(io))); } static void verity_tasklet(unsigned long data) { struct dm_verity_io *io = (struct dm_verity_io *)data; int err; io->in_tasklet = true; err = verity_verify_io(io); if (err == -EAGAIN || err == -ENOMEM) { /* fallback to retrying with work-queue */ INIT_WORK(&io->work, verity_work); queue_work(io->v->verify_wq, &io->work); return; } verity_finish_io(io, errno_to_blk_status(err)); } static void verity_end_io(struct bio *bio) { struct dm_verity_io *io = bio->bi_private; Loading @@ -733,14 +713,9 @@ static void verity_end_io(struct bio *bio) return; } if (static_branch_unlikely(&use_tasklet_enabled) && io->v->use_tasklet) { tasklet_init(&io->tasklet, verity_tasklet, (unsigned long)io); tasklet_schedule(&io->tasklet); } else { INIT_WORK(&io->work, verity_work); queue_work(io->v->verify_wq, &io->work); } } /* * Prefetch buffers for the specified io. Loading
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c +55 −20 Original line number Diff line number Diff line Loading @@ -539,44 +539,79 @@ stmmac_set_pauseparam(struct net_device *netdev, } } static u64 stmmac_get_rx_normal_irq_n(struct stmmac_priv *priv, int q) { u64 total; int cpu; total = 0; for_each_possible_cpu(cpu) { struct stmmac_pcpu_stats *pcpu; unsigned int start; u64 irq_n; pcpu = per_cpu_ptr(priv->xstats.pcpu_stats, cpu); do { start = u64_stats_fetch_begin(&pcpu->syncp); irq_n = u64_stats_read(&pcpu->rx_normal_irq_n[q]); } while (u64_stats_fetch_retry(&pcpu->syncp, start)); total += irq_n; } return total; } static u64 stmmac_get_tx_normal_irq_n(struct stmmac_priv *priv, int q) { u64 total; int cpu; total = 0; for_each_possible_cpu(cpu) { struct stmmac_pcpu_stats *pcpu; unsigned int start; u64 irq_n; pcpu = per_cpu_ptr(priv->xstats.pcpu_stats, cpu); do { start = u64_stats_fetch_begin(&pcpu->syncp); irq_n = u64_stats_read(&pcpu->tx_normal_irq_n[q]); } while (u64_stats_fetch_retry(&pcpu->syncp, start)); total += irq_n; } return total; } static void stmmac_get_per_qstats(struct stmmac_priv *priv, u64 *data) { u32 tx_cnt = priv->plat->tx_queues_to_use; u32 rx_cnt = priv->plat->rx_queues_to_use; unsigned int start; int q, stat; char *p; int q; for (q = 0; q < tx_cnt; q++) { struct stmmac_txq_stats *txq_stats = &priv->xstats.txq_stats[q]; struct stmmac_txq_stats snapshot; u64 pkt_n; do { start = u64_stats_fetch_begin(&txq_stats->syncp); snapshot = *txq_stats; } while (u64_stats_fetch_retry(&txq_stats->syncp, start)); start = u64_stats_fetch_begin(&txq_stats->napi_syncp); pkt_n = u64_stats_read(&txq_stats->napi.tx_pkt_n); } while (u64_stats_fetch_retry(&txq_stats->napi_syncp, start)); p = (char *)&snapshot + offsetof(struct stmmac_txq_stats, tx_pkt_n); for (stat = 0; stat < STMMAC_TXQ_STATS; stat++) { *data++ = (*(u64 *)p); p += sizeof(u64); } *data++ = pkt_n; *data++ = stmmac_get_tx_normal_irq_n(priv, q); } for (q = 0; q < rx_cnt; q++) { struct stmmac_rxq_stats *rxq_stats = &priv->xstats.rxq_stats[q]; struct stmmac_rxq_stats snapshot; u64 pkt_n; do { start = u64_stats_fetch_begin(&rxq_stats->syncp); snapshot = *rxq_stats; } while (u64_stats_fetch_retry(&rxq_stats->syncp, start)); start = u64_stats_fetch_begin(&rxq_stats->napi_syncp); pkt_n = u64_stats_read(&rxq_stats->napi.rx_pkt_n); } while (u64_stats_fetch_retry(&rxq_stats->napi_syncp, start)); p = (char *)&snapshot + offsetof(struct stmmac_rxq_stats, rx_pkt_n); for (stat = 0; stat < STMMAC_RXQ_STATS; stat++) { *data++ = (*(u64 *)p); p += sizeof(u64); } *data++ = pkt_n; *data++ = stmmac_get_rx_normal_irq_n(priv, q); } } Loading