This is a note to let you know that I've just added the patch titled
usb: dwc3: Fix lock-up on ID change during system suspend/resume
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-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 084a804e01205bcd74cd0849bc72cb5c88f8e648 Mon Sep 17 00:00:00 2001
From: Roger Quadros <rogerq(a)ti.com>
Date: Tue, 27 Feb 2018 12:41:41 +0200
Subject: usb: dwc3: Fix lock-up on ID change during system suspend/resume
To reproduce the lock up do the following
- connect otg host adapter and a USB device to the dual-role port
so that it is in host mode.
- suspend to mem.
- disconnect otg adapter.
- resume the system.
If we call dwc3_host_exit() before tasks are thawed
xhci_plat_remove() seems to lock up at the second usb_remove_hcd() call.
To work around this we queue the _dwc3_set_mode() work on
the system_freezable_wq.
Fixes: 41ce1456e1db ("usb: dwc3: core: make dwc3_set_mode() work properly")
Cc: <stable(a)vger.kernel.org> # v4.12+
Suggested-by: Manu Gautam <mgautam(a)codeaurora.org>
Signed-off-by: Roger Quadros <rogerq(a)ti.com>
Signed-off-by: Felipe Balbi <felipe.balbi(a)linux.intel.com>
---
drivers/usb/dwc3/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index f1d838a4acd6..e94bf91cc58a 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -175,7 +175,7 @@ void dwc3_set_mode(struct dwc3 *dwc, u32 mode)
dwc->desired_dr_role = mode;
spin_unlock_irqrestore(&dwc->lock, flags);
- queue_work(system_power_efficient_wq, &dwc->drd_work);
+ queue_work(system_freezable_wq, &dwc->drd_work);
}
u32 dwc3_core_fifo_space(struct dwc3_ep *dep, u8 type)
--
2.16.2
On Wed, Mar 07, 2018 at 09:29:10PM +0100, Nikola Ciprich wrote:
> Hi,
>
> > > > I'd like to report that when upgrading our cluster from 4.14.18 to
> > > > 4.14.24-rc1 (with live guests migration), almost none of guests survived..
> > > What's your hardware setup, intel with IBPB enabled microcode?
> > Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
> >
> > therefore I suppose no IBPB (at least meltdown checker reports so)
> >
> >
> > > Does guests hang right after live migration?
> > yes, just tried it.
> >
> >
> > >
> > > Are you able to reproduce the problem, does it work with latest upstream?
> > yup, so I'm able to reproduce quickly. I'll revert the cluster to 4.14.18 now,
> > but setup test system just afterwards, so and test the patch you've proposed.
> >
> > >
> > > Not sure it helps, but following patch is missing in 4.14.24
> > >
> > > commit 37b95951c58fdf08dc10afa9d02066ed9f176fb5 upstream.
> > >
> > > kvm_valid_sregs() should use X86_CR0_PG and X86_CR4_PAE to check bit
> > > status rather than X86_CR0_PG_BIT and X86_CR4_PAE_BIT. This patch is
> > > to fix it.
> > >
> > > Fixes: f29810335965a(KVM/x86: Check input paging mode when cs.l is set)
> > > Reported-by: Jeremi Piotrowski <jeremi.piotrowski(a)gmail.com>
> > > Cc: Paolo Bonzini <pbonzini(a)redhat.com>
> > > Cc: Radim Krčmář <rkrcmar(a)redhat.com>
> > > Signed-off-by: Tianyu Lan <Tianyu.Lan(a)microsoft.com>
> > > Signed-off-by: Radim Krčmář <rkrcmar(a)redhat.com>
> >
> > I'll test and report.
>
> so indeed, this one on top of 4.14.24-rc1 fixes the migration for me.
> Greg, could you queue this one up please?
As was already pointed out, this is already queued up to be in the next
release.
thanks,
greg k-h
This is a note to let you know that I've just added the patch titled
leds: do not overflow sysfs buffer in led_trigger_show
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
leds-do-not-overflow-sysfs-buffer-in-led_trigger_show.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 3b9b95363c45365d606ad4bbba16acca75fdf6d3 Mon Sep 17 00:00:00 2001
From: Nathan Sullivan <nathan.sullivan(a)ni.com>
Date: Mon, 15 Aug 2016 17:20:14 -0500
Subject: leds: do not overflow sysfs buffer in led_trigger_show
From: Nathan Sullivan <nathan.sullivan(a)ni.com>
commit 3b9b95363c45365d606ad4bbba16acca75fdf6d3 upstream.
Per the documentation, use scnprintf instead of sprintf to ensure there
is never more than PAGE_SIZE bytes of trigger names put into the
buffer.
Signed-off-by: Nathan Sullivan <nathan.sullivan(a)ni.com>
Signed-off-by: Zach Brown <zach.brown(a)ni.com>
Signed-off-by: Jacek Anaszewski <j.anaszewski(a)samsung.com>
Cc: Willy Tarreau <w(a)1wt.eu>
Cc: Vlastimil Babka <vbabka(a)suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/leds/led-triggers.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
--- a/drivers/leds/led-triggers.c
+++ b/drivers/leds/led-triggers.c
@@ -88,21 +88,23 @@ ssize_t led_trigger_show(struct device *
down_read(&led_cdev->trigger_lock);
if (!led_cdev->trigger)
- len += sprintf(buf+len, "[none] ");
+ len += scnprintf(buf+len, PAGE_SIZE - len, "[none] ");
else
- len += sprintf(buf+len, "none ");
+ len += scnprintf(buf+len, PAGE_SIZE - len, "none ");
list_for_each_entry(trig, &trigger_list, next_trig) {
if (led_cdev->trigger && !strcmp(led_cdev->trigger->name,
trig->name))
- len += sprintf(buf+len, "[%s] ", trig->name);
+ len += scnprintf(buf+len, PAGE_SIZE - len, "[%s] ",
+ trig->name);
else
- len += sprintf(buf+len, "%s ", trig->name);
+ len += scnprintf(buf+len, PAGE_SIZE - len, "%s ",
+ trig->name);
}
up_read(&led_cdev->trigger_lock);
up_read(&triggers_list_lock);
- len += sprintf(len+buf, "\n");
+ len += scnprintf(len+buf, PAGE_SIZE - len, "\n");
return len;
}
EXPORT_SYMBOL_GPL(led_trigger_show);
Patches currently in stable-queue which might be from nathan.sullivan(a)ni.com are
queue-4.4/leds-do-not-overflow-sysfs-buffer-in-led_trigger_show.patch
This is a note to let you know that I've just added the patch titled
leds: do not overflow sysfs buffer in led_trigger_show
to the 3.18-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
The filename of the patch is:
leds-do-not-overflow-sysfs-buffer-in-led_trigger_show.patch
and it can be found in the queue-3.18 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable(a)vger.kernel.org> know about it.
>From 3b9b95363c45365d606ad4bbba16acca75fdf6d3 Mon Sep 17 00:00:00 2001
From: Nathan Sullivan <nathan.sullivan(a)ni.com>
Date: Mon, 15 Aug 2016 17:20:14 -0500
Subject: leds: do not overflow sysfs buffer in led_trigger_show
From: Nathan Sullivan <nathan.sullivan(a)ni.com>
commit 3b9b95363c45365d606ad4bbba16acca75fdf6d3 upstream.
Per the documentation, use scnprintf instead of sprintf to ensure there
is never more than PAGE_SIZE bytes of trigger names put into the
buffer.
Signed-off-by: Nathan Sullivan <nathan.sullivan(a)ni.com>
Signed-off-by: Zach Brown <zach.brown(a)ni.com>
Signed-off-by: Jacek Anaszewski <j.anaszewski(a)samsung.com>
Cc: Willy Tarreau <w(a)1wt.eu>
Cc: Vlastimil Babka <vbabka(a)suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/leds/led-triggers.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
--- a/drivers/leds/led-triggers.c
+++ b/drivers/leds/led-triggers.c
@@ -78,21 +78,23 @@ ssize_t led_trigger_show(struct device *
down_read(&led_cdev->trigger_lock);
if (!led_cdev->trigger)
- len += sprintf(buf+len, "[none] ");
+ len += scnprintf(buf+len, PAGE_SIZE - len, "[none] ");
else
- len += sprintf(buf+len, "none ");
+ len += scnprintf(buf+len, PAGE_SIZE - len, "none ");
list_for_each_entry(trig, &trigger_list, next_trig) {
if (led_cdev->trigger && !strcmp(led_cdev->trigger->name,
trig->name))
- len += sprintf(buf+len, "[%s] ", trig->name);
+ len += scnprintf(buf+len, PAGE_SIZE - len, "[%s] ",
+ trig->name);
else
- len += sprintf(buf+len, "%s ", trig->name);
+ len += scnprintf(buf+len, PAGE_SIZE - len, "%s ",
+ trig->name);
}
up_read(&led_cdev->trigger_lock);
up_read(&triggers_list_lock);
- len += sprintf(len+buf, "\n");
+ len += scnprintf(len+buf, PAGE_SIZE - len, "\n");
return len;
}
EXPORT_SYMBOL_GPL(led_trigger_show);
Patches currently in stable-queue which might be from nathan.sullivan(a)ni.com are
queue-3.18/leds-do-not-overflow-sysfs-buffer-in-led_trigger_show.patch
On Thursday 08 March 2018 13:27:15 Pavel Machek wrote:
> Hi!
>
> > Resent without non-upstream patches.
> >
> > This backport patchset fixed the spectre issue, it's original branch:
> > https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git/log/?h=kpti
> > A few dependency or fixingpatches are also picked up, if they are necessary
> > and no functional changes.
> >
> > No bug found from kernelci.org and lkft testing. It also could be gotten from:
> >
> > git://git.linaro.org/kernel/linux-linaro-stable.git v4.9-spectre-upstream-only
> >
> > Comments are appreciated!
>
> Not entirely related to this patched, but... I have few older ARM
> boards here, and Nokia N9000 I really care about.
>
> AFAICT Meltdown is arm64 only?
IIRC ARMv7 is not affected by meltdown.
> Spectre affects the older boards, too, right? Was there any work done
> on that? cpuinfo says "ARMv7" for N900.
I remember that I saw some spectre patches for ARMv7 on LKML.
In general for ARMv7 it is problematic as mitigation needs to change IBE
bit which is not possible on OMAP HS devices. But for Nokia N900 there
is special code which do it via smc instruction (function
rx51_secure_update_aux_cr(), see also nokia_n900_legacy_init()).
--
Pali Rohár
pali.rohar(a)gmail.com
From: Jack Wang <jinpu.wang(a)profitbricks.com>
Hi Greg,
I noticed 2 fixes for kvm are missing in your queue-4.14, both are bugfix,
can be cherry pick cleanly.
The patch from Tianyu should close bug below, also included in 3.16
https://bugzilla.kernel.org/show_bug.cgi?id=198991
Eric Biggers (1):
KVM/x86: remove WARN_ON() for when vm_munmap() fails
Tianyu Lan (1):
KVM/x86: Fix wrong macro references of X86_CR0_PG_BIT and
X86_CR4_PAE_BIT in kvm_valid_sregs()
arch/x86/kvm/x86.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
--
2.7.4