From: Sasha Levin Date: Mon, 6 Sep 2021 01:10:38 +0000 (-0400) Subject: Fixes for 5.13 X-Git-Tag: v5.10.63~41 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f201e9637b56fe1709a3058a988e0e1c20d7778d;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 5.13 Signed-off-by: Sasha Levin --- diff --git a/queue-5.13/ceph-fix-possible-null-pointer-dereference-in-ceph_m.patch b/queue-5.13/ceph-fix-possible-null-pointer-dereference-in-ceph_m.patch new file mode 100644 index 00000000000..0dd065e9c46 --- /dev/null +++ b/queue-5.13/ceph-fix-possible-null-pointer-dereference-in-ceph_m.patch @@ -0,0 +1,53 @@ +From 77837783fc16dbeccf04dca9c7ba2d6c40def849 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 5 Aug 2021 08:14:34 -0700 +Subject: ceph: fix possible null-pointer dereference in ceph_mdsmap_decode() + +From: Tuo Li + +[ Upstream commit a9e6ffbc5b7324b6639ee89028908b1e91ceed51 ] + +kcalloc() is called to allocate memory for m->m_info, and if it fails, +ceph_mdsmap_destroy() behind the label out_err will be called: + ceph_mdsmap_destroy(m); + +In ceph_mdsmap_destroy(), m->m_info is dereferenced through: + kfree(m->m_info[i].export_targets); + +To fix this possible null-pointer dereference, check m->m_info before the +for loop to free m->m_info[i].export_targets. + +[ jlayton: fix up whitespace damage + only kfree(m->m_info) if it's non-NULL ] + +Reported-by: TOTE Robot +Signed-off-by: Tuo Li +Signed-off-by: Jeff Layton +Signed-off-by: Ilya Dryomov +Signed-off-by: Sasha Levin +--- + fs/ceph/mdsmap.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/fs/ceph/mdsmap.c b/fs/ceph/mdsmap.c +index abd9af7727ad..3c444b9cb17b 100644 +--- a/fs/ceph/mdsmap.c ++++ b/fs/ceph/mdsmap.c +@@ -394,9 +394,11 @@ void ceph_mdsmap_destroy(struct ceph_mdsmap *m) + { + int i; + +- for (i = 0; i < m->possible_max_rank; i++) +- kfree(m->m_info[i].export_targets); +- kfree(m->m_info); ++ if (m->m_info) { ++ for (i = 0; i < m->possible_max_rank; i++) ++ kfree(m->m_info[i].export_targets); ++ kfree(m->m_info); ++ } + kfree(m->m_data_pg_pools); + kfree(m); + } +-- +2.30.2 + diff --git a/queue-5.13/cryptoloop-add-a-deprecation-warning.patch b/queue-5.13/cryptoloop-add-a-deprecation-warning.patch new file mode 100644 index 00000000000..37763dbad98 --- /dev/null +++ b/queue-5.13/cryptoloop-add-a-deprecation-warning.patch @@ -0,0 +1,62 @@ +From 422b0647c8957bec1c25afcb6716140bcd3d727a Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 27 Aug 2021 18:32:50 +0200 +Subject: cryptoloop: add a deprecation warning + +From: Christoph Hellwig + +[ Upstream commit 222013f9ac30b9cec44301daa8dbd0aae38abffb ] + +Support for cryptoloop has been officially marked broken and deprecated +in favor of dm-crypt (which supports the same broken algorithms if +needed) in Linux 2.6.4 (released in March 2004), and support for it has +been entirely removed from losetup in util-linux 2.23 (released in April +2013). Add a warning and a deprecation schedule. + +Signed-off-by: Christoph Hellwig +Link: https://lore.kernel.org/r/20210827163250.255325-1-hch@lst.de +Signed-off-by: Jens Axboe +Signed-off-by: Sasha Levin +--- + drivers/block/Kconfig | 4 ++-- + drivers/block/cryptoloop.c | 2 ++ + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig +index 63056cfd4b62..fbb3a558139f 100644 +--- a/drivers/block/Kconfig ++++ b/drivers/block/Kconfig +@@ -213,7 +213,7 @@ config BLK_DEV_LOOP_MIN_COUNT + dynamically allocated with the /dev/loop-control interface. + + config BLK_DEV_CRYPTOLOOP +- tristate "Cryptoloop Support" ++ tristate "Cryptoloop Support (DEPRECATED)" + select CRYPTO + select CRYPTO_CBC + depends on BLK_DEV_LOOP +@@ -225,7 +225,7 @@ config BLK_DEV_CRYPTOLOOP + WARNING: This device is not safe for journaled file systems like + ext3 or Reiserfs. Please use the Device Mapper crypto module + instead, which can be configured to be on-disk compatible with the +- cryptoloop device. ++ cryptoloop device. cryptoloop support will be removed in Linux 5.16. + + source "drivers/block/drbd/Kconfig" + +diff --git a/drivers/block/cryptoloop.c b/drivers/block/cryptoloop.c +index 3cabc335ae74..f0a91faa43a8 100644 +--- a/drivers/block/cryptoloop.c ++++ b/drivers/block/cryptoloop.c +@@ -189,6 +189,8 @@ init_cryptoloop(void) + + if (rc) + printk(KERN_ERR "cryptoloop: loop_register_transfer failed\n"); ++ else ++ pr_warn("the cryptoloop driver has been deprecated and will be removed in in Linux 5.16\n"); + return rc; + } + +-- +2.30.2 + diff --git a/queue-5.13/gpu-ipu-v3-fix-i.mx-ipu-v3-offset-calculations-for-s.patch b/queue-5.13/gpu-ipu-v3-fix-i.mx-ipu-v3-offset-calculations-for-s.patch new file mode 100644 index 00000000000..01f42873d1d --- /dev/null +++ b/queue-5.13/gpu-ipu-v3-fix-i.mx-ipu-v3-offset-calculations-for-s.patch @@ -0,0 +1,69 @@ +From 3525a2fb941c3e5367eb70c2f27de80b2e4a31ac Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 7 Jun 2021 12:49:07 +0200 +Subject: gpu: ipu-v3: Fix i.MX IPU-v3 offset calculations for (semi)planar U/V + formats +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Krzysztof Hałasa + +[ Upstream commit 7cca7c8096e2c8a4149405438329b5035d0744f0 ] + +Video captured in 1400x1050 resolution (bytesperline aka stride = 1408 +bytes) is invalid. Fix it. + +Signed-off-by: Krzysztof Halasa +Link: https://lore.kernel.org/r/m3y2bmq7a4.fsf@t19.piap.pl +[p.zabel@pengutronix.de: added "gpu: ipu-v3:" prefix to commit description] +Signed-off-by: Philipp Zabel +Signed-off-by: Sasha Levin +--- + drivers/gpu/ipu-v3/ipu-cpmem.c | 30 +++++++++++++++--------------- + 1 file changed, 15 insertions(+), 15 deletions(-) + +diff --git a/drivers/gpu/ipu-v3/ipu-cpmem.c b/drivers/gpu/ipu-v3/ipu-cpmem.c +index a1c85d1521f5..82b244cb313e 100644 +--- a/drivers/gpu/ipu-v3/ipu-cpmem.c ++++ b/drivers/gpu/ipu-v3/ipu-cpmem.c +@@ -585,21 +585,21 @@ static const struct ipu_rgb def_bgra_16 = { + .bits_per_pixel = 16, + }; + +-#define Y_OFFSET(pix, x, y) ((x) + pix->width * (y)) +-#define U_OFFSET(pix, x, y) ((pix->width * pix->height) + \ +- (pix->width * ((y) / 2) / 2) + (x) / 2) +-#define V_OFFSET(pix, x, y) ((pix->width * pix->height) + \ +- (pix->width * pix->height / 4) + \ +- (pix->width * ((y) / 2) / 2) + (x) / 2) +-#define U2_OFFSET(pix, x, y) ((pix->width * pix->height) + \ +- (pix->width * (y) / 2) + (x) / 2) +-#define V2_OFFSET(pix, x, y) ((pix->width * pix->height) + \ +- (pix->width * pix->height / 2) + \ +- (pix->width * (y) / 2) + (x) / 2) +-#define UV_OFFSET(pix, x, y) ((pix->width * pix->height) + \ +- (pix->width * ((y) / 2)) + (x)) +-#define UV2_OFFSET(pix, x, y) ((pix->width * pix->height) + \ +- (pix->width * y) + (x)) ++#define Y_OFFSET(pix, x, y) ((x) + pix->bytesperline * (y)) ++#define U_OFFSET(pix, x, y) ((pix->bytesperline * pix->height) + \ ++ (pix->bytesperline * ((y) / 2) / 2) + (x) / 2) ++#define V_OFFSET(pix, x, y) ((pix->bytesperline * pix->height) + \ ++ (pix->bytesperline * pix->height / 4) + \ ++ (pix->bytesperline * ((y) / 2) / 2) + (x) / 2) ++#define U2_OFFSET(pix, x, y) ((pix->bytesperline * pix->height) + \ ++ (pix->bytesperline * (y) / 2) + (x) / 2) ++#define V2_OFFSET(pix, x, y) ((pix->bytesperline * pix->height) + \ ++ (pix->bytesperline * pix->height / 2) + \ ++ (pix->bytesperline * (y) / 2) + (x) / 2) ++#define UV_OFFSET(pix, x, y) ((pix->bytesperline * pix->height) + \ ++ (pix->bytesperline * ((y) / 2)) + (x)) ++#define UV2_OFFSET(pix, x, y) ((pix->bytesperline * pix->height) + \ ++ (pix->bytesperline * y) + (x)) + + #define NUM_ALPHA_CHANNELS 7 + +-- +2.30.2 + diff --git a/queue-5.13/net-dsa-mv88e6xxx-update-mv88e6393x-serdes-errata.patch b/queue-5.13/net-dsa-mv88e6xxx-update-mv88e6393x-serdes-errata.patch new file mode 100644 index 00000000000..908221be6be --- /dev/null +++ b/queue-5.13/net-dsa-mv88e6xxx-update-mv88e6393x-serdes-errata.patch @@ -0,0 +1,55 @@ +From 57c218c6ba9b232332a97fd35fa1a928274938a3 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 24 Aug 2021 06:44:13 +0000 +Subject: net: dsa: mv88e6xxx: Update mv88e6393x serdes errata + +From: Nathan Rossi + +[ Upstream commit 3b0720ba00a7413997ad331838d22c81f252556a ] + +In early erratas this issue only covered port 0 when changing from +[x]MII (rev A 3.6). In subsequent errata versions this errata changed to +cover the additional "Hardware reset in CPU managed mode" condition, and +removed the note specifying that it only applied to port 0. + +In designs where the device is configured with CPU managed mode +(CPU_MGD), on reset all SERDES ports (p0, p9, p10) have a stuck power +down bit and require this initial power up procedure. As such apply this +errata to all three SERDES ports of the mv88e6393x. + +Signed-off-by: Nathan Rossi +Signed-off-by: David S. Miller +Signed-off-by: Sasha Levin +--- + drivers/net/dsa/mv88e6xxx/serdes.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/drivers/net/dsa/mv88e6xxx/serdes.c b/drivers/net/dsa/mv88e6xxx/serdes.c +index b1d46dd8eaab..6ea003678798 100644 +--- a/drivers/net/dsa/mv88e6xxx/serdes.c ++++ b/drivers/net/dsa/mv88e6xxx/serdes.c +@@ -1277,15 +1277,16 @@ static int mv88e6393x_serdes_port_errata(struct mv88e6xxx_chip *chip, int lane) + int err; + + /* mv88e6393x family errata 4.6: +- * Cannot clear PwrDn bit on SERDES on port 0 if device is configured +- * CPU_MGD mode or P0_mode is configured for [x]MII. +- * Workaround: Set Port0 SERDES register 4.F002 bit 5=0 and bit 15=1. ++ * Cannot clear PwrDn bit on SERDES if device is configured CPU_MGD ++ * mode or P0_mode is configured for [x]MII. ++ * Workaround: Set SERDES register 4.F002 bit 5=0 and bit 15=1. + * + * It seems that after this workaround the SERDES is automatically + * powered up (the bit is cleared), so power it down. + */ +- if (lane == MV88E6393X_PORT0_LANE) { +- err = mv88e6390_serdes_read(chip, MV88E6393X_PORT0_LANE, ++ if (lane == MV88E6393X_PORT0_LANE || lane == MV88E6393X_PORT9_LANE || ++ lane == MV88E6393X_PORT10_LANE) { ++ err = mv88e6390_serdes_read(chip, lane, + MDIO_MMD_PHYXS, + MV88E6393X_SERDES_POC, ®); + if (err) +-- +2.30.2 + diff --git a/queue-5.13/net-macb-add-a-null-check-on-desc_ptp.patch b/queue-5.13/net-macb-add-a-null-check-on-desc_ptp.patch new file mode 100644 index 00000000000..c3c1309220f --- /dev/null +++ b/queue-5.13/net-macb-add-a-null-check-on-desc_ptp.patch @@ -0,0 +1,61 @@ +From 7e613b84acdcecba22d540f375065f02f1d5bfec Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 24 Aug 2021 15:32:09 +0530 +Subject: net: macb: Add a NULL check on desc_ptp + +From: Harini Katakam + +[ Upstream commit 85520079afce885b80647fbd0d13d8f03d057167 ] + +macb_ptp_desc will not return NULL under most circumstances with correct +Kconfig and IP design config register. But for the sake of the extreme +corner case, check for NULL when using the helper. In case of rx_tstamp, +no action is necessary except to return (similar to timestamp disabled) +and warn. In case of TX, return -EINVAL to let the skb be free. Perform +this check before marking skb in progress. +Fixes coverity warning: +(4) Event dereference: +Dereferencing a null pointer "desc_ptp" + +Signed-off-by: Harini Katakam +Reviewed-by: Radhey Shyam Pandey +Signed-off-by: Michal Simek +Signed-off-by: David S. Miller +Signed-off-by: Sasha Levin +--- + drivers/net/ethernet/cadence/macb_ptp.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/drivers/net/ethernet/cadence/macb_ptp.c b/drivers/net/ethernet/cadence/macb_ptp.c +index 283918aeb741..09d64a29f56e 100644 +--- a/drivers/net/ethernet/cadence/macb_ptp.c ++++ b/drivers/net/ethernet/cadence/macb_ptp.c +@@ -275,6 +275,12 @@ void gem_ptp_rxstamp(struct macb *bp, struct sk_buff *skb, + + if (GEM_BFEXT(DMA_RXVALID, desc->addr)) { + desc_ptp = macb_ptp_desc(bp, desc); ++ /* Unlikely but check */ ++ if (!desc_ptp) { ++ dev_warn_ratelimited(&bp->pdev->dev, ++ "Timestamp not supported in BD\n"); ++ return; ++ } + gem_hw_timestamp(bp, desc_ptp->ts_1, desc_ptp->ts_2, &ts); + memset(shhwtstamps, 0, sizeof(struct skb_shared_hwtstamps)); + shhwtstamps->hwtstamp = ktime_set(ts.tv_sec, ts.tv_nsec); +@@ -307,8 +313,11 @@ int gem_ptp_txstamp(struct macb_queue *queue, struct sk_buff *skb, + if (CIRC_SPACE(head, tail, PTP_TS_BUFFER_SIZE) == 0) + return -ENOMEM; + +- skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; + desc_ptp = macb_ptp_desc(queue->bp, desc); ++ /* Unlikely but check */ ++ if (!desc_ptp) ++ return -EINVAL; ++ skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; + tx_timestamp = &queue->tx_timestamps[head]; + tx_timestamp->skb = skb; + /* ensure ts_1/ts_2 is loaded after ctrl (TX_USED check) */ +-- +2.30.2 + diff --git a/queue-5.13/perf-x86-amd-ibs-work-around-erratum-1197.patch b/queue-5.13/perf-x86-amd-ibs-work-around-erratum-1197.patch new file mode 100644 index 00000000000..898b2945e1b --- /dev/null +++ b/queue-5.13/perf-x86-amd-ibs-work-around-erratum-1197.patch @@ -0,0 +1,64 @@ +From dee54aa1aa36e2023f1853476158cdc2c2bd0e9d Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 17 Aug 2021 17:10:42 -0500 +Subject: perf/x86/amd/ibs: Work around erratum #1197 + +From: Kim Phillips + +[ Upstream commit 26db2e0c51fe83e1dd852c1321407835b481806e ] + +Erratum #1197 "IBS (Instruction Based Sampling) Register State May be +Incorrect After Restore From CC6" is published in a document: + + "Revision Guide for AMD Family 19h Models 00h-0Fh Processors" 56683 Rev. 1.04 July 2021 + + https://bugzilla.kernel.org/show_bug.cgi?id=206537 + +Implement the erratum's suggested workaround and ignore IBS samples if +MSRC001_1031 == 0. + +Signed-off-by: Kim Phillips +Signed-off-by: Peter Zijlstra (Intel) +Signed-off-by: Ingo Molnar +Link: https://lore.kernel.org/r/20210817221048.88063-3-kim.phillips@amd.com +Signed-off-by: Sasha Levin +--- + arch/x86/events/amd/ibs.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/arch/x86/events/amd/ibs.c b/arch/x86/events/amd/ibs.c +index 40669eac9d6d..921f47b9bb24 100644 +--- a/arch/x86/events/amd/ibs.c ++++ b/arch/x86/events/amd/ibs.c +@@ -90,6 +90,7 @@ struct perf_ibs { + unsigned long offset_mask[1]; + int offset_max; + unsigned int fetch_count_reset_broken : 1; ++ unsigned int fetch_ignore_if_zero_rip : 1; + struct cpu_perf_ibs __percpu *pcpu; + + struct attribute **format_attrs; +@@ -672,6 +673,10 @@ fail: + if (check_rip && (ibs_data.regs[2] & IBS_RIP_INVALID)) { + regs.flags &= ~PERF_EFLAGS_EXACT; + } else { ++ /* Workaround for erratum #1197 */ ++ if (perf_ibs->fetch_ignore_if_zero_rip && !(ibs_data.regs[1])) ++ goto out; ++ + set_linear_ip(®s, ibs_data.regs[1]); + regs.flags |= PERF_EFLAGS_EXACT; + } +@@ -769,6 +774,9 @@ static __init void perf_event_ibs_init(void) + if (boot_cpu_data.x86 >= 0x16 && boot_cpu_data.x86 <= 0x18) + perf_ibs_fetch.fetch_count_reset_broken = 1; + ++ if (boot_cpu_data.x86 == 0x19 && boot_cpu_data.x86_model < 0x10) ++ perf_ibs_fetch.fetch_ignore_if_zero_rip = 1; ++ + perf_ibs_pmu_init(&perf_ibs_fetch, "ibs_fetch"); + + if (ibs_caps & IBS_CAPS_OPCNT) { +-- +2.30.2 + diff --git a/queue-5.13/perf-x86-amd-power-assign-pmu.module.patch b/queue-5.13/perf-x86-amd-power-assign-pmu.module.patch new file mode 100644 index 00000000000..ee88d40d084 --- /dev/null +++ b/queue-5.13/perf-x86-amd-power-assign-pmu.module.patch @@ -0,0 +1,35 @@ +From 179fa40bbfeb087bf31229f820c3a9df5c09fe82 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 17 Aug 2021 17:10:43 -0500 +Subject: perf/x86/amd/power: Assign pmu.module + +From: Kim Phillips + +[ Upstream commit ccf26483416a339c114409f6e7cd02abdeaf8052 ] + +Assign pmu.module so the driver can't be unloaded whilst in use. + +Signed-off-by: Kim Phillips +Signed-off-by: Peter Zijlstra (Intel) +Signed-off-by: Ingo Molnar +Link: https://lore.kernel.org/r/20210817221048.88063-4-kim.phillips@amd.com +Signed-off-by: Sasha Levin +--- + arch/x86/events/amd/power.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/arch/x86/events/amd/power.c b/arch/x86/events/amd/power.c +index 16a2369c586e..37d5b380516e 100644 +--- a/arch/x86/events/amd/power.c ++++ b/arch/x86/events/amd/power.c +@@ -213,6 +213,7 @@ static struct pmu pmu_class = { + .stop = pmu_event_stop, + .read = pmu_event_read, + .capabilities = PERF_PMU_CAP_NO_EXCLUDE, ++ .module = THIS_MODULE, + }; + + static int power_cpu_exit(unsigned int cpu) +-- +2.30.2 + diff --git a/queue-5.13/perf-x86-intel-pt-fix-mask-of-num_address_ranges.patch b/queue-5.13/perf-x86-intel-pt-fix-mask-of-num_address_ranges.patch new file mode 100644 index 00000000000..5c450355ca9 --- /dev/null +++ b/queue-5.13/perf-x86-intel-pt-fix-mask-of-num_address_ranges.patch @@ -0,0 +1,37 @@ +From 64bbab9fb3ed5cf2147b5de1d9772501c804372f Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 24 Aug 2021 12:06:22 +0800 +Subject: perf/x86/intel/pt: Fix mask of num_address_ranges + +From: Xiaoyao Li + +[ Upstream commit c53c6b7409f4cd9e542991b53d597fbe2751d7db ] + +Per SDM, bit 2:0 of CPUID(0x14,1).EAX[2:0] reports the number of +configurable address ranges for filtering, not bit 1:0. + +Signed-off-by: Xiaoyao Li +Signed-off-by: Peter Zijlstra (Intel) +Acked-by: Alexander Shishkin +Link: https://lkml.kernel.org/r/20210824040622.4081502-1-xiaoyao.li@intel.com +Signed-off-by: Sasha Levin +--- + arch/x86/events/intel/pt.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/x86/events/intel/pt.c b/arch/x86/events/intel/pt.c +index 915847655c06..b044577785bb 100644 +--- a/arch/x86/events/intel/pt.c ++++ b/arch/x86/events/intel/pt.c +@@ -62,7 +62,7 @@ static struct pt_cap_desc { + PT_CAP(single_range_output, 0, CPUID_ECX, BIT(2)), + PT_CAP(output_subsys, 0, CPUID_ECX, BIT(3)), + PT_CAP(payloads_lip, 0, CPUID_ECX, BIT(31)), +- PT_CAP(num_address_ranges, 1, CPUID_EAX, 0x3), ++ PT_CAP(num_address_ranges, 1, CPUID_EAX, 0x7), + PT_CAP(mtc_periods, 1, CPUID_EAX, 0xffff0000), + PT_CAP(cycle_thresholds, 1, CPUID_EBX, 0xffff), + PT_CAP(psb_periods, 1, CPUID_EBX, 0xffff0000), +-- +2.30.2 + diff --git a/queue-5.13/qed-fix-the-vf-msix-vectors-flow.patch b/queue-5.13/qed-fix-the-vf-msix-vectors-flow.patch new file mode 100644 index 00000000000..dbeb944cb83 --- /dev/null +++ b/queue-5.13/qed-fix-the-vf-msix-vectors-flow.patch @@ -0,0 +1,43 @@ +From 95f8bf775e6b0653562399e7452e62e8124d1391 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sun, 22 Aug 2021 22:21:14 +0300 +Subject: qed: Fix the VF msix vectors flow + +From: Shai Malin + +[ Upstream commit b0cd08537db8d2fbb227cdb2e5835209db295a24 ] + +For VFs we should return with an error in case we didn't get the exact +number of msix vectors as we requested. +Not doing that will lead to a crash when starting queues for this VF. + +Signed-off-by: Prabhakar Kushwaha +Signed-off-by: Ariel Elior +Signed-off-by: Shai Malin +Signed-off-by: David S. Miller +Signed-off-by: Sasha Levin +--- + drivers/net/ethernet/qlogic/qed/qed_main.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c b/drivers/net/ethernet/qlogic/qed/qed_main.c +index 5bd58c65e163..6bb9ec98a12b 100644 +--- a/drivers/net/ethernet/qlogic/qed/qed_main.c ++++ b/drivers/net/ethernet/qlogic/qed/qed_main.c +@@ -616,7 +616,12 @@ static int qed_enable_msix(struct qed_dev *cdev, + rc = cnt; + } + +- if (rc > 0) { ++ /* For VFs, we should return with an error in case we didn't get the ++ * exact number of msix vectors as we requested. ++ * Not doing that will lead to a crash when starting queues for ++ * this VF. ++ */ ++ if ((IS_PF(cdev) && rc > 0) || (IS_VF(cdev) && rc == cnt)) { + /* MSI-x configuration was achieved */ + int_params->out.int_mode = QED_INT_MODE_MSIX; + int_params->out.num_vectors = rc; +-- +2.30.2 + diff --git a/queue-5.13/qede-fix-memset-corruption.patch b/queue-5.13/qede-fix-memset-corruption.patch new file mode 100644 index 00000000000..5a0d6b31bb3 --- /dev/null +++ b/queue-5.13/qede-fix-memset-corruption.patch @@ -0,0 +1,48 @@ +From 83ef0493e6964fb5f3cb4e35fd389fc23d2f2ee7 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 24 Aug 2021 19:52:49 +0300 +Subject: qede: Fix memset corruption + +From: Shai Malin + +[ Upstream commit e543468869e2532f5d7926e8f417782b48eca3dc ] + +Thanks to Kees Cook who detected the problem of memset that starting +from not the first member, but sized for the whole struct. +The better change will be to remove the redundant memset and to clear +only the msix_cnt member. + +Signed-off-by: Prabhakar Kushwaha +Signed-off-by: Ariel Elior +Signed-off-by: Shai Malin +Reported-by: Kees Cook +Reviewed-by: Kees Cook +Signed-off-by: David S. Miller +Signed-off-by: Sasha Levin +--- + drivers/net/ethernet/qlogic/qede/qede_main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c +index 7c6064baeba2..1c7f9ed6f1c1 100644 +--- a/drivers/net/ethernet/qlogic/qede/qede_main.c ++++ b/drivers/net/ethernet/qlogic/qede/qede_main.c +@@ -1874,6 +1874,7 @@ static void qede_sync_free_irqs(struct qede_dev *edev) + } + + edev->int_info.used_cnt = 0; ++ edev->int_info.msix_cnt = 0; + } + + static int qede_req_msix_irqs(struct qede_dev *edev) +@@ -2427,7 +2428,6 @@ static int qede_load(struct qede_dev *edev, enum qede_load_mode mode, + goto out; + err4: + qede_sync_free_irqs(edev); +- memset(&edev->int_info.msix_cnt, 0, sizeof(struct qed_int_info)); + err3: + qede_napi_disable_remove(edev); + err2: +-- +2.30.2 + diff --git a/queue-5.13/reset-reset-zynqmp-fixed-the-argument-data-type.patch b/queue-5.13/reset-reset-zynqmp-fixed-the-argument-data-type.patch new file mode 100644 index 00000000000..9e1dda24571 --- /dev/null +++ b/queue-5.13/reset-reset-zynqmp-fixed-the-argument-data-type.patch @@ -0,0 +1,39 @@ +From 211dc65e017c38f8bcc8fd1ae20de172b884e020 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 23 Jun 2021 13:46:20 +0200 +Subject: reset: reset-zynqmp: Fixed the argument data type + +From: Sai Krishna Potthuri + +[ Upstream commit ed104ca4bd9c405b41e968ad4ece51f6462e90b6 ] + +This patch changes the data type of the variable 'val' from +int to u32. + +Addresses-Coverity: argument of type "int *" is incompatible with parameter of type "u32 *" +Signed-off-by: Sai Krishna Potthuri +Signed-off-by: Michal Simek +Link: https://lore.kernel.org/r/925cebbe4eb73c7d0a536da204748d33c7100d8c.1624448778.git.michal.simek@xilinx.com +Signed-off-by: Philipp Zabel +Signed-off-by: Sasha Levin +--- + drivers/reset/reset-zynqmp.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/drivers/reset/reset-zynqmp.c b/drivers/reset/reset-zynqmp.c +index ebd433fa09dd..8c51768e9a72 100644 +--- a/drivers/reset/reset-zynqmp.c ++++ b/drivers/reset/reset-zynqmp.c +@@ -53,7 +53,8 @@ static int zynqmp_reset_status(struct reset_controller_dev *rcdev, + unsigned long id) + { + struct zynqmp_reset_data *priv = to_zynqmp_reset_data(rcdev); +- int val, err; ++ int err; ++ u32 val; + + err = zynqmp_pm_reset_get_status(priv->data->reset_id + id, &val); + if (err) +-- +2.30.2 + diff --git a/queue-5.13/riscv-dts-microchip-add-ethernet0-to-the-aliases-nod.patch b/queue-5.13/riscv-dts-microchip-add-ethernet0-to-the-aliases-nod.patch new file mode 100644 index 00000000000..979244200ec --- /dev/null +++ b/queue-5.13/riscv-dts-microchip-add-ethernet0-to-the-aliases-nod.patch @@ -0,0 +1,41 @@ +From e52ce51d35803b82d268411ae98b4ec9c7169552 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 4 Aug 2021 20:30:15 +0800 +Subject: riscv: dts: microchip: Add ethernet0 to the aliases node + +From: Bin Meng + +[ Upstream commit 417166ddec020c4e969aea064e23822591ad54df ] + +U-Boot expects this alias to be in place in order to fix up the mac +address of the ethernet node. + +Note on the Icicle Kit board, currently only emac1 is enabled so it +becomes the 'ethernet0'. + +Signed-off-by: Bin Meng +Reviewed-by: Geert Uytterhoeven +Signed-off-by: Palmer Dabbelt +Signed-off-by: Sasha Levin +--- + arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts b/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts +index ec79944065c9..baea7d204639 100644 +--- a/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts ++++ b/arch/riscv/boot/dts/microchip/microchip-mpfs-icicle-kit.dts +@@ -14,6 +14,10 @@ + model = "Microchip PolarFire-SoC Icicle Kit"; + compatible = "microchip,mpfs-icicle-kit"; + ++ aliases { ++ ethernet0 = &emac1; ++ }; ++ + chosen { + stdout-path = &serial0; + }; +-- +2.30.2 + diff --git a/queue-5.13/riscv-dts-microchip-use-local-mac-address-for-emac1.patch b/queue-5.13/riscv-dts-microchip-use-local-mac-address-for-emac1.patch new file mode 100644 index 00000000000..1d5ea213acb --- /dev/null +++ b/queue-5.13/riscv-dts-microchip-use-local-mac-address-for-emac1.patch @@ -0,0 +1,40 @@ +From 9cbbfab42fdc5605a32eab4a8f79f942e54369e7 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 4 Aug 2021 20:30:14 +0800 +Subject: riscv: dts: microchip: Use 'local-mac-address' for emac1 + +From: Bin Meng + +[ Upstream commit 719588dee26bac0d5979c122bc530c43dc5d07c7 ] + +Per the DT spec, 'local-mac-address' is used to specify MAC address +that was assigned to the network device, while 'mac-address' is used +to specify the MAC address that was last used by the boot program, +and shall be used only if the value differs from 'local-mac-address' +property value. + +Signed-off-by: Bin Meng +Reviewed-by: conor dooley +Reviewed-by: Geert Uytterhoeven +Signed-off-by: Palmer Dabbelt +Signed-off-by: Sasha Levin +--- + arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi b/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi +index b9819570a7d1..9d2fbbc1f777 100644 +--- a/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi ++++ b/arch/riscv/boot/dts/microchip/microchip-mpfs.dtsi +@@ -317,7 +317,7 @@ + reg = <0x0 0x20112000 0x0 0x2000>; + interrupt-parent = <&plic>; + interrupts = <70 71 72 73>; +- mac-address = [00 00 00 00 00 00]; ++ local-mac-address = [00 00 00 00 00 00]; + clocks = <&clkcfg 5>, <&clkcfg 2>; + status = "disabled"; + clock-names = "pclk", "hclk"; +-- +2.30.2 + diff --git a/queue-5.13/series b/queue-5.13/series index 23e63a16edc..8067a68b525 100644 --- a/queue-5.13/series +++ b/queue-5.13/series @@ -1,2 +1,15 @@ ext4-fix-race-writing-to-an-inline_data-file-while-its-xattrs-are-changing.patch ext4-fix-e2fsprogs-checksum-failure-for-mounted-filesystem.patch +gpu-ipu-v3-fix-i.mx-ipu-v3-offset-calculations-for-s.patch +reset-reset-zynqmp-fixed-the-argument-data-type.patch +qed-fix-the-vf-msix-vectors-flow.patch +net-dsa-mv88e6xxx-update-mv88e6393x-serdes-errata.patch +riscv-dts-microchip-use-local-mac-address-for-emac1.patch +riscv-dts-microchip-add-ethernet0-to-the-aliases-nod.patch +net-macb-add-a-null-check-on-desc_ptp.patch +qede-fix-memset-corruption.patch +perf-x86-intel-pt-fix-mask-of-num_address_ranges.patch +ceph-fix-possible-null-pointer-dereference-in-ceph_m.patch +perf-x86-amd-ibs-work-around-erratum-1197.patch +perf-x86-amd-power-assign-pmu.module.patch +cryptoloop-add-a-deprecation-warning.patch