From: Greg Kroah-Hartman Date: Mon, 16 Oct 2023 08:33:48 +0000 (+0200) Subject: 5.10-stable patches X-Git-Tag: v5.15.136~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=50292059cd228950b62aa47f516649697f060e4e;p=thirdparty%2Fkernel%2Fstable-queue.git 5.10-stable patches added patches: eth-remove-remaining-copies-of-the-napi_poll_weight-define.patch rdma-srp-fix-srp_abort.patch rdma-srp-set-scmnd-result-only-when-scmnd-is-not-null.patch --- diff --git a/queue-5.10/eth-remove-remaining-copies-of-the-napi_poll_weight-define.patch b/queue-5.10/eth-remove-remaining-copies-of-the-napi_poll_weight-define.patch new file mode 100644 index 00000000000..dfdc5b8d86e --- /dev/null +++ b/queue-5.10/eth-remove-remaining-copies-of-the-napi_poll_weight-define.patch @@ -0,0 +1,85 @@ +From 36ffca1afea9b429d3e49aa0b6a68ecd93f3be11 Mon Sep 17 00:00:00 2001 +From: Jakub Kicinski +Date: Fri, 29 Apr 2022 10:43:30 -0700 +Subject: eth: remove remaining copies of the NAPI_POLL_WEIGHT define + +From: Jakub Kicinski + +commit 36ffca1afea9b429d3e49aa0b6a68ecd93f3be11 upstream. + +Defining local versions of NAPI_POLL_WEIGHT with the same +values in the drivers just makes refactoring harder. + +This patch covers three more drivers which I missed in +commit 5f012b40ef63 ("eth: remove copies of the NAPI_POLL_WEIGHT define"). + +Signed-off-by: Jakub Kicinski +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/ethernet/amazon/ena/ena_netdev.c | 4 +--- + drivers/net/ethernet/brocade/bna/bnad.c | 3 +-- + drivers/net/ethernet/nvidia/forcedeth.c | 6 +++--- + 3 files changed, 5 insertions(+), 8 deletions(-) + +--- a/drivers/net/ethernet/amazon/ena/ena_netdev.c ++++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c +@@ -29,8 +29,6 @@ MODULE_LICENSE("GPL"); + /* Time in jiffies before concluding the transmitter is hung. */ + #define TX_TIMEOUT (5 * HZ) + +-#define ENA_NAPI_BUDGET 64 +- + #define DEFAULT_MSG_ENABLE (NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_IFUP | \ + NETIF_MSG_TX_DONE | NETIF_MSG_TX_ERR | NETIF_MSG_RX_ERR) + static int debug = -1; +@@ -2179,7 +2177,7 @@ static void ena_init_napi_in_range(struc + netif_napi_add(adapter->netdev, + &napi->napi, + ENA_IS_XDP_INDEX(adapter, i) ? ena_xdp_io_poll : ena_io_poll, +- ENA_NAPI_BUDGET); ++ NAPI_POLL_WEIGHT); + + if (!ENA_IS_XDP_INDEX(adapter, i)) { + napi->rx_ring = &adapter->rx_ring[i]; +--- a/drivers/net/ethernet/brocade/bna/bnad.c ++++ b/drivers/net/ethernet/brocade/bna/bnad.c +@@ -1881,7 +1881,6 @@ poll_exit: + return rcvd; + } + +-#define BNAD_NAPI_POLL_QUOTA 64 + static void + bnad_napi_add(struct bnad *bnad, u32 rx_id) + { +@@ -1892,7 +1891,7 @@ bnad_napi_add(struct bnad *bnad, u32 rx_ + for (i = 0; i < bnad->num_rxp_per_rx; i++) { + rx_ctrl = &bnad->rx_info[rx_id].rx_ctrl[i]; + netif_napi_add(bnad->netdev, &rx_ctrl->napi, +- bnad_napi_poll_rx, BNAD_NAPI_POLL_QUOTA); ++ bnad_napi_poll_rx, NAPI_POLL_WEIGHT); + } + } + +--- a/drivers/net/ethernet/nvidia/forcedeth.c ++++ b/drivers/net/ethernet/nvidia/forcedeth.c +@@ -56,8 +56,8 @@ + + #include + +-#define TX_WORK_PER_LOOP 64 +-#define RX_WORK_PER_LOOP 64 ++#define TX_WORK_PER_LOOP NAPI_POLL_WEIGHT ++#define RX_WORK_PER_LOOP NAPI_POLL_WEIGHT + + /* + * Hardware access: +@@ -5878,7 +5878,7 @@ static int nv_probe(struct pci_dev *pci_ + else + dev->netdev_ops = &nv_netdev_ops_optimized; + +- netif_napi_add(dev, &np->napi, nv_napi_poll, RX_WORK_PER_LOOP); ++ netif_napi_add(dev, &np->napi, nv_napi_poll, NAPI_POLL_WEIGHT); + dev->ethtool_ops = &ops; + dev->watchdog_timeo = NV_WATCHDOG_TIMEO; + diff --git a/queue-5.10/rdma-srp-fix-srp_abort.patch b/queue-5.10/rdma-srp-fix-srp_abort.patch new file mode 100644 index 00000000000..42d26255440 --- /dev/null +++ b/queue-5.10/rdma-srp-fix-srp_abort.patch @@ -0,0 +1,41 @@ +From 6dbe4a8dead84de474483910b02ec9e6a10fc1a9 Mon Sep 17 00:00:00 2001 +From: Bart Van Assche +Date: Thu, 8 Sep 2022 16:31:39 -0700 +Subject: RDMA/srp: Fix srp_abort() + +From: Bart Van Assche + +commit 6dbe4a8dead84de474483910b02ec9e6a10fc1a9 upstream. + +Fix the code for converting a SCSI command pointer into an SRP request +pointer. + +Cc: Xiao Yang +Fixes: ad215aaea4f9 ("RDMA/srp: Make struct scsi_cmnd and struct srp_request adjacent") +Signed-off-by: Bart Van Assche +Link: https://lore.kernel.org/r/20220908233139.3042628-1-bvanassche@acm.org +Signed-off-by: Leon Romanovsky +Signed-off-by: Greg Kroah-Hartman +--- + drivers/infiniband/ulp/srp/ib_srp.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +--- a/drivers/infiniband/ulp/srp/ib_srp.c ++++ b/drivers/infiniband/ulp/srp/ib_srp.c +@@ -2778,15 +2778,13 @@ static int srp_send_tsk_mgmt(struct srp_ + static int srp_abort(struct scsi_cmnd *scmnd) + { + struct srp_target_port *target = host_to_target(scmnd->device->host); +- struct srp_request *req = (struct srp_request *) scmnd->host_scribble; ++ struct srp_request *req = scsi_cmd_priv(scmnd); + u32 tag; + u16 ch_idx; + struct srp_rdma_ch *ch; + + shost_printk(KERN_ERR, target->scsi_host, "SRP abort called\n"); + +- if (!req) +- return SUCCESS; + tag = blk_mq_unique_tag(scmnd->request); + ch_idx = blk_mq_unique_tag_to_hwq(tag); + if (WARN_ON_ONCE(ch_idx >= target->ch_count)) diff --git a/queue-5.10/rdma-srp-set-scmnd-result-only-when-scmnd-is-not-null.patch b/queue-5.10/rdma-srp-set-scmnd-result-only-when-scmnd-is-not-null.patch new file mode 100644 index 00000000000..740cc1f3970 --- /dev/null +++ b/queue-5.10/rdma-srp-set-scmnd-result-only-when-scmnd-is-not-null.patch @@ -0,0 +1,61 @@ +From 12f35199a2c0551187edbf8eb01379f0598659fa Mon Sep 17 00:00:00 2001 +From: "yangx.jy@fujitsu.com" +Date: Wed, 31 Aug 2022 08:16:29 +0000 +Subject: RDMA/srp: Set scmnd->result only when scmnd is not NULL + +From: yangx.jy@fujitsu.com + +commit 12f35199a2c0551187edbf8eb01379f0598659fa upstream. + +This change fixes the following kernel NULL pointer dereference +which is reproduced by blktests srp/007 occasionally. + +BUG: kernel NULL pointer dereference, address: 0000000000000170 +PGD 0 P4D 0 +Oops: 0002 [#1] PREEMPT SMP NOPTI +CPU: 0 PID: 9 Comm: kworker/0:1H Kdump: loaded Not tainted 6.0.0-rc1+ #37 +Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.15.0-29-g6a62e0cb0dfe-prebuilt.qemu.org 04/01/2014 +Workqueue: 0x0 (kblockd) +RIP: 0010:srp_recv_done+0x176/0x500 [ib_srp] +Code: 00 4d 85 ff 0f 84 52 02 00 00 48 c7 82 80 02 00 00 00 00 00 00 4c 89 df 4c 89 14 24 e8 53 d3 4a f6 4c 8b 14 24 41 0f b6 42 13 <41> 89 87 70 01 00 00 41 0f b6 52 12 f6 c2 02 74 44 41 8b 42 1c b9 +RSP: 0018:ffffaef7c0003e28 EFLAGS: 00000282 +RAX: 0000000000000000 RBX: ffff9bc9486dea60 RCX: 0000000000000000 +RDX: 0000000000000102 RSI: ffffffffb76bbd0e RDI: 00000000ffffffff +RBP: ffff9bc980099a00 R08: 0000000000000001 R09: 0000000000000001 +R10: ffff9bca53ef0000 R11: ffff9bc980099a10 R12: ffff9bc956e14000 +R13: ffff9bc9836b9cb0 R14: ffff9bc9557b4480 R15: 0000000000000000 +FS: 0000000000000000(0000) GS:ffff9bc97ec00000(0000) knlGS:0000000000000000 +CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 +CR2: 0000000000000170 CR3: 0000000007e04000 CR4: 00000000000006f0 +Call Trace: + + __ib_process_cq+0xb7/0x280 [ib_core] + ib_poll_handler+0x2b/0x130 [ib_core] + irq_poll_softirq+0x93/0x150 + __do_softirq+0xee/0x4b8 + irq_exit_rcu+0xf7/0x130 + sysvec_apic_timer_interrupt+0x8e/0xc0 + + +Fixes: ad215aaea4f9 ("RDMA/srp: Make struct scsi_cmnd and struct srp_request adjacent") +Link: https://lore.kernel.org/r/20220831081626.18712-1-yangx.jy@fujitsu.com +Signed-off-by: Xiao Yang +Acked-by: Bart Van Assche +Signed-off-by: Leon Romanovsky +Signed-off-by: Greg Kroah-Hartman +--- + drivers/infiniband/ulp/srp/ib_srp.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/infiniband/ulp/srp/ib_srp.c ++++ b/drivers/infiniband/ulp/srp/ib_srp.c +@@ -1955,7 +1955,8 @@ static void srp_process_rsp(struct srp_r + if (scmnd) { + req = scsi_cmd_priv(scmnd); + scmnd = srp_claim_req(ch, req, NULL, scmnd); +- } else { ++ } ++ if (!scmnd) { + shost_printk(KERN_ERR, target->scsi_host, + "Null scmnd for RSP w/tag %#016llx received on ch %td / QP %#x\n", + rsp->tag, ch - target->ch, ch->qp->qp_num); diff --git a/queue-5.10/series b/queue-5.10/series index 737a62b552e..3449a57747f 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -78,3 +78,6 @@ arm64-armv8_deprecated-move-emulation-functions.patch arm64-armv8_deprecated-move-aarch32-helper-earlier.patch arm64-armv8_deprecated-rework-deprected-instruction-handling.patch arm64-armv8_deprecated-fix-unused-function-error.patch +eth-remove-remaining-copies-of-the-napi_poll_weight-define.patch +rdma-srp-set-scmnd-result-only-when-scmnd-is-not-null.patch +rdma-srp-fix-srp_abort.patch