Some systems are reporting the following log message during driver
unload or system shutdown:
ics_rtas_set_affinity: No online cpus in the mask
A prior commit introduced the writing of an empty affinity mask in calls
to irq_set_affinity_hint() when disabling interrupts or when there are
no remaining online cpus to service an eq interrupt. At least some ppc64
systems are checking whether affinity masks are empty or not.
Fix: Do not call irq_set_affinity_hint() with an empty cpu mask.
Fixes: dcaa21367938 ("scsi: lpfc: Change default IRQ model on AMD architectures")
Cc: <stable(a)vger.kernel.org> # v5.5+
Signed-off-by: Dick Kennedy <dick.kennedy(a)broadcom.com>
Signed-off-by: James Smart <james.smart(a)broadcom.com>
---
drivers/scsi/lpfc/lpfc_init.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 05ace6916b66..89c3ba0a0df9 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -11376,7 +11376,6 @@ lpfc_irq_clear_aff(struct lpfc_hba_eq_hdl *eqhdl)
{
cpumask_clear(&eqhdl->aff_mask);
irq_clear_status_flags(eqhdl->irq, IRQ_NO_BALANCING);
- irq_set_affinity_hint(eqhdl->irq, &eqhdl->aff_mask);
}
/**
--
2.26.2
Hi Greg/Sasha
The following 2 patches are backports of
46609ce22703: ("sched/uclamp: Protect uclamp fast path code with static key")
e65855a52b47: ("sched/uclamp: Fix a deadlock when enabling uclamp static key")
into 5.4.y stable tree. The conflict was trivial and due to:
1. uclamp_rq_util_with() was renamed from util_util_with()
2. 2 local variables were converted to unsigned long from unsigned int.
I did do compile test on aarch64 and x86_64 and both looked fine. Beside I ran
a quick and short mmtest to verify the functionality and got the following
results which is inline with what's expected.
5.4.y 5.4.y-static-keys
Hmean send-64 188.46 ( 0.00%) 189.95 * 0.79%*
Hmean send-128 375.65 ( 0.00%) 379.75 * 1.09%*
7.32% -0.33% [kernel.kallsyms] [k] try_to_wake_up
0.58% -0.55% [kernel.kallsyms] [k] deactivate_task
0.50% -0.45% [kernel.kallsyms] [k] activate_task
That said, it's Friday afternoon and I am off next week. If I did something
stupid and didn't find me, please accept my apologies in advance and will fix
it as soon as I am back online.
Thanks
--
Qais Yousef
Qais Yousef (2):
sched/uclamp: Protect uclamp fast path code with static key
sched/uclamp: Fix a deadlock when enabling uclamp static key
kernel/sched/core.c | 81 +++++++++++++++++++++++++++++++-
kernel/sched/cpufreq_schedutil.c | 2 +-
kernel/sched/sched.h | 47 +++++++++++++++++-
3 files changed, 126 insertions(+), 4 deletions(-)
--
2.17.1
Hi,
Please can commit a1769bb68a850508a492e3674ab1e5e479b11254 be back
merged to the 4.4, 4.9, 4.14, 4.19 and 5.4 LTS kernels to resolve a
PCIe hang with Wave 2-generation 802.11ac QCA chips?
commit a1769bb68a850508a492e3674ab1e5e479b11254
author Zhi Chen <zhichen(a)codeaurora.org>
date 2020-01-14 12:35:21 +0800
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
The issue resolved is that a value of 0 has a different meaning and
instruction depending on the specific chip. Wave 1 and Wave 2 QCA
802.11ac chips use this differently.
This meant that the original commit introduced a regression for the
Wave 2-generation 802.11ac QCA chips when seeking to resolve a
firmware crash issue affecting some Wave 1-generation 802.11ac QCA
chips.
This subsequently has only been partially reverted via this commit,
specifically for the 10_4 target only via TARGET_10_4_DMA_BURST_SIZE 1
The original commit that caused this regression from back in 2015 is
76d164f582150fd0259ec0fcbc485470bcd8033e
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
With thanks,
Nick
commit 535e4fc623fab2e09a0653fc3a3e17f382ad0251 upstream.
The original upstream commit applies only to 5.7 and 5.8
stable trees. This is backport to 4.4, 4.9, 4.14, 4.19
and 5.4 trees.
The node distance is hardcoded to 0, which causes a trouble
for some user-level applications. In particular, "libnuma"
expects the distance of a node to itself as LOCAL_DISTANCE.
This update removes the offending node distance override.
Cc: Heiko Carstens <hca(a)linux.ibm.com>
Fixes: 3a368f742da1 ("s390/numa: add core infrastructure")
Signed-off-by: Alexander Gordeev <agordeev(a)linux.ibm.com>
---
arch/s390/numa/numa.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/s390/numa/numa.c b/arch/s390/numa/numa.c
index d2910fa..8f95db6 100644
--- a/arch/s390/numa/numa.c
+++ b/arch/s390/numa/numa.c
@@ -51,7 +51,7 @@ void numa_update_cpu_topology(void)
int __node_distance(int a, int b)
{
- return mode->distance ? mode->distance(a, b) : 0;
+ return mode->distance ? mode->distance(a, b) : LOCAL_DISTANCE;
}
EXPORT_SYMBOL(__node_distance);
--
1.8.3.1
Hi,
Can you cherry-pick this one:
commit e697deed834de15d2322d0619d51893022c90ea2
Author: Jiufei Xue <jiufei.xue(a)linux.alibaba.com>
Date: Wed Jun 10 13:41:59 2020 +0800
io_uring: check file O_NONBLOCK state for accept
into 5.7-stable? Thanks!
--
Jens Axboe
This is an automatic generated email to let you know that the following patch were queued:
Subject: media: rc: do not access device via sysfs after rc_unregister_device()
Author: Sean Young <sean(a)mess.org>
Date: Sat Aug 8 13:38:02 2020 +0200
Device drivers do not expect to have change_protocol or wakeup
re-programming to be accesed after rc_unregister_device(). This can
cause the device driver to access deallocated resources.
Cc: <stable(a)vger.kernel.org> # 4.16+
Signed-off-by: Sean Young <sean(a)mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei(a)kernel.org>
drivers/media/rc/rc-main.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
---
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
index e1cda80a4b25..dee8a9f3d80a 100644
--- a/drivers/media/rc/rc-main.c
+++ b/drivers/media/rc/rc-main.c
@@ -1292,6 +1292,10 @@ static ssize_t store_protocols(struct device *device,
}
mutex_lock(&dev->lock);
+ if (!dev->registered) {
+ mutex_unlock(&dev->lock);
+ return -ENODEV;
+ }
old_protocols = *current_protocols;
new_protocols = old_protocols;
@@ -1430,6 +1434,10 @@ static ssize_t store_filter(struct device *device,
return -EINVAL;
mutex_lock(&dev->lock);
+ if (!dev->registered) {
+ mutex_unlock(&dev->lock);
+ return -ENODEV;
+ }
new_filter = *filter;
if (fattr->mask)
@@ -1544,6 +1552,10 @@ static ssize_t store_wakeup_protocols(struct device *device,
int i;
mutex_lock(&dev->lock);
+ if (!dev->registered) {
+ mutex_unlock(&dev->lock);
+ return -ENODEV;
+ }
allowed = dev->allowed_wakeup_protocols;
This is an automatic generated email to let you know that the following patch were queued:
Subject: media: rc: do not access device via sysfs after rc_unregister_device()
Author: Sean Young <sean(a)mess.org>
Date: Sat Aug 8 13:38:02 2020 +0200
Device drivers do not expect to have change_protocol or wakeup
re-programming to be accesed after rc_unregister_device(). This can
cause the device driver to access deallocated resources.
Cc: <stable(a)vger.kernel.org> # 4.16+
Signed-off-by: Sean Young <sean(a)mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei(a)kernel.org>
drivers/media/rc/rc-main.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
---
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
index e1cda80a4b25..dee8a9f3d80a 100644
--- a/drivers/media/rc/rc-main.c
+++ b/drivers/media/rc/rc-main.c
@@ -1292,6 +1292,10 @@ static ssize_t store_protocols(struct device *device,
}
mutex_lock(&dev->lock);
+ if (!dev->registered) {
+ mutex_unlock(&dev->lock);
+ return -ENODEV;
+ }
old_protocols = *current_protocols;
new_protocols = old_protocols;
@@ -1430,6 +1434,10 @@ static ssize_t store_filter(struct device *device,
return -EINVAL;
mutex_lock(&dev->lock);
+ if (!dev->registered) {
+ mutex_unlock(&dev->lock);
+ return -ENODEV;
+ }
new_filter = *filter;
if (fattr->mask)
@@ -1544,6 +1552,10 @@ static ssize_t store_wakeup_protocols(struct device *device,
int i;
mutex_lock(&dev->lock);
+ if (!dev->registered) {
+ mutex_unlock(&dev->lock);
+ return -ENODEV;
+ }
allowed = dev->allowed_wakeup_protocols;
This is a note to let you know that I've just added the patch titled
kobject: Restore old behaviour of kobject_del(NULL)
to my driver-core git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git
in the driver-core-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 40b8b826a6998639dd1c26f0e127f18371e1058d Mon Sep 17 00:00:00 2001
From: Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
Date: Mon, 3 Aug 2020 11:27:06 +0300
Subject: kobject: Restore old behaviour of kobject_del(NULL)
The commit 079ad2fb4bf9 ("kobject: Avoid premature parent object freeing in
kobject_cleanup()") inadvertently dropped a possibility to call kobject_del()
with NULL pointer. Restore the old behaviour.
Fixes: 079ad2fb4bf9 ("kobject: Avoid premature parent object freeing in kobject_cleanup()")
Cc: stable <stable(a)vger.kernel.org>
Reported-by: Qu Wenruo <quwenruo.btrfs(a)gmx.com>
Cc: Heikki Krogerus <heikki.krogerus(a)linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
Reviewed-by: Qu Wenruo <wqu(a)suse.com>
Link: https://lore.kernel.org/r/20200803082706.65347-1-andriy.shevchenko@linux.in…
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
lib/kobject.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lib/kobject.c b/lib/kobject.c
index 3afb939f2a1c..9dce68c378e6 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -637,8 +637,12 @@ static void __kobject_del(struct kobject *kobj)
*/
void kobject_del(struct kobject *kobj)
{
- struct kobject *parent = kobj->parent;
+ struct kobject *parent;
+
+ if (!kobj)
+ return;
+ parent = kobj->parent;
__kobject_del(kobj);
kobject_put(parent);
}
--
2.28.0