From: Sasha Levin Date: Sun, 3 Nov 2024 00:30:52 +0000 (-0400) Subject: Fixes for 5.10 X-Git-Tag: v4.19.323~104 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=18441d81b31f7ca46d58a591a81eb624aed56d46;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 5.10 Signed-off-by: Sasha Levin --- diff --git a/queue-5.10/misc-sgi-gru-don-t-disable-preemption-in-gru-driver.patch b/queue-5.10/misc-sgi-gru-don-t-disable-preemption-in-gru-driver.patch new file mode 100644 index 00000000000..ec3d04a6409 --- /dev/null +++ b/queue-5.10/misc-sgi-gru-don-t-disable-preemption-in-gru-driver.patch @@ -0,0 +1,96 @@ +From cfd122eaff84109d35b323fadbecb3aeacc483cd Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 19 Sep 2024 07:34:50 -0500 +Subject: misc: sgi-gru: Don't disable preemption in GRU driver + +From: Dimitri Sivanich + +[ Upstream commit b983b271662bd6104d429b0fd97af3333ba760bf ] + +Disabling preemption in the GRU driver is unnecessary, and clashes with +sleeping locks in several code paths. Remove preempt_disable and +preempt_enable from the GRU driver. + +Signed-off-by: Dimitri Sivanich +Signed-off-by: Linus Torvalds +Signed-off-by: Sasha Levin +--- + drivers/misc/sgi-gru/grukservices.c | 2 -- + drivers/misc/sgi-gru/grumain.c | 4 ---- + drivers/misc/sgi-gru/grutlbpurge.c | 2 -- + 3 files changed, 8 deletions(-) + +diff --git a/drivers/misc/sgi-gru/grukservices.c b/drivers/misc/sgi-gru/grukservices.c +index 0ea923fe6371b..e2bdba4742930 100644 +--- a/drivers/misc/sgi-gru/grukservices.c ++++ b/drivers/misc/sgi-gru/grukservices.c +@@ -258,7 +258,6 @@ static int gru_get_cpu_resources(int dsr_bytes, void **cb, void **dsr) + int lcpu; + + BUG_ON(dsr_bytes > GRU_NUM_KERNEL_DSR_BYTES); +- preempt_disable(); + bs = gru_lock_kernel_context(-1); + lcpu = uv_blade_processor_id(); + *cb = bs->kernel_cb + lcpu * GRU_HANDLE_STRIDE; +@@ -272,7 +271,6 @@ static int gru_get_cpu_resources(int dsr_bytes, void **cb, void **dsr) + static void gru_free_cpu_resources(void *cb, void *dsr) + { + gru_unlock_kernel_context(uv_numa_blade_id()); +- preempt_enable(); + } + + /* +diff --git a/drivers/misc/sgi-gru/grumain.c b/drivers/misc/sgi-gru/grumain.c +index e2325e3d077ea..4f7a0f8472556 100644 +--- a/drivers/misc/sgi-gru/grumain.c ++++ b/drivers/misc/sgi-gru/grumain.c +@@ -941,10 +941,8 @@ vm_fault_t gru_fault(struct vm_fault *vmf) + + again: + mutex_lock(>s->ts_ctxlock); +- preempt_disable(); + + if (gru_check_context_placement(gts)) { +- preempt_enable(); + mutex_unlock(>s->ts_ctxlock); + gru_unload_context(gts, 1); + return VM_FAULT_NOPAGE; +@@ -953,7 +951,6 @@ vm_fault_t gru_fault(struct vm_fault *vmf) + if (!gts->ts_gru) { + STAT(load_user_context); + if (!gru_assign_gru_context(gts)) { +- preempt_enable(); + mutex_unlock(>s->ts_ctxlock); + set_current_state(TASK_INTERRUPTIBLE); + schedule_timeout(GRU_ASSIGN_DELAY); /* true hack ZZZ */ +@@ -969,7 +966,6 @@ vm_fault_t gru_fault(struct vm_fault *vmf) + vma->vm_page_prot); + } + +- preempt_enable(); + mutex_unlock(>s->ts_ctxlock); + + return VM_FAULT_NOPAGE; +diff --git a/drivers/misc/sgi-gru/grutlbpurge.c b/drivers/misc/sgi-gru/grutlbpurge.c +index 10921cd2608df..1107dd3e2e9fa 100644 +--- a/drivers/misc/sgi-gru/grutlbpurge.c ++++ b/drivers/misc/sgi-gru/grutlbpurge.c +@@ -65,7 +65,6 @@ static struct gru_tlb_global_handle *get_lock_tgh_handle(struct gru_state + struct gru_tlb_global_handle *tgh; + int n; + +- preempt_disable(); + if (uv_numa_blade_id() == gru->gs_blade_id) + n = get_on_blade_tgh(gru); + else +@@ -79,7 +78,6 @@ static struct gru_tlb_global_handle *get_lock_tgh_handle(struct gru_state + static void get_unlock_tgh_handle(struct gru_tlb_global_handle *tgh) + { + unlock_tgh_handle(tgh); +- preempt_enable(); + } + + /* +-- +2.43.0 + diff --git a/queue-5.10/net-amd-mvme147-fix-probe-banner-message.patch b/queue-5.10/net-amd-mvme147-fix-probe-banner-message.patch new file mode 100644 index 00000000000..20c3e8080c4 --- /dev/null +++ b/queue-5.10/net-amd-mvme147-fix-probe-banner-message.patch @@ -0,0 +1,53 @@ +From d330bc724ee32ef16625237df5e4b51a97a50fa4 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 7 Oct 2024 19:43:17 +0900 +Subject: net: amd: mvme147: Fix probe banner message + +From: Daniel Palmer + +[ Upstream commit 82c5b53140faf89c31ea2b3a0985a2f291694169 ] + +Currently this driver prints this line with what looks like +a rogue format specifier when the device is probed: +[ 2.840000] eth%d: MVME147 at 0xfffe1800, irq 12, Hardware Address xx:xx:xx:xx:xx:xx + +Change the printk() for netdev_info() and move it after the +registration has completed so it prints out the name of the +interface properly. + +Signed-off-by: Daniel Palmer +Reviewed-by: Simon Horman +Signed-off-by: David S. Miller +Signed-off-by: Sasha Levin +--- + drivers/net/ethernet/amd/mvme147.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/drivers/net/ethernet/amd/mvme147.c b/drivers/net/ethernet/amd/mvme147.c +index 3f2e4cdd0b83e..133fe0f1166b0 100644 +--- a/drivers/net/ethernet/amd/mvme147.c ++++ b/drivers/net/ethernet/amd/mvme147.c +@@ -106,10 +106,6 @@ struct net_device * __init mvme147lance_probe(int unit) + address = address >> 8; + dev->dev_addr[3] = address&0xff; + +- printk("%s: MVME147 at 0x%08lx, irq %d, Hardware Address %pM\n", +- dev->name, dev->base_addr, MVME147_LANCE_IRQ, +- dev->dev_addr); +- + lp = netdev_priv(dev); + lp->ram = __get_dma_pages(GFP_ATOMIC, 3); /* 32K */ + if (!lp->ram) { +@@ -139,6 +135,9 @@ struct net_device * __init mvme147lance_probe(int unit) + return ERR_PTR(err); + } + ++ netdev_info(dev, "MVME147 at 0x%08lx, irq %d, Hardware Address %pM\n", ++ dev->base_addr, MVME147_LANCE_IRQ, dev->dev_addr); ++ + return dev; + } + +-- +2.43.0 + diff --git a/queue-5.10/nfs-remove-revoked-delegation-from-server-s-delegati.patch b/queue-5.10/nfs-remove-revoked-delegation-from-server-s-delegati.patch new file mode 100644 index 00000000000..eae93a65a3c --- /dev/null +++ b/queue-5.10/nfs-remove-revoked-delegation-from-server-s-delegati.patch @@ -0,0 +1,56 @@ +From f6bd52d9020ef7347bb6fac969d13efa1d93fd61 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 8 Oct 2024 15:58:07 -0700 +Subject: NFS: remove revoked delegation from server's delegation list + +From: Dai Ngo + +[ Upstream commit 7ef60108069b7e3cc66432304e1dd197d5c0a9b5 ] + +After the delegation is returned to the NFS server remove it +from the server's delegations list to reduce the time it takes +to scan this list. + +Network trace captured while running the below script shows the +time taken to service the CB_RECALL increases gradually due to +the overhead of traversing the delegation list in +nfs_delegation_find_inode_server. + +The NFS server in this test is a Solaris server which issues +CB_RECALL when receiving the all-zero stateid in the SETATTR. + +mount=/mnt/data +for i in $(seq 1 20) +do + echo $i + mkdir $mount/testtarfile$i + time tar -C $mount/testtarfile$i -xf 5000_files.tar +done + +Signed-off-by: Dai Ngo +Reviewed-by: Trond Myklebust +Signed-off-by: Anna Schumaker +Signed-off-by: Sasha Levin +--- + fs/nfs/delegation.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c +index c15188d0b6b33..02d9af026ad15 100644 +--- a/fs/nfs/delegation.c ++++ b/fs/nfs/delegation.c +@@ -960,6 +960,11 @@ void nfs_delegation_mark_returned(struct inode *inode, + } + + nfs_mark_delegation_revoked(delegation); ++ clear_bit(NFS_DELEGATION_RETURNING, &delegation->flags); ++ spin_unlock(&delegation->lock); ++ if (nfs_detach_delegation(NFS_I(inode), delegation, NFS_SERVER(inode))) ++ nfs_put_delegation(delegation); ++ goto out_rcu_unlock; + + out_clear_returning: + clear_bit(NFS_DELEGATION_RETURNING, &delegation->flags); +-- +2.43.0 + diff --git a/queue-5.10/series b/queue-5.10/series index a3a75224ef7..8740eb89ef9 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -80,3 +80,6 @@ compiler-gcc-be-consistent-with-underscores-use-for-.patch compiler-gcc-remove-attribute-support-check-for-__no.patch kasan-fix-software-tag-based-kasan-with-gcc.patch firmware-arm_sdei-fix-the-input-parameter-of-cpuhp_r.patch +net-amd-mvme147-fix-probe-banner-message.patch +nfs-remove-revoked-delegation-from-server-s-delegati.patch +misc-sgi-gru-don-t-disable-preemption-in-gru-driver.patch