This is the start of the stable review cycle for the 5.2.2 release.
There are 21 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 Sat 20 Jul 2019 02:59:27 AM UTC.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.2.2-rc1.…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.2.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 5.2.2-rc1
Jiri Slaby <jslaby(a)suse.cz>
x86/entry/32: Fix ENDPROC of common_spurious
Haren Myneni <haren(a)linux.vnet.ibm.com>
crypto/NX: Set receive window credits to max number of CRBs in RxFIFO
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - fix hash on SEC1.
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - move struct talitos_edesc into talitos.h
Julian Wiedmann <jwi(a)linux.ibm.com>
s390/qdio: don't touch the dsci in tiqdio_add_input_queues()
Julian Wiedmann <jwi(a)linux.ibm.com>
s390/qdio: (re-)initialize tiqdio list entries
Heiko Carstens <heiko.carstens(a)de.ibm.com>
s390: fix stfle zero padding
Philipp Rudo <prudo(a)linux.ibm.com>
s390/ipl: Fix detection of has_secure attribute
Arnd Bergmann <arnd(a)arndb.de>
ARC: hide unused function unw_hdr_alloc
Thomas Gleixner <tglx(a)linutronix.de>
x86/irq: Seperate unused system vectors from spurious entry again
Thomas Gleixner <tglx(a)linutronix.de>
x86/irq: Handle spurious interrupt after shutdown gracefully
Thomas Gleixner <tglx(a)linutronix.de>
x86/ioapic: Implement irq_get_irqchip_state() callback
Thomas Gleixner <tglx(a)linutronix.de>
genirq: Add optional hardware synchronization for shutdown
Thomas Gleixner <tglx(a)linutronix.de>
genirq: Fix misleading synchronize_irq() documentation
Thomas Gleixner <tglx(a)linutronix.de>
genirq: Delay deactivation in free_irq()
Sven Van Asbroeck <thesven73(a)gmail.com>
firmware: improve LSM/IMA security behaviour
James Morse <james.morse(a)arm.com>
drivers: base: cacheinfo: Ensure cpu hotplug work is done before Intel RDT
Masahiro Yamada <yamada.masahiro(a)socionext.com>
nilfs2: do not use unexported cpu_to_le32()/le32_to_cpu() in uapi header
Cole Rogers <colerogers(a)disroot.org>
Input: synaptics - enable SMBUS on T480 thinkpad trackpad
Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
e1000e: start network tx queue only when link is up
Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Revert "e1000e: fix cyclic resets at link up with active tx"
-------------
Diffstat:
Makefile | 4 +-
arch/arc/kernel/unwind.c | 9 ++-
arch/s390/include/asm/facility.h | 21 ++++---
arch/s390/include/asm/sclp.h | 1 -
arch/s390/kernel/ipl.c | 7 +--
arch/x86/entry/entry_32.S | 24 ++++++++
arch/x86/entry/entry_64.S | 30 +++++++--
arch/x86/include/asm/hw_irq.h | 5 +-
arch/x86/kernel/apic/apic.c | 33 ++++++----
arch/x86/kernel/apic/io_apic.c | 46 ++++++++++++++
arch/x86/kernel/apic/vector.c | 4 +-
arch/x86/kernel/idt.c | 3 +-
arch/x86/kernel/irq.c | 2 +-
drivers/base/cacheinfo.c | 3 +-
drivers/base/firmware_loader/fallback.c | 2 +-
drivers/crypto/nx/nx-842-powernv.c | 8 ++-
drivers/crypto/talitos.c | 99 +++++++++++++-----------------
drivers/crypto/talitos.h | 30 +++++++++
drivers/input/mouse/synaptics.c | 1 +
drivers/net/ethernet/intel/e1000e/netdev.c | 21 ++++---
drivers/s390/char/sclp_early.c | 1 -
drivers/s390/cio/qdio_setup.c | 2 +
drivers/s390/cio/qdio_thinint.c | 5 +-
include/linux/cpuhotplug.h | 1 +
include/uapi/linux/nilfs2_ondisk.h | 24 ++++----
kernel/irq/autoprobe.c | 6 +-
kernel/irq/chip.c | 6 ++
kernel/irq/cpuhotplug.c | 2 +-
kernel/irq/internals.h | 5 ++
kernel/irq/manage.c | 90 ++++++++++++++++++++-------
30 files changed, 342 insertions(+), 153 deletions(-)
Hi,
When one request is dispatched to LLD via dm-rq, if the result is
BLK_STS_*RESOURCE, dm-rq will free the request. However, LLD may allocate
private stuff for this request, so this way will cause memory leak.
Add .cleanup_rq() callback and implement it in SCSI for fixing the issue.
And SCSI is the only driver which allocates private stuff in .queue_rq()
path.
Another use case of this callback is to free the request and re-submit
bios during cpu hotplug when the hctx is dead, see the following link:
https://lore.kernel.org/linux-block/f122e8f2-5ede-2d83-9ca0-bc713ce66d01@hu…
Ming Lei (2):
blk-mq: add callback of .cleanup_rq
scsi: implement .cleanup_rq callback
drivers/md/dm-rq.c | 1 +
drivers/scsi/scsi_lib.c | 15 +++++++++++++++
include/linux/blk-mq.h | 13 +++++++++++++
3 files changed, 29 insertions(+)
Cc: Ewan D. Milne <emilne(a)redhat.com>
Cc: Bart Van Assche <bvanassche(a)acm.org>
Cc: Hannes Reinecke <hare(a)suse.com>
Cc: Christoph Hellwig <hch(a)lst.de>
Cc: Mike Snitzer <snitzer(a)redhat.com>
Cc: dm-devel(a)redhat.com
Cc: <stable(a)vger.kernel.org>
Fixes: 396eaf21ee17 ("blk-mq: improve DM's blk-mq IO merging via blk_insert_cloned_request feedback")
--
2.20.1
VAG power control is improved to fit the manual [1]. This patchset fixes as
minimum one bug: if customer muxes Headphone to Line-In right after boot,
the VAG power remains off that leads to poor sound quality from line-in.
I.e. after boot:
- Connect sound source to Line-In jack;
- Connect headphone to HP jack;
- Run following commands:
$ amixer set 'Headphone' 80%
$ amixer set 'Headphone Mux' LINE_IN
Also this series includes fixes of non-important bugs in sgtl5000 codec
driver.
[1] https://www.nxp.com/docs/en/data-sheet/SGTL5000.pdf
Changes in v6:
- Code optimization
Changes in v5:
- Add explicit stable tag
- Improve commit message
Changes in v4:
- CC the patch to kernel-stable
- Code optimization, simplify function signature
(thanks to Cezary Rojewski <cezary.rojewski(a)intel.com> for an idea)
- Add a Fixes tag
Changes in v3:
- Add the reference to NXP SGTL5000 data sheet to commit message
- Fix multi-line comment format
Changes in v2:
- Fix patch formatting
Oleksandr Suvorov (6):
ASoC: Define a set of DAPM pre/post-up events
ASoC: sgtl5000: Improve VAG power and mute control
ASoC: sgtl5000: Fix definition of VAG Ramp Control
ASoC: sgtl5000: add ADC mute control
ASoC: sgtl5000: Fix of unmute outputs on probe
ASoC: sgtl5000: Fix charge pump source assignment
include/sound/soc-dapm.h | 2 +
sound/soc/codecs/sgtl5000.c | 250 ++++++++++++++++++++++++++++++------
sound/soc/codecs/sgtl5000.h | 2 +-
3 files changed, 213 insertions(+), 41 deletions(-)
--
2.20.1
On 7/19/2019 3:45 AM, Sasha Levin wrote:
> Hi,
>
> [This is an automated email]
>
> This commit has been processed because it contains a "Fixes:" tag,
> fixing commit: 67c2315def06 crypto: caam - add Queue Interface (QI) backend support.
>
> The bot has tested the following trees: v5.2.1, v5.1.18, v4.19.59, v4.14.133.
>
> v5.2.1: Build OK!
> v5.1.18: Build OK!
> v4.19.59: Failed to apply! Possible dependencies:
> 94cebd9da42c ("crypto: caam - add Queue Interface v2 error codes")
>
> v4.14.133: Failed to apply! Possible dependencies:
> 94cebd9da42c ("crypto: caam - add Queue Interface v2 error codes")
>
Indeed, the dependency is correct. Thanks!
>
> NOTE: The patch will not be queued to stable trees until it is upstream.
>
> How should we proceed with this patch?
>
In the next version we'll remove the # v4.12+ requirement and
we'll separately send backports once patch will be merged upstream.
Thanks,
Horia
In the function alps_is_cs19_trackpoint(), we check if the param[1] is
in the 0x20~0x2f range, but the code we wrote for this checking is not
correct:
(param[1] & 0x20) does not mean param[1] is in the range of 0x20~0x2f,
it also means the param[1] is in the range of 0x30~0x3f, 0x60~0x6f...
Now fix it with a new condition checking ((param[1] & 0xf0) == 0x20).
Fixes: 7e4935ccc323 ("Input: alps - don't handle ALPS cs19 trackpoint-only device")
Cc: stable(a)vger.kernel.org
Signed-off-by: Hui Wang <hui.wang(a)canonical.com>
---
drivers/input/mouse/alps.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index 62ffea00902a..34700eda0429 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -2876,7 +2876,7 @@ static bool alps_is_cs19_trackpoint(struct psmouse *psmouse)
* trackpoint-only devices have their variant_ids equal
* TP_VARIANT_ALPS and their firmware_ids are in 0x20~0x2f range.
*/
- return param[0] == TP_VARIANT_ALPS && (param[1] & 0x20);
+ return param[0] == TP_VARIANT_ALPS && ((param[1] & 0xf0) == 0x20);
}
static int alps_identify(struct psmouse *psmouse, struct alps_data *priv)
--
2.17.1
From: Fei Yang <fei.yang(a)intel.com>
If scatter-gather operation is allowed, a large USB request would be split
into multiple TRBs. These TRBs are chained up by setting DWC3_TRB_CTRL_CHN
bit except the last one which has DWC3_TRB_CTRL_IOC bit set instead.
Since only the last TRB has IOC set, dwc3_gadget_ep_reclaim_completed_trb()
would be called only once for the whole USB request, thus all the TRBs need
to be reclaimed within this single call. However that is not what the current
code does.
This patch addresses the issue by checking each TRB in function
dwc3_gadget_ep_reclaim_trb_sg() and reclaiming the chained ones right there.
Only the last TRB gets passed to dwc3_gadget_ep_reclaim_completed_trb(). This
would guarantee all TRBs are reclaimed and trb_dequeue/num_trbs are updated
properly.
Signed-off-by: Fei Yang <fei.yang(a)intel.com>
Cc: stable <stable(a)vger.kernel.org>
---
V2: Better solution is to reclaim chained TRBs in dwc3_gadget_ep_reclaim_trb_sg()
and leave the last TRB to the dwc3_gadget_ep_reclaim_completed_trb().
---
drivers/usb/dwc3/gadget.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 173f532..c0662c2 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2404,7 +2404,7 @@ static int dwc3_gadget_ep_reclaim_trb_sg(struct dwc3_ep *dep,
struct dwc3_request *req, const struct dwc3_event_depevt *event,
int status)
{
- struct dwc3_trb *trb = &dep->trb_pool[dep->trb_dequeue];
+ struct dwc3_trb *trb;
struct scatterlist *sg = req->sg;
struct scatterlist *s;
unsigned int pending = req->num_pending_sgs;
@@ -2419,7 +2419,15 @@ static int dwc3_gadget_ep_reclaim_trb_sg(struct dwc3_ep *dep,
req->sg = sg_next(s);
req->num_pending_sgs--;
+ if (!(trb->ctrl & DWC3_TRB_CTRL_IOC)) {
+ /* reclaim the TRB without calling
+ * dwc3_gadget_ep_reclaim_completed_trb */
+ dwc3_ep_inc_deq(dep);
+ req->num_trbs--;
+ continue;
+ }
+ /* Only the last TRB in the sg list would reach here */
ret = dwc3_gadget_ep_reclaim_completed_trb(dep, req,
trb, event, status, true);
if (ret)
--
2.7.4