5.14.9-rc1 review
Subsystems (7)
Greg Kroah-Hartman
maintainerPATCH 153/162 thermal/drivers/int340x: Do not set a wrong tcc offset on resume
In reply to Greg Kroah-HartmanFrom: Antoine Tenart <[email protected]>
commit 8b4bd256674720709a9d858a219fcac6f2f253b5 upstream.
After upgrading to Linux 5.13.3 I noticed my laptop would shutdown due to overheat (when it should not). It turned out this was due to commit fe6a6de6692e ("thermal/drivers/int340x/processor_thermal: Fix tcc setting").
What happens is this drivers uses a global variable to keep track of the tcc offset (tcc_offset_save) and uses it on resume. The issue is this variable is initialized to 0, but is only set in tcc_offset_degree_celsius_store, i.e. when the tcc offset is explicitly set by userspace. If that does not happen, the resume path will set the offset to 0 (in my case the h/w default being 3, the offset would become too low after a suspend/resume cycle).
The issue did not arise before commit fe6a6de6692e, as the function setting the offset would return if the offset was 0. This is no longer the case (rightfully).
Fix this by not applying the offset if it wasn't saved before, reverting back to the old logic. A better approach will come later, but this will be easier to apply to stable kernels.
The logic to restore the offset after a resume was there long before commit fe6a6de6692e, but as a value of 0 was considered invalid I'm referencing the commit that made the issue possible in the Fixes tag instead.
--- drivers/thermal/intel/int340x_thermal/processor_thermal_device.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
drivers/thermal/intel/int340x_thermal/processor_thermal_device.c +3 -2
@@ -107,7 +107,7 @@ static int tcc_offset_update(unsigned inreturn 0 ; } -static unsigned int tcc_offset_save; +static int tcc_offset_save =-1 ; static ssize_t tcc_offset_degree_celsius_store(struct device *dev, struct device_attribute *attr, const char *buf,
@@ -352,7 +352,8 @@ int proc_thermal_resume(struct device *d proc_dev =dev_get_drvdata (dev);proc_thermal_read_ppcc (proc_dev); -tcc_offset_update (tcc_offset_save); +if (tcc_offset_save >=0 ) +tcc_offset_update (tcc_offset_save);return 0 ; }
Greg Kroah-Hartman
maintainerPATCH 154/162 irqchip/armada-370-xp: Fix ack/eoi breakage
In reply to Greg Kroah-HartmanFrom: Marc Zyngier <[email protected]>
commit 2a7313dc81e88adc7bb09d0f056985fa8afc2b89 upstream.
When converting the driver to using handle_percpu_devid_irq, we forgot to repaint the irq_eoi() callback into irq_ack(), as handle_percpu_devid_fasteoi_ipi() was actually using EOI really early in the handling. Yes this was a stupid idea.
Fix this by using the HW ack method as irq_ack().
--- drivers/irqchip/irq-armada-370-xp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/irqchip/irq-armada-370-xp.c +2 -2
@@ -359,16 +359,16 @@ static void armada_370_xp_ipi_send_mask( ARMADA_370_XP_SW_TRIG_INT_OFFS); } -static void armada_370_xp_ipi_eoi (struct irq_data *d) +static void armada_370_xp_ipi_ack (struct irq_data *d) {writel (~BIT (d->hwirq), per_cpu_int_base +ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS ); }static struct irq_chip ipi_irqchip = { .name ="IPI" , + .irq_ack = armada_370_xp_ipi_ack, .irq_mask = armada_370_xp_ipi_mask, .irq_unmask = armada_370_xp_ipi_unmask, - .irq_eoi = armada_370_xp_ipi_eoi, .ipi_send_mask = armada_370_xp_ipi_send_mask, };
Greg Kroah-Hartman
maintainerPATCH 155/162 arm64: add MTE supported check to thread switching and syscall entry/exit
In reply to Greg Kroah-HartmanFrom: Peter Collingbourne <[email protected]>
commit 8c8a3b5bd960cd88f7655b5251dc28741e11f139 upstream.
This lets us avoid doing unnecessary work on hardware that does not support MTE, and will allow us to freely use MTE instructions in the code called by mte_thread_switch().
Since this would mean that we do a redundant check in mte_check_tfsr_el1(), remove it and add two checks now required in its callers. This also avoids an unnecessary DSB+ISB sequence on the syscall exit path for hardware not supporting MTE.
--- arch/arm64/include/asm/mte.h | 6 ++++++ arch/arm64/kernel/mte.c | 10 ++++------ 2 files changed, 10 insertions(+), 6 deletions(-)
arch/arm64/include/asm/mte.h +6 -0
@@ -105,11 +105,17 @@ void mte_check_tfsr_el1(void);static inline void mte_check_tfsr_entry (void ) { +if (!system_supports_mte ()) +return ; +mte_check_tfsr_el1 (); }static inline void mte_check_tfsr_exit (void ) { +if (!system_supports_mte ()) +return ; +/* * The asynchronous faults are sync'ed automatically with * TFSR_EL1 on kernel entry but for exit an explicit dsb()
arch/arm64/kernel/mte.c +4 -6
@@ -173,12 +173,7 @@ bool mte_report_once(void)#ifdef CONFIG_KASAN_HW_TAGS void mte_check_tfsr_el1 (void ) { -u64 tfsr_el1; - -if (!system_supports_mte ()) -return ; - - tfsr_el1 =read_sysreg_s (SYS_TFSR_EL1 ); +u64 tfsr_el1 =read_sysreg_s (SYS_TFSR_EL1 );if (unlikely (tfsr_el1 &SYS_TFSR_EL1_TF1 )) {/*
@@ -221,6 +216,9 @@ void mte_thread_init_user(void)void mte_thread_switch (struct task_struct *next) { +if (!system_supports_mte ()) +return ; +/* * Check if an async tag exception occurred at EL1. *
Greg Kroah-Hartman
maintainerPATCH 156/162 USB: serial: cp210x: fix dropped characters with CP2102
In reply to Greg Kroah-HartmanFrom: Johan Hovold <[email protected]>
commit c32dfec6c1c36bbbcd5d33e949d99aeb215877ec upstream.
Some CP2102 do not support event-insertion mode but return no error when attempting to enable it.
This means that any event escape characters in the input stream will not be escaped by the device and consequently regular data may be interpreted as escape sequences and be removed from the stream by the driver.
The reporter's device has batch number DCL00X etched into it and as discovered by the SHA2017 Badge team, counterfeit devices with that marking can be detected by sending malformed vendor requests. [1][2]
Tests confirm that the possibly counterfeit CP2102 returns a single byte in response to a malformed two-byte part-number request, while an original CP2102 returns two bytes. Assume that every CP2102 that behaves this way also does not support event-insertion mode (e.g. cannot report parity errors).
[1] https://mobile.twitter.com/sha2017badge/status/1167902087289532418
[2] https://hackaday.com/2017/08/14/hands-on-with-the-shacamp-2017-badge/#comment-3903376
--- drivers/usb/serial/cp210x.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+)
drivers/usb/serial/cp210x.c +35 -0
@@ -259,6 +259,7 @@ struct cp210x_serial_private {speed_t max_speed;bool use_actual_rate;bool no_flow_control; +bool no_event_mode; };enum cp210x_event_state {
@@ -1113,12 +1114,16 @@ static void cp210x_change_speed(struct tstatic void cp210x_enable_event_mode (struct usb_serial_port *port) { +struct cp210x_serial_private *priv =usb_get_serial_data (port->serial);struct cp210x_port_private *port_priv =usb_get_serial_port_data (port);int ret;if (port_priv->event_mode)return ; +if (priv->no_event_mode) +return ; + port_priv->event_state =ES_DATA ; port_priv->event_mode = true;
@@ -2098,6 +2103,33 @@ static void cp210x_init_max_speed(struct priv->use_actual_rate = use_actual_rate; } +static void cp2102_determine_quirks (struct usb_serial *serial) +{ +struct cp210x_serial_private *priv =usb_get_serial_data (serial); +u8 *buf; +int ret; + + buf =kmalloc (2 ,GFP_KERNEL ); +if (!buf) +return ; +/* +* Some (possibly counterfeit) CP2102 do not support event-insertion +* mode and respond differently to malformed vendor requests. +* Specifically, they return one instead of two bytes when sent a +* two-byte part-number request. +*/ + ret =usb_control_msg (serial->dev,usb_rcvctrlpipe (serial->dev,0 ), +CP210X_VENDOR_SPECIFIC ,REQTYPE_DEVICE_TO_HOST , +CP210X_GET_PARTNUM ,0 , buf,2 ,USB_CTRL_GET_TIMEOUT ); +if (ret ==1 ) { +dev_dbg (&serial->interface->dev, +"device does not support event-insertion mode\n" ); + priv->no_event_mode = true; + } + +kfree (buf); +} +static int cp210x_get_fw_version (struct usb_serial *serial,u16 value) {struct cp210x_serial_private *priv =usb_get_serial_data (serial);
@@ -2123,6 +2155,9 @@ static void cp210x_determine_quirks(struint ret;switch (priv->partnum) { +case CP210X_PARTNUM_CP2102 : +cp2102_determine_quirks (serial); +break ;case CP210X_PARTNUM_CP2102N_QFN28 :case CP210X_PARTNUM_CP2102N_QFN24 :case CP210X_PARTNUM_CP2102N_QFN20 :
Greg Kroah-Hartman
maintainerPATCH 157/162 software node: balance refcount for managed software nodes
In reply to Greg Kroah-HartmanFrom: Laurentiu Tudor <[email protected]>
commit 5aeb05b27f81269a2bf2e15eab9fc0f9a400d3a8 upstream.
software_node_notify(), on KOBJ_REMOVE drops the refcount twice on managed software nodes, thus leading to underflow errors. Balance the refcount by bumping it in the device_create_managed_software_node() function.
The error [1] was encountered after adding a .shutdown() op to our fsl-mc-bus driver.
[1]
pc : refcount_warn_saturate+0xf8/0x150 lr : refcount_warn_saturate+0xf8/0x150
sp : ffff80001009b920
x29: ffff80001009b920 x28: ffff1a2420318000 x27: 0000000000000000
x26: ffffccac15e7a038 x25: 0000000000000008 x24: ffffccac168e0030
x23: ffff1a2428a82000 x22: 0000000000080000 x21: ffff1a24287b5000
x20: 0000000000000001 x19: ffff1a24261f4400 x18: ffffffffffffffff
x17: 6f72645f726f7272 x16: 0000000000000000 x15: ffff80009009b607
x14: 0000000000000000 x13: ffffccac16602670 x12: 0000000000000a17
x11: 000000000000035d x10: ffffccac16602670 x9 : ffffccac16602670 x8 : 00000000ffffefff x7 : ffffccac1665a670 x6 : ffffccac1665a670 x5 : 0000000000000000 x4 : 0000000000000000 x3 : 00000000ffffffff x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff1a2420318000
Call trace: refcount_warn_saturate+0xf8/0x150 kobject_put+0x10c/0x120 software_node_notify+0xd8/0x140 device_platform_notify+0x4c/0xb4 device_del+0x188/0x424 fsl_mc_device_remove+0x2c/0x4c rebofind sp.c__fsl_mc_device_remove+0x14/0x2c device_for_each_child+0x5c/0xac dprc_remove+0x9c/0xc0 fsl_mc_driver_remove+0x28/0x64 __device_release_driver+0x188/0x22c device_release_driver+0x30/0x50 bus_remove_device+0x128/0x134 device_del+0x16c/0x424 fsl_mc_bus_remove+0x8c/0x114 fsl_mc_bus_shutdown+0x14/0x20 platform_shutdown+0x28/0x40 device_shutdown+0x15c/0x330 __do_sys_reboot+0x218/0x2a0 __arm64_sys_reboot+0x28/0x34 invoke_syscall+0x48/0x114 el0_svc_common+0x40/0xdc do_el0_svc+0x2c/0x94 el0_svc+0x2c/0x54 el0t_64_sync_handler+0xa8/0x12c el0t_64_sync+0x198/0x19c ---[ end trace 32eb1c71c7d86821 ]---
--- drivers/base/swnode.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/base/swnode.c +3 -0
@@ -1113,6 +1113,9 @@ int device_create_managed_software_node(to_swnode (fwnode)->managed = true;set_secondary_fwnode (dev, fwnode); +if (device_is_registered (dev)) +software_node_notify (dev,KOBJ_ADD ); +return 0 ; }EXPORT_SYMBOL_GPL (device_create_managed_software_node);
Greg Kroah-Hartman
maintainerPATCH 158/162 xen/balloon: fix balloon kthread freezing
In reply to Greg Kroah-HartmanFrom: Juergen Gross <[email protected]>
commit 96f5bd03e1be606987644b71899ea56a8d05f825 upstream.
Commit 8480ed9c2bbd56 ("xen/balloon: use a kernel thread instead a workqueue") switched the Xen balloon driver to use a kernel thread. Unfortunately the patch omitted to call try_to_freeze() or to use wait_event_freezable_timeout(), causing a system suspend to fail.
--- drivers/xen/balloon.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/xen/balloon.c +2 -2
@@ -522,8 +522,8 @@ static int balloon_thread(void *unused) timeout =3600 *HZ ; credit =current_credit (); -wait_event_interruptible_timeout (balloon_thread_wq, -balloon_thread_cond (state, credit), timeout); +wait_event_freezable_timeout (balloon_thread_wq, +balloon_thread_cond (state, credit), timeout);if (kthread_should_stop ())return 0 ;
Greg Kroah-Hartman
maintainerPATCH 159/162 qnx4: work around gcc false positive warning bug
In reply to Greg Kroah-HartmanFrom: Linus Torvalds <[email protected]>
commit d5f6545934c47e97c0b48a645418e877b452a992 upstream.
In commit b7213ffa0e58 ("qnx4: avoid stringop-overread errors") I tried to teach gcc about how the directory entry structure can be two different things depending on a status flag. It made the code clearer, and it seemed to make gcc happy.
However, Arnd points to a gcc bug, where despite using two different members of a union, gcc then gets confused, and uses the size of one of the members to decide if a string overrun happens. And not necessarily the rigth one.
End result: with some configurations, gcc-11 will still complain about the source buffer size being overread:
fs/qnx4/dir.c: In function 'qnx4_readdir':
fs/qnx4/dir.c:76:32: error: 'strnlen' specified bound [16, 48] exceeds source size 1 [-Werror=stringop-overread]
76 | size = strnlen(name, size);
| ^~~~~~~~~~~~~~~~~~~
fs/qnx4/dir.c:26:22: note: source object declared here
26 | char de_name;
| ^~~~~~~because gcc will get confused about which union member entry is actually getting accessed, even when the source code is very clear about it. Gcc internally will have combined two "redundant" pointers (pointing to different union elements that are at the same offset), and takes the size checking from one or the other - not necessarily the right one.
This is clearly a gcc bug, but we can work around it fairly easily. The biggest thing here is the big honking comment about why we do what we do.
--- fs/qnx4/dir.c | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-)
fs/qnx4/dir.c +27 -9
@@ -20,12 +20,33 @@* depending on the status field in the last byte. The * first byte is where the name start either way, and a * zero means it's empty. +* +* Also, due to a bug in gcc, we don't want to use the +* real (differently sized) name arrays in the inode and +* link entries, but always the 'de_name[]' one in the +* fake struct entry. +* +* See +* +* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578#c6 +* +* for details, but basically gcc will take the size of the +* 'name' array from one of the used union entries randomly. +* +* This use of 'de_name[]' (48 bytes) avoids the false positive +* warnings that would happen if gcc decides to use 'inode.di_name' +* (16 bytes) even when the pointer and size were to come from +* 'link.dl_name' (48 bytes). +* +* In all cases the actual name pointer itself is the same, it's +* only the gcc internal 'what is the size of this field' logic +* that can get confused. */ union qnx4_directory_entry {struct { -char de_name; -char de_pad[62 ]; -char de_status; +const char de_name[48 ]; +u8 de_pad[15 ]; +u8 de_status; };struct qnx4_inode_entry inode;struct qnx4_link_info link;
@@ -53,29 +74,26 @@ static int qnx4_readdir(struct file *fil ix = (ctx->pos >>QNX4_DIR_ENTRY_SIZE_BITS ) %QNX4_INODES_PER_BLOCK ;for (; ix <QNX4_INODES_PER_BLOCK ; ix++, ctx->pos +=QNX4_DIR_ENTRY_SIZE ) {union qnx4_directory_entry *de; -const char *name; offset = ix *QNX4_DIR_ENTRY_SIZE ; de = (union qnx4_directory_entry *) (bh->b_data + offset); -if (!de->de_name) +if (!de->de_name[0 ])continue ;if (!(de->de_status & (QNX4_FILE_USED |QNX4_FILE_LINK )))continue ;if (!(de->de_status &QNX4_FILE_LINK )) { size =sizeof (de->inode.di_fname); - name = de->inode.di_fname; ino = blknum *QNX4_INODES_PER_BLOCK + ix -1 ; }else { size =sizeof (de->link.dl_fname); - name = de->link.dl_fname; ino = (le32_to_cpu (de->link.dl_inode_blk) -1 ) *QNX4_INODES_PER_BLOCK + de->link.dl_inode_ndx; } - size =strnlen (name, size); + size =strnlen (de->de_name, size);QNX4DEBUG ((KERN_INFO "qnx4_readdir:%.*s\n" , size, name)); -if (!dir_emit (ctx, name, size, ino,DT_UNKNOWN )) { +if (!dir_emit (ctx, de->de_name, size, ino,DT_UNKNOWN )) {brelse (bh);return 0 ; }
Greg Kroah-Hartman
maintainerPATCH 160/162 nvmet: fix a width vs precision bug in nvmet_subsys_attr_serial_show()
In reply to Greg Kroah-HartmanFrom: Dan Carpenter <[email protected]>
commit 0bd46e22c5ec3dbfb81b60de475151e3f6b411c2 upstream.
This was intended to limit the number of characters printed from "subsys->serial" to NVMET_SN_MAX_SIZE. But accidentally the width specifier was used instead of the precision specifier so it only affects the alignment and not the number of characters printed.
--- drivers/nvme/target/configfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/nvme/target/configfs.c +1 -1
@@ -1067,7 +1067,7 @@ static ssize_t nvmet_subsys_attr_serial_ {struct nvmet_subsys *subsys =to_subsys (item); -return snprintf (page,PAGE_SIZE ,"%*s\n" , +return snprintf (page,PAGE_SIZE ,"%.*s\n" ,NVMET_SN_MAX_SIZE , subsys->serial); }
Greg Kroah-Hartman
maintainerPATCH 161/162 usb: gadget: f_uac2: Add missing companion descriptor for feedback EP
In reply to Greg Kroah-HartmanFrom: Jack Pham <[email protected]>
commit 595091a1426a3b2625dad322f69fe569dc9d8943 upstream.
The f_uac2 function fails to enumerate when connected in SuperSpeed due to the feedback endpoint missing the companion descriptor. Add a new ss_epin_fback_desc_comp descriptor and append it behind the ss_epin_fback_desc both in the static definition of the ss_audio_desc structure as well as its dynamic construction in setup_headers().
--- drivers/usb/gadget/function/f_uac2.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-)
drivers/usb/gadget/function/f_uac2.c +15 -1
@@ -348,6 +348,14 @@ static struct usb_endpoint_descriptor ss .bInterval = 4, }; +static struct usb_ss_ep_comp_descriptor ss_epin_fback_desc_comp = { + .bLength =sizeof (ss_epin_fback_desc_comp), + .bDescriptorType =USB_DT_SS_ENDPOINT_COMP , + .bMaxBurst =0 , + .bmAttributes =0 , + .wBytesPerInterval =cpu_to_le16 (4 ), +}; +/* Audio Streaming IN Interface - Alt0 */ static struct usb_interface_descriptor std_as_in_if0_desc = {
@@ -527,6 +535,7 @@ static struct usb_descriptor_header *ss_ (struct usb_descriptor_header *)&ss_epout_desc_comp, (struct usb_descriptor_header *)&as_iso_out_desc, (struct usb_descriptor_header *)&ss_epin_fback_desc, + (struct usb_descriptor_header *)&ss_epin_fback_desc_comp, (struct usb_descriptor_header *)&std_as_in_if0_desc, (struct usb_descriptor_header *)&std_as_in_if1_desc,
@@ -604,6 +613,7 @@ static void setup_headers(struct f_uac2_ {struct usb_ss_ep_comp_descriptor *epout_desc_comp =NULL ;struct usb_ss_ep_comp_descriptor *epin_desc_comp =NULL ; +struct usb_ss_ep_comp_descriptor *epin_fback_desc_comp =NULL ;struct usb_endpoint_descriptor *epout_desc;struct usb_endpoint_descriptor *epin_desc;struct usb_endpoint_descriptor *epin_fback_desc;
@@ -626,6 +636,7 @@ static void setup_headers(struct f_uac2_ epout_desc_comp = &ss_epout_desc_comp; epin_desc_comp = &ss_epin_desc_comp; epin_fback_desc = &ss_epin_fback_desc; + epin_fback_desc_comp = &ss_epin_fback_desc_comp; } i =0 ;
@@ -654,8 +665,11 @@ static void setup_headers(struct f_uac2_ headers[i++] =USBDHDR (&as_iso_out_desc); -if (EPOUT_FBACK_IN_EN (opts)) +if (EPOUT_FBACK_IN_EN (opts)) { headers[i++] =USBDHDR (epin_fback_desc); +if (epin_fback_desc_comp) + headers[i++] =USBDHDR (epin_fback_desc_comp); + } }if (EPIN_EN (opts)) { headers[i++] =USBDHDR (&std_as_in_if0_desc);
Greg Kroah-Hartman
maintainerPATCH 162/162 usb: gadget: f_uac2: Populate SS descriptors wBytesPerInterval
In reply to Greg Kroah-HartmanFrom: Jack Pham <[email protected]>
commit f0e8a206a2a53a919e1709c654cb65d519f7befb upstream.
For Isochronous endpoints, the SS companion descriptor's wBytesPerInterval field is required to reserve bus time in order to transmit the required payload during the service interval. If left at 0, the UAC2 function is unable to transact data on its playback or capture endpoints in SuperSpeed mode.
Since f_uac2 currently does not support any bursting this value can be exactly equal to the calculated wMaxPacketSize.
Tested with Windows 10 as a host.
--- drivers/usb/gadget/function/f_uac2.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/usb/gadget/function/f_uac2.c +3 -0
@@ -951,6 +951,9 @@ afunc_bind(struct usb_configuration *cfg agdev->out_ep_maxpsize =max_t (u16, agdev->out_ep_maxpsize,le16_to_cpu (ss_epout_desc.wMaxPacketSize)); + ss_epin_desc_comp.wBytesPerInterval = ss_epin_desc.wMaxPacketSize; + ss_epout_desc_comp.wBytesPerInterval = ss_epout_desc.wMaxPacketSize; + hs_epout_desc.bEndpointAddress = fs_epout_desc.bEndpointAddress; hs_epin_fback_desc.bEndpointAddress = fs_epin_fback_desc.bEndpointAddress; hs_epin_desc.bEndpointAddress = fs_epin_desc.bEndpointAddress;
Quoted 10 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.14.9 release. There are 162 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Wed, 29 Sep 2021 17:02:05 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.14.9-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.14.y
and the diffstat can be found below.thanks,
greg k-h
Following commit caused the build failures on s390 on 5.10 and 5.14 branches.
Quoted 2 lines
Alexandra Winter <[email protected]>
s390/qeth: fix deadlock during failing recovery
drivers/s390/net/qeth_core_main.c: In function 'qeth_close_dev_handler':drivers/s390/net/qeth_core_main.c:83:9: error: too few arguments to function 'ccwgroup_set_offline'
83 | ccwgroup_set_offline(card->gdev);
| ^~~~~~~~~~~~~~~~~~~~
In file included from drivers/s390/net/qeth_core.h:44,
from drivers/s390/net/qeth_core_main.c:46:
arch/s390/include/asm/ccwgroup.h:61:5: note: declared here
61 | int ccwgroup_set_offline(struct ccwgroup_device *gdev, bool call_gdrv);
| ^~~~~~~~~~~~~~~~~~~~make[3]: *** [scripts/Makefile.build:280:drivers/s390/net/qeth_core_main.o] Error 1
--
Linaro LKFT
https://lkft.linaro.org
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.14.9 release. There are 162 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Wed, 29 Sep 2021 17:02:05 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.14.9-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.14.y
and the diffstat can be found below.thanks,
greg k-h
On ARCH_BRCMSTB using 32-bit and 64-bit ARM kernels:
Signature · 1 line
Florian
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.14.9 release. There are 162 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Wed, 29 Sep 2021 17:02:05 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 9 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.14.9-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.14.y
and the diffstat can be found below.thanks,
greg k-h
5.14.9-rc1 Successfully Compiled and booted on my Raspberry PI 4b (8g) (bcm2711)
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.14.9 release. There are 162 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Wed, 29 Sep 2021 17:02:05 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 9 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.14.9-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.14.y
and the diffstat can be found below.thanks,
greg k-h
Compiled and booted on my test system. No dmesg regressions.
thanks,
-- Shuah
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.14.9 release. There are 162 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Wed, 29 Sep 2021 17:02:05 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.14.9-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.14.y
and the diffstat can be found below.thanks,
greg k-h
All tests passing for Tegra ...
Test results for stable-v5.14:
10 builds: 10 pass, 0 fail
28 boots: 28 pass, 0 fail
114 tests: 114 pass, 0 failLinux version: 5.14.9-rc1-ga7a751350fb9
Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000,
tegra194-p2972-0000, tegra194-p3509-0000+p3668-0000,
tegra20-ventana, tegra210-p2371-2180,
tegra210-p3450-0000, tegra30-cardhu-a04Jon