From 9e7a116bcd9eda8191cada40c158a51c673234e2 Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Sat, 2 Nov 2024 20:30:53 -0400 Subject: [PATCH] Fixes for 5.4 Signed-off-by: Sasha Levin --- ...n-t-disable-preemption-in-gru-driver.patch | 96 +++++++++++++++++++ ...amd-mvme147-fix-probe-banner-message.patch | 53 ++++++++++ queue-5.4/series | 2 + 3 files changed, 151 insertions(+) create mode 100644 queue-5.4/misc-sgi-gru-don-t-disable-preemption-in-gru-driver.patch create mode 100644 queue-5.4/net-amd-mvme147-fix-probe-banner-message.patch diff --git a/queue-5.4/misc-sgi-gru-don-t-disable-preemption-in-gru-driver.patch b/queue-5.4/misc-sgi-gru-don-t-disable-preemption-in-gru-driver.patch new file mode 100644 index 00000000000..205c05ab7b0 --- /dev/null +++ b/queue-5.4/misc-sgi-gru-don-t-disable-preemption-in-gru-driver.patch @@ -0,0 +1,96 @@ +From 5336eff95cabd8b8ea78e63d3c58276da48629a1 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 0197441a1eae7..8dc1c5e519aff 100644 +--- a/drivers/misc/sgi-gru/grukservices.c ++++ b/drivers/misc/sgi-gru/grukservices.c +@@ -257,7 +257,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; +@@ -271,7 +270,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.4/net-amd-mvme147-fix-probe-banner-message.patch b/queue-5.4/net-amd-mvme147-fix-probe-banner-message.patch new file mode 100644 index 00000000000..fe41b8046b3 --- /dev/null +++ b/queue-5.4/net-amd-mvme147-fix-probe-banner-message.patch @@ -0,0 +1,53 @@ +From 22ba6378abd3356952a55512bed3c124b46fb630 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 72abd3f82249b..eb7b1da2fb06f 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.4/series b/queue-5.4/series index 987941eb339..aceab8ffabe 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -441,3 +441,5 @@ net-skip-offload-for-netif_f_ipv6_csum-if-ipv6-heade.patch netfilter-nft_payload-sanitize-offset-and-length-bef.patch drivers-misc-ti-st-remove-unneeded-variable-in-st_tt.patch firmware-arm_sdei-fix-the-input-parameter-of-cpuhp_r.patch +net-amd-mvme147-fix-probe-banner-message.patch +misc-sgi-gru-don-t-disable-preemption-in-gru-driver.patch -- 2.47.3