From: Sasha Levin Date: Mon, 12 Aug 2024 10:01:53 +0000 (-0400) Subject: Fixes for 5.10 X-Git-Tag: v6.1.105~81^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=eab78a5563582cb12433d713c5c839f742cfa422;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 5.10 Signed-off-by: Sasha Levin --- diff --git a/queue-5.10/irqchip-meson-gpio-convert-meson_gpio_irq_controller.patch b/queue-5.10/irqchip-meson-gpio-convert-meson_gpio_irq_controller.patch new file mode 100644 index 00000000000..5038fb75b96 --- /dev/null +++ b/queue-5.10/irqchip-meson-gpio-convert-meson_gpio_irq_controller.patch @@ -0,0 +1,111 @@ +From 209c528c6a0045c4a0f245a096758572522f5c05 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 29 Jul 2024 16:18:50 +0300 +Subject: irqchip/meson-gpio: Convert meson_gpio_irq_controller::lock to + 'raw_spinlock_t' + +From: Arseniy Krasnov + +[ Upstream commit f872d4af79fe8c71ae291ce8875b477e1669a6c7 ] + +This lock is acquired under irq_desc::lock with interrupts disabled. + +When PREEMPT_RT is enabled, 'spinlock_t' becomes preemptible, which results +in invalid lock acquire context; + + [ BUG: Invalid wait context ] + swapper/0/1 is trying to lock: + ffff0000008fed30 (&ctl->lock){....}-{3:3}, at: meson_gpio_irq_update_bits0 + other info that might help us debug this: + context-{5:5} + 3 locks held by swapper/0/1: + #0: ffff0000003cd0f8 (&dev->mutex){....}-{4:4}, at: __driver_attach+0x90c + #1: ffff000004714650 (&desc->request_mutex){+.+.}-{4:4}, at: __setup_irq0 + #2: ffff0000047144c8 (&irq_desc_lock_class){-.-.}-{2:2}, at: __setup_irq0 + stack backtrace: + CPU: 1 PID: 1 Comm: swapper/0 Not tainted 6.9.9-sdkernel #1 + Call trace: + _raw_spin_lock_irqsave+0x60/0x88 + meson_gpio_irq_update_bits+0x34/0x70 + meson8_gpio_irq_set_type+0x78/0xc4 + meson_gpio_irq_set_type+0x30/0x60 + __irq_set_trigger+0x60/0x180 + __setup_irq+0x30c/0x6e0 + request_threaded_irq+0xec/0x1a4 + +Fixes: 215f4cc0fb20 ("irqchip/meson: Add support for gpio interrupt controller") +Signed-off-by: Arseniy Krasnov +Signed-off-by: Thomas Gleixner +Cc: stable@vger.kernel.org +Link: https://lore.kernel.org/all/20240729131850.3015508-1-avkrasnov@salutedevices.com +Signed-off-by: Sasha Levin +--- + drivers/irqchip/irq-meson-gpio.c | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/drivers/irqchip/irq-meson-gpio.c b/drivers/irqchip/irq-meson-gpio.c +index 89dab14406e69..6a3d18d5ba2f0 100644 +--- a/drivers/irqchip/irq-meson-gpio.c ++++ b/drivers/irqchip/irq-meson-gpio.c +@@ -141,7 +141,7 @@ struct meson_gpio_irq_controller { + void __iomem *base; + u32 channel_irqs[MAX_NUM_CHANNEL]; + DECLARE_BITMAP(channel_map, MAX_NUM_CHANNEL); +- spinlock_t lock; ++ raw_spinlock_t lock; + }; + + static void meson_gpio_irq_update_bits(struct meson_gpio_irq_controller *ctl, +@@ -150,14 +150,14 @@ static void meson_gpio_irq_update_bits(struct meson_gpio_irq_controller *ctl, + unsigned long flags; + u32 tmp; + +- spin_lock_irqsave(&ctl->lock, flags); ++ raw_spin_lock_irqsave(&ctl->lock, flags); + + tmp = readl_relaxed(ctl->base + reg); + tmp &= ~mask; + tmp |= val; + writel_relaxed(tmp, ctl->base + reg); + +- spin_unlock_irqrestore(&ctl->lock, flags); ++ raw_spin_unlock_irqrestore(&ctl->lock, flags); + } + + static void meson_gpio_irq_init_dummy(struct meson_gpio_irq_controller *ctl) +@@ -207,12 +207,12 @@ meson_gpio_irq_request_channel(struct meson_gpio_irq_controller *ctl, + unsigned long flags; + unsigned int idx; + +- spin_lock_irqsave(&ctl->lock, flags); ++ raw_spin_lock_irqsave(&ctl->lock, flags); + + /* Find a free channel */ + idx = find_first_zero_bit(ctl->channel_map, ctl->params->nr_channels); + if (idx >= ctl->params->nr_channels) { +- spin_unlock_irqrestore(&ctl->lock, flags); ++ raw_spin_unlock_irqrestore(&ctl->lock, flags); + pr_err("No channel available\n"); + return -ENOSPC; + } +@@ -220,7 +220,7 @@ meson_gpio_irq_request_channel(struct meson_gpio_irq_controller *ctl, + /* Mark the channel as used */ + set_bit(idx, ctl->channel_map); + +- spin_unlock_irqrestore(&ctl->lock, flags); ++ raw_spin_unlock_irqrestore(&ctl->lock, flags); + + /* + * Setup the mux of the channel to route the signal of the pad +@@ -488,7 +488,7 @@ static int __init meson_gpio_irq_of_init(struct device_node *node, + if (!ctl) + return -ENOMEM; + +- spin_lock_init(&ctl->lock); ++ raw_spin_lock_init(&ctl->lock); + + ctl->base = of_iomap(node, 0); + if (!ctl->base) { +-- +2.43.0 + diff --git a/queue-5.10/irqchip-meson-gpio-support-more-than-8-channels-gpio.patch b/queue-5.10/irqchip-meson-gpio-support-more-than-8-channels-gpio.patch new file mode 100644 index 00000000000..dfb0cb371d7 --- /dev/null +++ b/queue-5.10/irqchip-meson-gpio-support-more-than-8-channels-gpio.patch @@ -0,0 +1,107 @@ +From 6c7419baaeec5e18805f670557db0a837acbdf08 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 25 Feb 2022 13:52:04 +0800 +Subject: irqchip/meson-gpio: support more than 8 channels gpio irq + +From: Qianggui Song + +[ Upstream commit cc311074f681443266ed9f5969a5b5a0e833c5bc ] + +Current meson gpio irqchip driver only support 8 channels for gpio irq +line, later chips may have more then 8 channels, so need to modify code +to support more. + +Signed-off-by: Qianggui Song +Signed-off-by: Marc Zyngier +Link: https://lore.kernel.org/r/20220225055207.1048-3-qianggui.song@amlogic.com +Stable-dep-of: f872d4af79fe ("irqchip/meson-gpio: Convert meson_gpio_irq_controller::lock to 'raw_spinlock_t'") +Signed-off-by: Sasha Levin +--- + drivers/irqchip/irq-meson-gpio.c | 21 ++++++++++++--------- + 1 file changed, 12 insertions(+), 9 deletions(-) + +diff --git a/drivers/irqchip/irq-meson-gpio.c b/drivers/irqchip/irq-meson-gpio.c +index e50676ce2ec84..89dab14406e69 100644 +--- a/drivers/irqchip/irq-meson-gpio.c ++++ b/drivers/irqchip/irq-meson-gpio.c +@@ -16,7 +16,7 @@ + #include + #include + +-#define NUM_CHANNEL 8 ++#define MAX_NUM_CHANNEL 64 + #define MAX_INPUT_MUX 256 + + #define REG_EDGE_POL 0x00 +@@ -60,6 +60,7 @@ struct irq_ctl_ops { + + struct meson_gpio_irq_params { + unsigned int nr_hwirq; ++ unsigned int nr_channels; + bool support_edge_both; + unsigned int edge_both_offset; + unsigned int edge_single_offset; +@@ -81,6 +82,7 @@ struct meson_gpio_irq_params { + .edge_single_offset = 0, \ + .pol_low_offset = 16, \ + .pin_sel_mask = 0xff, \ ++ .nr_channels = 8, \ + + #define INIT_MESON_A1_COMMON_DATA(irqs) \ + INIT_MESON_COMMON(irqs, meson_a1_gpio_irq_init, \ +@@ -90,6 +92,7 @@ struct meson_gpio_irq_params { + .edge_single_offset = 8, \ + .pol_low_offset = 0, \ + .pin_sel_mask = 0x7f, \ ++ .nr_channels = 8, \ + + static const struct meson_gpio_irq_params meson8_params = { + INIT_MESON8_COMMON_DATA(134) +@@ -136,8 +139,8 @@ static const struct of_device_id meson_irq_gpio_matches[] = { + struct meson_gpio_irq_controller { + const struct meson_gpio_irq_params *params; + void __iomem *base; +- u32 channel_irqs[NUM_CHANNEL]; +- DECLARE_BITMAP(channel_map, NUM_CHANNEL); ++ u32 channel_irqs[MAX_NUM_CHANNEL]; ++ DECLARE_BITMAP(channel_map, MAX_NUM_CHANNEL); + spinlock_t lock; + }; + +@@ -207,8 +210,8 @@ meson_gpio_irq_request_channel(struct meson_gpio_irq_controller *ctl, + spin_lock_irqsave(&ctl->lock, flags); + + /* Find a free channel */ +- idx = find_first_zero_bit(ctl->channel_map, NUM_CHANNEL); +- if (idx >= NUM_CHANNEL) { ++ idx = find_first_zero_bit(ctl->channel_map, ctl->params->nr_channels); ++ if (idx >= ctl->params->nr_channels) { + spin_unlock_irqrestore(&ctl->lock, flags); + pr_err("No channel available\n"); + return -ENOSPC; +@@ -451,10 +454,10 @@ static int __init meson_gpio_irq_parse_dt(struct device_node *node, + ret = of_property_read_variable_u32_array(node, + "amlogic,channel-interrupts", + ctl->channel_irqs, +- NUM_CHANNEL, +- NUM_CHANNEL); ++ ctl->params->nr_channels, ++ ctl->params->nr_channels); + if (ret < 0) { +- pr_err("can't get %d channel interrupts\n", NUM_CHANNEL); ++ pr_err("can't get %d channel interrupts\n", ctl->params->nr_channels); + return ret; + } + +@@ -509,7 +512,7 @@ static int __init meson_gpio_irq_of_init(struct device_node *node, + } + + pr_info("%d to %d gpio interrupt mux initialized\n", +- ctl->params->nr_hwirq, NUM_CHANNEL); ++ ctl->params->nr_hwirq, ctl->params->nr_channels); + + return 0; + +-- +2.43.0 + diff --git a/queue-5.10/ntp-clamp-maxerror-and-esterror-to-operating-range.patch b/queue-5.10/ntp-clamp-maxerror-and-esterror-to-operating-range.patch new file mode 100644 index 00000000000..82862baa62d --- /dev/null +++ b/queue-5.10/ntp-clamp-maxerror-and-esterror-to-operating-range.patch @@ -0,0 +1,74 @@ +From 114037b9143925e35dc78e7ee35e8a590f7b9319 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 17 May 2024 20:22:44 +0000 +Subject: ntp: Clamp maxerror and esterror to operating range + +From: Justin Stitt + +[ Upstream commit 87d571d6fb77ec342a985afa8744bb9bb75b3622 ] + +Using syzkaller alongside the newly reintroduced signed integer overflow +sanitizer spits out this report: + +UBSAN: signed-integer-overflow in ../kernel/time/ntp.c:461:16 +9223372036854775807 + 500 cannot be represented in type 'long' +Call Trace: + handle_overflow+0x171/0x1b0 + second_overflow+0x2d6/0x500 + accumulate_nsecs_to_secs+0x60/0x160 + timekeeping_advance+0x1fe/0x890 + update_wall_time+0x10/0x30 + +time_maxerror is unconditionally incremented and the result is checked +against NTP_PHASE_LIMIT, but the increment itself can overflow, resulting +in wrap-around to negative space. + +Before commit eea83d896e31 ("ntp: NTP4 user space bits update") the user +supplied value was sanity checked to be in the operating range. That change +removed the sanity check and relied on clamping in handle_overflow() which +does not work correctly when the user supplied value is in the overflow +zone of the '+ 500' operation. + +The operation requires CAP_SYS_TIME and the side effect of the overflow is +NTP getting out of sync. + +Miroslav confirmed that the input value should be clamped to the operating +range and the same applies to time_esterror. The latter is not used by the +kernel, but the value still should be in the operating range as it was +before the sanity check got removed. + +Clamp them to the operating range. + +[ tglx: Changed it to clamping and included time_esterror ] + +Fixes: eea83d896e31 ("ntp: NTP4 user space bits update") +Signed-off-by: Justin Stitt +Signed-off-by: Thomas Gleixner +Cc: Miroslav Lichvar +Link: https://lore.kernel.org/all/20240517-b4-sio-ntp-usec-v2-1-d539180f2b79@google.com +Closes: https://github.com/KSPP/linux/issues/354 +Signed-off-by: Sasha Levin +--- + kernel/time/ntp.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c +index 069ca78fb0bfa..568bf37849aea 100644 +--- a/kernel/time/ntp.c ++++ b/kernel/time/ntp.c +@@ -679,10 +679,10 @@ static inline void process_adjtimex_modes(const struct __kernel_timex *txc, + } + + if (txc->modes & ADJ_MAXERROR) +- time_maxerror = txc->maxerror; ++ time_maxerror = clamp(txc->maxerror, 0, NTP_PHASE_LIMIT); + + if (txc->modes & ADJ_ESTERROR) +- time_esterror = txc->esterror; ++ time_esterror = clamp(txc->esterror, 0, NTP_PHASE_LIMIT); + + if (txc->modes & ADJ_TIMECONST) { + time_constant = txc->constant; +-- +2.43.0 + diff --git a/queue-5.10/scsi-mpt3sas-avoid-iommu-page-faults-on-report-zones.patch b/queue-5.10/scsi-mpt3sas-avoid-iommu-page-faults-on-report-zones.patch new file mode 100644 index 00000000000..a940b0900ac --- /dev/null +++ b/queue-5.10/scsi-mpt3sas-avoid-iommu-page-faults-on-report-zones.patch @@ -0,0 +1,101 @@ +From bad7745609263dd1ae1bd1965684a7fe890baade Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 19 Jul 2024 16:39:12 +0900 +Subject: scsi: mpt3sas: Avoid IOMMU page faults on REPORT ZONES + +From: Damien Le Moal + +[ Upstream commit 82dbb57ac8d06dfe8227ba9ab11a49de2b475ae5 ] + +Some firmware versions of the 9600 series SAS HBA byte-swap the REPORT +ZONES command reply buffer from ATA-ZAC devices by directly accessing the +buffer in the host memory. This does not respect the default command DMA +direction and causes IOMMU page faults on architectures with an IOMMU +enforcing write-only mappings for DMA_FROM_DEVICE DMA driection (e.g. AMD +hosts). + +scsi 18:0:0:0: Direct-Access-ZBC ATA WDC WSH722020AL W870 PQ: 0 ANSI: 6 +scsi 18:0:0:0: SATA: handle(0x0027), sas_addr(0x300062b2083e7c40), phy(0), device_name(0x5000cca29dc35e11) +scsi 18:0:0:0: enclosure logical id (0x300062b208097c40), slot(0) +scsi 18:0:0:0: enclosure level(0x0000), connector name( C0.0) +scsi 18:0:0:0: atapi(n), ncq(y), asyn_notify(n), smart(y), fua(y), sw_preserve(y) +scsi 18:0:0:0: qdepth(32), tagged(1), scsi_level(7), cmd_que(1) +sd 18:0:0:0: Attached scsi generic sg2 type 20 +sd 18:0:0:0: [sdc] Host-managed zoned block device +mpt3sas 0000:41:00.0: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0021 address=0xfff9b200 flags=0x0050] +mpt3sas 0000:41:00.0: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0021 address=0xfff9b300 flags=0x0050] +mpt3sas_cm0: mpt3sas_ctl_pre_reset_handler: Releasing the trace buffer due to adapter reset. +mpt3sas_cm0 fault info from func: mpt3sas_base_make_ioc_ready +mpt3sas_cm0: fault_state(0x2666)! +mpt3sas_cm0: sending diag reset !! +mpt3sas_cm0: diag reset: SUCCESS +sd 18:0:0:0: [sdc] REPORT ZONES start lba 0 failed +sd 18:0:0:0: [sdc] REPORT ZONES: Result: hostbyte=DID_RESET driverbyte=DRIVER_OK +sd 18:0:0:0: [sdc] 0 4096-byte logical blocks: (0 B/0 B) + +Avoid such issue by always mapping the buffer of REPORT ZONES commands +using DMA_BIDIRECTIONAL (read+write IOMMU mapping). This is done by +introducing the helper function _base_scsi_dma_map() and using this helper +in _base_build_sg_scmd() and _base_build_sg_scmd_ieee() instead of calling +directly scsi_dma_map(). + +Fixes: 471ef9d4e498 ("mpt3sas: Build MPI SGL LIST on GEN2 HBAs and IEEE SGL LIST on GEN3 HBAs") +Cc: stable@vger.kernel.org +Signed-off-by: Damien Le Moal +Link: https://lore.kernel.org/r/20240719073913.179559-3-dlemoal@kernel.org +Reviewed-by: Christoph Hellwig +Reviewed-by: Johannes Thumshirn +Signed-off-by: Martin K. Petersen +Signed-off-by: Sasha Levin +--- + drivers/scsi/mpt3sas/mpt3sas_base.c | 20 ++++++++++++++++++-- + 1 file changed, 18 insertions(+), 2 deletions(-) + +diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c +index de4ec552799dd..53528711dac1f 100644 +--- a/drivers/scsi/mpt3sas/mpt3sas_base.c ++++ b/drivers/scsi/mpt3sas/mpt3sas_base.c +@@ -2492,6 +2492,22 @@ _base_build_zero_len_sge_ieee(struct MPT3SAS_ADAPTER *ioc, void *paddr) + _base_add_sg_single_ieee(paddr, sgl_flags, 0, 0, -1); + } + ++static inline int _base_scsi_dma_map(struct scsi_cmnd *cmd) ++{ ++ /* ++ * Some firmware versions byte-swap the REPORT ZONES command reply from ++ * ATA-ZAC devices by directly accessing in the host buffer. This does ++ * not respect the default command DMA direction and causes IOMMU page ++ * faults on some architectures with an IOMMU enforcing write mappings ++ * (e.g. AMD hosts). Avoid such issue by making the report zones buffer ++ * mapping bi-directional. ++ */ ++ if (cmd->cmnd[0] == ZBC_IN && cmd->cmnd[1] == ZI_REPORT_ZONES) ++ cmd->sc_data_direction = DMA_BIDIRECTIONAL; ++ ++ return scsi_dma_map(cmd); ++} ++ + /** + * _base_build_sg_scmd - main sg creation routine + * pcie_device is unused here! +@@ -2538,7 +2554,7 @@ _base_build_sg_scmd(struct MPT3SAS_ADAPTER *ioc, + sgl_flags = sgl_flags << MPI2_SGE_FLAGS_SHIFT; + + sg_scmd = scsi_sglist(scmd); +- sges_left = scsi_dma_map(scmd); ++ sges_left = _base_scsi_dma_map(scmd); + if (sges_left < 0) + return -ENOMEM; + +@@ -2682,7 +2698,7 @@ _base_build_sg_scmd_ieee(struct MPT3SAS_ADAPTER *ioc, + } + + sg_scmd = scsi_sglist(scmd); +- sges_left = scsi_dma_map(scmd); ++ sges_left = _base_scsi_dma_map(scmd); + if (sges_left < 0) + return -ENOMEM; + +-- +2.43.0 + diff --git a/queue-5.10/scsi-mpt3sas-remove-scsi_dma_map-error-messages.patch b/queue-5.10/scsi-mpt3sas-remove-scsi_dma_map-error-messages.patch new file mode 100644 index 00000000000..3fdab79c6ae --- /dev/null +++ b/queue-5.10/scsi-mpt3sas-remove-scsi_dma_map-error-messages.patch @@ -0,0 +1,75 @@ +From 25ae051e78f5560af054c0acc7b6c462ef717a15 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 3 Mar 2022 19:32:03 +0530 +Subject: scsi: mpt3sas: Remove scsi_dma_map() error messages + +From: Sreekanth Reddy + +[ Upstream commit 0c25422d34b4726b2707d5f38560943155a91b80 ] + +When scsi_dma_map() fails by returning a sges_left value less than zero, +the amount of logging produced can be extremely high. In a recent end-user +environment, 1200 messages per second were being sent to the log buffer. +This eventually overwhelmed the system and it stalled. + +These error messages are not needed. Remove them. + +Link: https://lore.kernel.org/r/20220303140203.12642-1-sreekanth.reddy@broadcom.com +Suggested-by: Christoph Hellwig +Signed-off-by: Sreekanth Reddy +Signed-off-by: Martin K. Petersen +Stable-dep-of: 82dbb57ac8d0 ("scsi: mpt3sas: Avoid IOMMU page faults on REPORT ZONES") +Signed-off-by: Sasha Levin +--- + drivers/scsi/mpt3sas/mpt3sas_base.c | 18 +++--------------- + 1 file changed, 3 insertions(+), 15 deletions(-) + +diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c +index 2803b475dae6a..de4ec552799dd 100644 +--- a/drivers/scsi/mpt3sas/mpt3sas_base.c ++++ b/drivers/scsi/mpt3sas/mpt3sas_base.c +@@ -2431,12 +2431,8 @@ _base_check_pcie_native_sgl(struct MPT3SAS_ADAPTER *ioc, + + /* Get the SG list pointer and info. */ + sges_left = scsi_dma_map(scmd); +- if (sges_left < 0) { +- sdev_printk(KERN_ERR, scmd->device, +- "scsi_dma_map failed: request for %d bytes!\n", +- scsi_bufflen(scmd)); ++ if (sges_left < 0) + return 1; +- } + + /* Check if we need to build a native SG list. */ + if (base_is_prp_possible(ioc, pcie_device, +@@ -2543,12 +2539,8 @@ _base_build_sg_scmd(struct MPT3SAS_ADAPTER *ioc, + + sg_scmd = scsi_sglist(scmd); + sges_left = scsi_dma_map(scmd); +- if (sges_left < 0) { +- sdev_printk(KERN_ERR, scmd->device, +- "scsi_dma_map failed: request for %d bytes!\n", +- scsi_bufflen(scmd)); ++ if (sges_left < 0) + return -ENOMEM; +- } + + sg_local = &mpi_request->SGL; + sges_in_segment = ioc->max_sges_in_main_message; +@@ -2691,12 +2683,8 @@ _base_build_sg_scmd_ieee(struct MPT3SAS_ADAPTER *ioc, + + sg_scmd = scsi_sglist(scmd); + sges_left = scsi_dma_map(scmd); +- if (sges_left < 0) { +- sdev_printk(KERN_ERR, scmd->device, +- "scsi_dma_map failed: request for %d bytes!\n", +- scsi_bufflen(scmd)); ++ if (sges_left < 0) + return -ENOMEM; +- } + + sg_local = &mpi_request->SGL; + sges_in_segment = (ioc->request_sz - +-- +2.43.0 + diff --git a/queue-5.10/series b/queue-5.10/series index 1a3adff0509..f2c5b359c1b 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -314,3 +314,8 @@ alsa-line6-fix-racy-access-to-midibuf.patch alsa-hda-add-hp-mp9-g4-retail-system-ams-to-force-connect-list.patch alsa-hda-hdmi-yet-more-pin-fix-for-hp-elitedesk-800-g4.patch usb-vhci-hcd-do-not-drop-references-before-new-references-are-gained.patch +ntp-clamp-maxerror-and-esterror-to-operating-range.patch +scsi-mpt3sas-remove-scsi_dma_map-error-messages.patch +scsi-mpt3sas-avoid-iommu-page-faults-on-report-zones.patch +irqchip-meson-gpio-support-more-than-8-channels-gpio.patch +irqchip-meson-gpio-convert-meson_gpio_irq_controller.patch