From 9b9627b4231d09063a5bdabfbe058301496062ed Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Wed, 30 Nov 2022 07:55:54 -0500 Subject: [PATCH] Fixes for 5.4 Signed-off-by: Sasha Levin --- ...t_es8316-add-quirk-for-the-nanote-um.patch | 42 +++++++++ ...tegrity-flush-the-journal-on-suspend.patch | 52 ++++++++++ ...switch-touchpad-on-hp-laptop-15-da30.patch | 35 +++++++ ...mi_wwan-add-telit-0x103a-composition.patch | 40 ++++++++ ...r-wmi-enable-sw_tablet_mode-on-switc.patch | 48 ++++++++++ ...s-wmi-add-missing-pci_dev_put-in-asu.patch | 39 ++++++++ ...wmi-ignore-smart-experience-app-even.patch | 48 ++++++++++ ..._omap-avoid-rs485-rts-glitch-on-set_.patch | 94 +++++++++++++++++++ queue-5.4/series | 10 ++ ...rable-source-port-perturb-table-size.patch | 78 +++++++++++++++ ...i-add-missing-free_irq-in-error-path.patch | 54 +++++++++++ 11 files changed, 540 insertions(+) create mode 100644 queue-5.4/asoc-intel-bytcht_es8316-add-quirk-for-the-nanote-um.patch create mode 100644 queue-5.4/dm-integrity-flush-the-journal-on-suspend.patch create mode 100644 queue-5.4/input-synaptics-switch-touchpad-on-hp-laptop-15-da30.patch create mode 100644 queue-5.4/net-usb-qmi_wwan-add-telit-0x103a-composition.patch create mode 100644 queue-5.4/platform-x86-acer-wmi-enable-sw_tablet_mode-on-switc.patch create mode 100644 queue-5.4/platform-x86-asus-wmi-add-missing-pci_dev_put-in-asu.patch create mode 100644 queue-5.4/platform-x86-hp-wmi-ignore-smart-experience-app-even.patch create mode 100644 queue-5.4/serial-8250-8250_omap-avoid-rs485-rts-glitch-on-set_.patch create mode 100644 queue-5.4/tcp-configurable-source-port-perturb-table-size.patch create mode 100644 queue-5.4/xen-platform-pci-add-missing-free_irq-in-error-path.patch diff --git a/queue-5.4/asoc-intel-bytcht_es8316-add-quirk-for-the-nanote-um.patch b/queue-5.4/asoc-intel-bytcht_es8316-add-quirk-for-the-nanote-um.patch new file mode 100644 index 00000000000..13f24cd8c33 --- /dev/null +++ b/queue-5.4/asoc-intel-bytcht_es8316-add-quirk-for-the-nanote-um.patch @@ -0,0 +1,42 @@ +From 0e475accf3e9d4f6b60ad65d58954e717880289d Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 25 Oct 2022 16:09:42 +0200 +Subject: ASoC: Intel: bytcht_es8316: Add quirk for the Nanote UMPC-01 + +From: Hans de Goede + +[ Upstream commit 8bb0ac0e6f64ebdf15d963c26b028de391c9bcf9 ] + +The Nanote UMPC-01 mini laptop has stereo speakers, while the default +bytcht_es8316 settings assume a mono speaker setup. Add a quirk for this. + +Signed-off-by: Hans de Goede +Acked-by: Pierre-Louis Bossart +Link: https://lore.kernel.org/r/20221025140942.509066-1-hdegoede@redhat.com +Signed-off-by: Mark Brown +Signed-off-by: Sasha Levin +--- + sound/soc/intel/boards/bytcht_es8316.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/sound/soc/intel/boards/bytcht_es8316.c b/sound/soc/intel/boards/bytcht_es8316.c +index ed332177b0f9..57d6d0b48068 100644 +--- a/sound/soc/intel/boards/bytcht_es8316.c ++++ b/sound/soc/intel/boards/bytcht_es8316.c +@@ -446,6 +446,13 @@ static const struct dmi_system_id byt_cht_es8316_quirk_table[] = { + | BYT_CHT_ES8316_INTMIC_IN2_MAP + | BYT_CHT_ES8316_JD_INVERTED), + }, ++ { /* Nanote UMPC-01 */ ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "RWC CO.,LTD"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "UMPC-01"), ++ }, ++ .driver_data = (void *)BYT_CHT_ES8316_INTMIC_IN1_MAP, ++ }, + { /* Teclast X98 Plus II */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TECLAST"), +-- +2.35.1 + diff --git a/queue-5.4/dm-integrity-flush-the-journal-on-suspend.patch b/queue-5.4/dm-integrity-flush-the-journal-on-suspend.patch new file mode 100644 index 00000000000..32bf31bd363 --- /dev/null +++ b/queue-5.4/dm-integrity-flush-the-journal-on-suspend.patch @@ -0,0 +1,52 @@ +From 95d0371f57bec04adec06061e33e1f9001b5af88 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 15 Nov 2022 12:48:26 -0500 +Subject: dm integrity: flush the journal on suspend + +From: Mikulas Patocka + +[ Upstream commit 5e5dab5ec763d600fe0a67837dd9155bdc42f961 ] + +This commit flushes the journal on suspend. It is prerequisite for the +next commit that enables activating dm integrity devices in read-only mode. + +Note that we deliberately didn't flush the journal on suspend, so that the +journal replay code would be tested. However, the dm-integrity code is 5 +years old now, so that journal replay is well-tested, and we can make this +change now. + +Signed-off-by: Mikulas Patocka +Signed-off-by: Mike Snitzer +Signed-off-by: Sasha Levin +--- + drivers/md/dm-integrity.c | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/drivers/md/dm-integrity.c b/drivers/md/dm-integrity.c +index acbda91e7643..32f36810c3c9 100644 +--- a/drivers/md/dm-integrity.c ++++ b/drivers/md/dm-integrity.c +@@ -2346,10 +2346,6 @@ static void integrity_writer(struct work_struct *w) + + unsigned prev_free_sectors; + +- /* the following test is not needed, but it tests the replay code */ +- if (unlikely(dm_post_suspending(ic->ti)) && !ic->meta_dev) +- return; +- + spin_lock_irq(&ic->endio_wait.lock); + write_start = ic->committed_section; + write_sections = ic->n_committed_sections; +@@ -2858,8 +2854,7 @@ static void dm_integrity_postsuspend(struct dm_target *ti) + drain_workqueue(ic->commit_wq); + + if (ic->mode == 'J') { +- if (ic->meta_dev) +- queue_work(ic->writer_wq, &ic->writer_work); ++ queue_work(ic->writer_wq, &ic->writer_work); + drain_workqueue(ic->writer_wq); + dm_integrity_flush_buffers(ic, true); + } +-- +2.35.1 + diff --git a/queue-5.4/input-synaptics-switch-touchpad-on-hp-laptop-15-da30.patch b/queue-5.4/input-synaptics-switch-touchpad-on-hp-laptop-15-da30.patch new file mode 100644 index 00000000000..e65314a1373 --- /dev/null +++ b/queue-5.4/input-synaptics-switch-touchpad-on-hp-laptop-15-da30.patch @@ -0,0 +1,35 @@ +From 96c3fe41399d3e3def2ab00d12261d95a9856c2b Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sat, 15 Oct 2022 20:41:17 -0700 +Subject: Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI + mode + +From: Aman Dhoot + +[ Upstream commit ac5408991ea6b06e29129b4d4861097c4c3e0d59 ] + +The device works fine in native RMI mode, there is no reason to use legacy +PS/2 mode with it. + +Signed-off-by: Aman Dhoot +Signed-off-by: Dmitry Torokhov +Signed-off-by: Sasha Levin +--- + drivers/input/mouse/synaptics.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c +index 4b81b2d0fe06..05b007d0a89b 100644 +--- a/drivers/input/mouse/synaptics.c ++++ b/drivers/input/mouse/synaptics.c +@@ -189,6 +189,7 @@ static const char * const smbus_pnp_ids[] = { + "SYN3221", /* HP 15-ay000 */ + "SYN323d", /* HP Spectre X360 13-w013dx */ + "SYN3257", /* HP Envy 13-ad105ng */ ++ "SYN3286", /* HP Laptop 15-da3001TU */ + NULL + }; + +-- +2.35.1 + diff --git a/queue-5.4/net-usb-qmi_wwan-add-telit-0x103a-composition.patch b/queue-5.4/net-usb-qmi_wwan-add-telit-0x103a-composition.patch new file mode 100644 index 00000000000..85fa513a5a3 --- /dev/null +++ b/queue-5.4/net-usb-qmi_wwan-add-telit-0x103a-composition.patch @@ -0,0 +1,40 @@ +From 2a3b69a51db85921abb7663eab883160f6aebf88 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 15 Nov 2022 11:58:59 +0100 +Subject: net: usb: qmi_wwan: add Telit 0x103a composition +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Enrico Sau + +[ Upstream commit e103ba33998d0f25653cc8ebe745b68d1ee10cda ] + +Add the following Telit LE910C4-WWX composition: + +0x103a: rmnet + +Signed-off-by: Enrico Sau +Acked-by: Bjørn Mork +Link: https://lore.kernel.org/r/20221115105859.14324-1-enrico.sau@gmail.com +Signed-off-by: Paolo Abeni +Signed-off-by: Sasha Levin +--- + drivers/net/usb/qmi_wwan.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c +index 6f82436ff72f..7f0e3b09f776 100644 +--- a/drivers/net/usb/qmi_wwan.c ++++ b/drivers/net/usb/qmi_wwan.c +@@ -1314,6 +1314,7 @@ static const struct usb_device_id products[] = { + {QMI_FIXED_INTF(0x2357, 0x0201, 4)}, /* TP-LINK HSUPA Modem MA180 */ + {QMI_FIXED_INTF(0x2357, 0x9000, 4)}, /* TP-LINK MA260 */ + {QMI_QUIRK_SET_DTR(0x1bc7, 0x1031, 3)}, /* Telit LE910C1-EUX */ ++ {QMI_QUIRK_SET_DTR(0x1bc7, 0x103a, 0)}, /* Telit LE910C4-WWX */ + {QMI_QUIRK_SET_DTR(0x1bc7, 0x1040, 2)}, /* Telit LE922A */ + {QMI_QUIRK_SET_DTR(0x1bc7, 0x1050, 2)}, /* Telit FN980 */ + {QMI_QUIRK_SET_DTR(0x1bc7, 0x1060, 2)}, /* Telit LN920 */ +-- +2.35.1 + diff --git a/queue-5.4/platform-x86-acer-wmi-enable-sw_tablet_mode-on-switc.patch b/queue-5.4/platform-x86-acer-wmi-enable-sw_tablet_mode-on-switc.patch new file mode 100644 index 00000000000..b31d6b70f3e --- /dev/null +++ b/queue-5.4/platform-x86-acer-wmi-enable-sw_tablet_mode-on-switc.patch @@ -0,0 +1,48 @@ +From 96975f216cbdaa61d751354c4be958add622439f Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 11 Nov 2022 12:16:39 +0100 +Subject: platform/x86: acer-wmi: Enable SW_TABLET_MODE on Switch V 10 + (SW5-017) + +From: Hans de Goede + +[ Upstream commit 1e817b889c7d8c14e7005258e15fec62edafe03c ] + +Like the Acer Switch 10 (SW5-012) and Acer Switch 10 (S1003) models +the Acer Switch V 10 (SW5-017) supports reporting SW_TABLET_MODE +through acer-wmi. + +Add a DMI quirk for the SW5-017 setting force_caps to ACER_CAP_KBD_DOCK +(these devices have no other acer-wmi based functionality). + +Cc: Rudolf Polzer +Signed-off-by: Hans de Goede +Link: https://lore.kernel.org/r/20221111111639.35730-1-hdegoede@redhat.com +Signed-off-by: Sasha Levin +--- + drivers/platform/x86/acer-wmi.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c +index e88bd54ff8bd..d6c4cd4262df 100644 +--- a/drivers/platform/x86/acer-wmi.c ++++ b/drivers/platform/x86/acer-wmi.c +@@ -536,6 +536,15 @@ static const struct dmi_system_id acer_quirks[] __initconst = { + }, + .driver_data = (void *)ACER_CAP_KBD_DOCK, + }, ++ { ++ .callback = set_force_caps, ++ .ident = "Acer Aspire Switch V 10 SW5-017", ++ .matches = { ++ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Acer"), ++ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SW5-017"), ++ }, ++ .driver_data = (void *)ACER_CAP_KBD_DOCK, ++ }, + { + .callback = set_force_caps, + .ident = "Acer One 10 (S1003)", +-- +2.35.1 + diff --git a/queue-5.4/platform-x86-asus-wmi-add-missing-pci_dev_put-in-asu.patch b/queue-5.4/platform-x86-asus-wmi-add-missing-pci_dev_put-in-asu.patch new file mode 100644 index 00000000000..351260e9433 --- /dev/null +++ b/queue-5.4/platform-x86-asus-wmi-add-missing-pci_dev_put-in-asu.patch @@ -0,0 +1,39 @@ +From 04a982ee757059a1f0d6914769ae9aaf4b7e1bcd Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 11 Nov 2022 18:07:52 +0800 +Subject: platform/x86: asus-wmi: add missing pci_dev_put() in + asus_wmi_set_xusb2pr() + +From: Xiongfeng Wang + +[ Upstream commit d0cdd85046b15089df71a50548617ac1025300d0 ] + +pci_get_device() will increase the reference count for the returned +pci_dev. We need to use pci_dev_put() to decrease the reference count +before asus_wmi_set_xusb2pr() returns. + +Signed-off-by: Xiongfeng Wang +Link: https://lore.kernel.org/r/20221111100752.134311-1-wangxiongfeng2@huawei.com +Reviewed-by: Hans de Goede +Signed-off-by: Hans de Goede +Signed-off-by: Sasha Levin +--- + drivers/platform/x86/asus-wmi.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c +index ed83fb135bab..761cab698c75 100644 +--- a/drivers/platform/x86/asus-wmi.c ++++ b/drivers/platform/x86/asus-wmi.c +@@ -1195,6 +1195,8 @@ static void asus_wmi_set_xusb2pr(struct asus_wmi *asus) + pci_write_config_dword(xhci_pdev, USB_INTEL_XUSB2PR, + cpu_to_le32(ports_available)); + ++ pci_dev_put(xhci_pdev); ++ + pr_info("set USB_INTEL_XUSB2PR old: 0x%04x, new: 0x%04x\n", + orig_ports_available, ports_available); + } +-- +2.35.1 + diff --git a/queue-5.4/platform-x86-hp-wmi-ignore-smart-experience-app-even.patch b/queue-5.4/platform-x86-hp-wmi-ignore-smart-experience-app-even.patch new file mode 100644 index 00000000000..38e9031037c --- /dev/null +++ b/queue-5.4/platform-x86-hp-wmi-ignore-smart-experience-app-even.patch @@ -0,0 +1,48 @@ +From cb1d9cd8d7b495de660a64816aa7e1516fb5929c Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 14 Nov 2022 15:38:41 +0800 +Subject: platform/x86: hp-wmi: Ignore Smart Experience App event + +From: Kai-Heng Feng + +[ Upstream commit 8b9b6a044b408283b086702b1d9e3cf4ba45b426 ] + +Sometimes hp-wmi driver complains on system resume: +[ 483.116451] hp_wmi: Unknown event_id - 33 - 0x0 + +According to HP it's a feature called "HP Smart Experience App" and it's +safe to be ignored. + +Signed-off-by: Kai-Heng Feng +Link: https://lore.kernel.org/r/20221114073842.205392-1-kai.heng.feng@canonical.com +Reviewed-by: Hans de Goede +Signed-off-by: Hans de Goede +Signed-off-by: Sasha Levin +--- + drivers/platform/x86/hp-wmi.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c +index a67773eca3ac..d3a329b201b1 100644 +--- a/drivers/platform/x86/hp-wmi.c ++++ b/drivers/platform/x86/hp-wmi.c +@@ -63,6 +63,7 @@ enum hp_wmi_event_ids { + HPWMI_PEAKSHIFT_PERIOD = 0x0F, + HPWMI_BATTERY_CHARGE_PERIOD = 0x10, + HPWMI_SANITIZATION_MODE = 0x17, ++ HPWMI_SMART_EXPERIENCE_APP = 0x21, + }; + + struct bios_args { +@@ -632,6 +633,8 @@ static void hp_wmi_notify(u32 value, void *context) + break; + case HPWMI_SANITIZATION_MODE: + break; ++ case HPWMI_SMART_EXPERIENCE_APP: ++ break; + default: + pr_info("Unknown event_id - %d - 0x%x\n", event_id, event_data); + break; +-- +2.35.1 + diff --git a/queue-5.4/serial-8250-8250_omap-avoid-rs485-rts-glitch-on-set_.patch b/queue-5.4/serial-8250-8250_omap-avoid-rs485-rts-glitch-on-set_.patch new file mode 100644 index 00000000000..67672707db0 --- /dev/null +++ b/queue-5.4/serial-8250-8250_omap-avoid-rs485-rts-glitch-on-set_.patch @@ -0,0 +1,94 @@ +From d94070efdab40bb8f4009813bb941876668261af Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 27 Sep 2022 13:52:34 +0200 +Subject: serial: 8250: 8250_omap: Avoid RS485 RTS glitch on ->set_termios() + +From: Lukas Wunner + +[ Upstream commit 038ee49fef18710bedd38b531d173ccd746b2d8d ] + +RS485-enabled UART ports on TI Sitara SoCs with active-low polarity +exhibit a Transmit Enable glitch on ->set_termios(): + +omap8250_restore_regs(), which is called from omap_8250_set_termios(), +sets the TCRTLR bit in the MCR register and clears all other bits, +including RTS. If RTS uses active-low polarity, it is now asserted +for no reason. + +The TCRTLR bit is subsequently cleared by writing up->mcr to the MCR +register. That variable is always zero, so the RTS bit is still cleared +(incorrectly so if RTS is active-high). + +(up->mcr is not, as one might think, a cache of the MCR register's +current value. Rather, it only caches a single bit of that register, +the AFE bit. And it only does so if the UART supports the AFE bit, +which OMAP does not. For details see serial8250_do_set_termios() and +serial8250_do_set_mctrl().) + +Finally at the end of omap8250_restore_regs(), the MCR register is +restored (and RTS deasserted) by a call to up->port.ops->set_mctrl() +(which equals serial8250_set_mctrl()) and serial8250_em485_stop_tx(). + +So there's an RTS glitch between setting TCRTLR and calling +serial8250_em485_stop_tx(). Avoid by using a read-modify-write +when setting TCRTLR. + +While at it, drop a redundant initialization of up->mcr. As explained +above, the variable isn't used by the driver and it is already +initialized to zero because it is part of the static struct +serial8250_ports[] declared in 8250_core.c. (Static structs are +initialized to zero per section 6.7.8 nr. 10 of the C99 standard.) + +Cc: Jan Kiszka +Cc: Su Bao Cheng +Tested-by: Matthias Schiffer +Signed-off-by: Lukas Wunner +Link: https://lore.kernel.org/r/6554b0241a2c7fd50f32576fdbafed96709e11e8.1664278942.git.lukas@wunner.de +Signed-off-by: Greg Kroah-Hartman +Signed-off-by: Sasha Levin +--- + drivers/tty/serial/8250/8250_omap.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c +index 3d6a159c87f4..928b35b87dcf 100644 +--- a/drivers/tty/serial/8250/8250_omap.c ++++ b/drivers/tty/serial/8250/8250_omap.c +@@ -251,6 +251,7 @@ static void omap8250_restore_regs(struct uart_8250_port *up) + { + struct omap8250_priv *priv = up->port.private_data; + struct uart_8250_dma *dma = up->dma; ++ u8 mcr = serial8250_in_MCR(up); + + if (dma && dma->tx_running) { + /* +@@ -267,7 +268,7 @@ static void omap8250_restore_regs(struct uart_8250_port *up) + serial_out(up, UART_EFR, UART_EFR_ECB); + + serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A); +- serial8250_out_MCR(up, UART_MCR_TCRTLR); ++ serial8250_out_MCR(up, mcr | UART_MCR_TCRTLR); + serial_out(up, UART_FCR, up->fcr); + + omap8250_update_scr(up, priv); +@@ -283,7 +284,8 @@ static void omap8250_restore_regs(struct uart_8250_port *up) + serial_out(up, UART_LCR, 0); + + /* drop TCR + TLR access, we setup XON/XOFF later */ +- serial8250_out_MCR(up, up->mcr); ++ serial8250_out_MCR(up, mcr); ++ + serial_out(up, UART_IER, up->ier); + + serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); +@@ -594,7 +596,6 @@ static int omap_8250_startup(struct uart_port *port) + + pm_runtime_get_sync(port->dev); + +- up->mcr = 0; + serial_out(up, UART_FCR, UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT); + + serial_out(up, UART_LCR, UART_LCR_WLEN8); +-- +2.35.1 + diff --git a/queue-5.4/series b/queue-5.4/series index 935c29a117e..c626670e231 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -62,3 +62,13 @@ firmware-google-release-devices-before-unregistering.patch firmware-coreboot-register-bus-in-module-init.patch nilfs2-fix-nilfs_sufile_mark_dirty-not-set-segment-usage-as-dirty.patch gcov-clang-fix-the-buffer-overflow-issue.patch +input-synaptics-switch-touchpad-on-hp-laptop-15-da30.patch +asoc-intel-bytcht_es8316-add-quirk-for-the-nanote-um.patch +serial-8250-8250_omap-avoid-rs485-rts-glitch-on-set_.patch +xen-platform-pci-add-missing-free_irq-in-error-path.patch +platform-x86-asus-wmi-add-missing-pci_dev_put-in-asu.patch +platform-x86-acer-wmi-enable-sw_tablet_mode-on-switc.patch +platform-x86-hp-wmi-ignore-smart-experience-app-even.patch +tcp-configurable-source-port-perturb-table-size.patch +net-usb-qmi_wwan-add-telit-0x103a-composition.patch +dm-integrity-flush-the-journal-on-suspend.patch diff --git a/queue-5.4/tcp-configurable-source-port-perturb-table-size.patch b/queue-5.4/tcp-configurable-source-port-perturb-table-size.patch new file mode 100644 index 00000000000..4297ced3292 --- /dev/null +++ b/queue-5.4/tcp-configurable-source-port-perturb-table-size.patch @@ -0,0 +1,78 @@ +From 32f5bd98b27133eb0ae4892ef681d77bc40fa451 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 14 Nov 2022 22:56:16 +0000 +Subject: tcp: configurable source port perturb table size + +From: Gleb Mazovetskiy + +[ Upstream commit aeac4ec8f46d610a10adbaeff5e2edf6a88ffc62 ] + +On embedded systems with little memory and no relevant +security concerns, it is beneficial to reduce the size +of the table. + +Reducing the size from 2^16 to 2^8 saves 255 KiB +of kernel RAM. + +Makes the table size configurable as an expert option. + +The size was previously increased from 2^8 to 2^16 +in commit 4c2c8f03a5ab ("tcp: increase source port perturb table to +2^16"). + +Signed-off-by: Gleb Mazovetskiy +Reviewed-by: Kuniyuki Iwashima +Signed-off-by: David S. Miller +Signed-off-by: Sasha Levin +--- + net/ipv4/Kconfig | 10 ++++++++++ + net/ipv4/inet_hashtables.c | 10 +++++----- + 2 files changed, 15 insertions(+), 5 deletions(-) + +diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig +index a926de2e42b5..f5af8c6b2f87 100644 +--- a/net/ipv4/Kconfig ++++ b/net/ipv4/Kconfig +@@ -389,6 +389,16 @@ config INET_IPCOMP + + If unsure, say Y. + ++config INET_TABLE_PERTURB_ORDER ++ int "INET: Source port perturbation table size (as power of 2)" if EXPERT ++ default 16 ++ help ++ Source port perturbation table size (as power of 2) for ++ RFC 6056 3.3.4. Algorithm 4: Double-Hash Port Selection Algorithm. ++ ++ The default is almost always what you want. ++ Only change this if you know what you are doing. ++ + config INET_XFRM_TUNNEL + tristate + select INET_TUNNEL +diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c +index bd3d9ad78e56..25334aa3da04 100644 +--- a/net/ipv4/inet_hashtables.c ++++ b/net/ipv4/inet_hashtables.c +@@ -675,13 +675,13 @@ EXPORT_SYMBOL_GPL(inet_unhash); + * Note that we use 32bit integers (vs RFC 'short integers') + * because 2^16 is not a multiple of num_ephemeral and this + * property might be used by clever attacker. ++ * + * RFC claims using TABLE_LENGTH=10 buckets gives an improvement, though +- * attacks were since demonstrated, thus we use 65536 instead to really +- * give more isolation and privacy, at the expense of 256kB of kernel +- * memory. ++ * attacks were since demonstrated, thus we use 65536 by default instead ++ * to really give more isolation and privacy, at the expense of 256kB ++ * of kernel memory. + */ +-#define INET_TABLE_PERTURB_SHIFT 16 +-#define INET_TABLE_PERTURB_SIZE (1 << INET_TABLE_PERTURB_SHIFT) ++#define INET_TABLE_PERTURB_SIZE (1 << CONFIG_INET_TABLE_PERTURB_ORDER) + static u32 *table_perturb; + + int __inet_hash_connect(struct inet_timewait_death_row *death_row, +-- +2.35.1 + diff --git a/queue-5.4/xen-platform-pci-add-missing-free_irq-in-error-path.patch b/queue-5.4/xen-platform-pci-add-missing-free_irq-in-error-path.patch new file mode 100644 index 00000000000..5ae7bbb24e9 --- /dev/null +++ b/queue-5.4/xen-platform-pci-add-missing-free_irq-in-error-path.patch @@ -0,0 +1,54 @@ +From f389ec393f966c8dd5866ce0f1d531f61e392d08 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 14 Nov 2022 19:21:24 +0800 +Subject: xen/platform-pci: add missing free_irq() in error path + +From: ruanjinjie + +[ Upstream commit c53717e1e3f0d0f9129b2e0dbc6dcc5e0a8132e9 ] + +free_irq() is missing in case of error in platform_pci_probe(), fix that. + +Signed-off-by: ruanjinjie +Reviewed-by: Oleksandr Tyshchenko +Link: https://lore.kernel.org/r/20221114112124.1965611-1-ruanjinjie@huawei.com +Signed-off-by: Juergen Gross +Signed-off-by: Sasha Levin +--- + drivers/xen/platform-pci.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/drivers/xen/platform-pci.c b/drivers/xen/platform-pci.c +index c45646450135..e1cb277a9e16 100644 +--- a/drivers/xen/platform-pci.c ++++ b/drivers/xen/platform-pci.c +@@ -137,7 +137,7 @@ static int platform_pci_probe(struct pci_dev *pdev, + if (ret) { + dev_warn(&pdev->dev, "Unable to set the evtchn callback " + "err=%d\n", ret); +- goto out; ++ goto irq_out; + } + } + +@@ -145,13 +145,16 @@ static int platform_pci_probe(struct pci_dev *pdev, + grant_frames = alloc_xen_mmio(PAGE_SIZE * max_nr_gframes); + ret = gnttab_setup_auto_xlat_frames(grant_frames); + if (ret) +- goto out; ++ goto irq_out; + ret = gnttab_init(); + if (ret) + goto grant_out; + return 0; + grant_out: + gnttab_free_auto_xlat_frames(); ++irq_out: ++ if (!xen_have_vector_callback) ++ free_irq(pdev->irq, pdev); + out: + pci_release_region(pdev, 0); + mem_out: +-- +2.35.1 + -- 2.47.3