2020-06-05 14:24:15

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 00/28] 4.19.127-rc1 review

This is the start of the stable review cycle for the 4.19.127 release.
There are 28 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 Sun, 07 Jun 2020 13:54:56 +0000.
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/v4.x/stable-review/patch-4.19.127-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
and the diffstat can be found below.

thanks,

greg k-h

-------------
Pseudo-Shortlog of commits:

Greg Kroah-Hartman <[email protected]>
Linux 4.19.127-rc1

Dinghao Liu <[email protected]>
net: smsc911x: Fix runtime PM imbalance on error

Jonathan McDowell <[email protected]>
net: ethernet: stmmac: Enable interface clocks on probe for IPQ806x

Valentin Longchamp <[email protected]>
net/ethernet/freescale: rework quiesce/activate for ucc_geth

Chaitanya Kulkarni <[email protected]>
null_blk: return error for invalid zone size

Gerald Schaefer <[email protected]>
s390/mm: fix set_huge_pte_at() for empty ptes

Jan Schmidt <[email protected]>
drm/edid: Add Oculus Rift S to non-desktop list

Jeremy Kerr <[email protected]>
net: bmac: Fix read of MAC address from ROM

Nathan Chancellor <[email protected]>
x86/mmiotrace: Use cpumask_available() for cpumask_var_t variables

Atsushi Nemoto <[email protected]>
i2c: altera: Fix race between xfer_msg and isr thread

Madhuparna Bhowmik <[email protected]>
evm: Fix RCU list related warnings

Vineet Gupta <[email protected]>
ARC: [plat-eznps]: Restrict to CONFIG_ISA_ARCOMPACT

Eugeniy Paltsev <[email protected]>
ARC: Fix ICCM & DCCM runtime size checks

Vasily Gorbik <[email protected]>
s390/ftrace: save traced function caller

Xinwei Kong <[email protected]>
spi: dw: use "smp_mb()" to avoid sending spi data error

Anju T Sudhakar <[email protected]>
powerpc/powernv: Avoid re-registration of imc debugfs directory

Xiang Chen <[email protected]>
scsi: hisi_sas: Check sas_port before using it

Lucas De Marchi <[email protected]>
drm/i915: fix port checks for MST support on gen >= 11

Dan Carpenter <[email protected]>
airo: Fix read overflows sending packets

DENG Qingfang <[email protected]>
net: dsa: mt7530: set CPU port to fallback mode

Can Guo <[email protected]>
scsi: ufs: Release clock if DMA map fails

Jérôme Pouiller <[email protected]>
mmc: fix compilation of user API

Daniel Axtens <[email protected]>
kernel/relay.c: handle alloc_percpu returning NULL in relay_open

Giuseppe Marco Randazzo <[email protected]>
p54usb: add AirVasT USB stick device-id

Julian Sax <[email protected]>
HID: i2c-hid: add Schneider SCL142ALM to descriptor override

Scott Shumate <[email protected]>
HID: sony: Fix for broken buttons on DS3 USB dongles

Fan Yang <[email protected]>
mm: Fix mremap not considering huge pmd devmap

Aneesh Kumar K.V <[email protected]>
libnvdimm: Fix endian conversion issues 

Tejun Heo <[email protected]>
Revert "cgroup: Add memory barriers to plug cgroup_rstat_updated() race window"


-------------

Diffstat:

Makefile | 4 +--
arch/arc/kernel/setup.c | 5 +--
arch/arc/plat-eznps/Kconfig | 1 +
arch/powerpc/platforms/powernv/opal-imc.c | 39 +++++++++-------------
arch/s390/kernel/mcount.S | 1 +
arch/s390/mm/hugetlbpage.c | 9 +++--
arch/x86/include/asm/pgtable.h | 1 +
arch/x86/mm/mmio-mod.c | 4 +--
drivers/block/null_blk_zoned.c | 4 +++
drivers/gpu/drm/drm_edid.c | 3 +-
drivers/gpu/drm/i915/intel_dp.c | 7 ++--
drivers/gpu/drm/i915/intel_dp_mst.c | 22 ++++++++----
drivers/hid/hid-sony.c | 17 ++++++++++
drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c | 8 +++++
drivers/i2c/busses/i2c-altera.c | 10 +++++-
drivers/net/dsa/mt7530.c | 11 ++++--
drivers/net/dsa/mt7530.h | 6 ++++
drivers/net/ethernet/apple/bmac.c | 2 +-
drivers/net/ethernet/freescale/ucc_geth.c | 13 ++++----
drivers/net/ethernet/smsc/smsc911x.c | 9 ++---
.../net/ethernet/stmicro/stmmac/dwmac-ipq806x.c | 13 ++++++++
drivers/net/wireless/cisco/airo.c | 12 +++++++
drivers/net/wireless/intersil/p54/p54usb.c | 1 +
drivers/nvdimm/btt.c | 8 ++---
drivers/nvdimm/namespace_devs.c | 7 ++--
drivers/scsi/hisi_sas/hisi_sas_main.c | 3 +-
drivers/scsi/ufs/ufshcd.c | 1 +
drivers/spi/spi-dw.c | 3 ++
include/uapi/linux/mmc/ioctl.h | 1 +
kernel/cgroup/rstat.c | 16 ++-------
kernel/relay.c | 5 +++
mm/mremap.c | 2 +-
security/integrity/evm/evm_crypto.c | 2 +-
security/integrity/evm/evm_main.c | 4 +--
security/integrity/evm/evm_secfs.c | 9 ++++-
35 files changed, 178 insertions(+), 85 deletions(-)



2020-06-05 14:24:27

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 04/28] HID: sony: Fix for broken buttons on DS3 USB dongles

From: Scott Shumate <[email protected]>

commit e72455b898ac678667c5674668186b4670d87d11 upstream.

Fix for non-working buttons on knock-off USB dongles for Sony
controllers. These USB dongles are used to connect older Sony DA/DS1/DS2
controllers via USB and are common on Amazon, AliExpress, etc. Without
the patch, the square, X, and circle buttons do not function. These
dongles used to work prior to kernel 4.10 but removing the global DS3
report fixup in commit e19a267b9987 ("HID: sony: DS3 comply to Linux gamepad
spec") exposed the problem.

Many people reported the problem on the Ubuntu forums and are working
around the problem by falling back to the 4.9 hid-sony driver.

The problem stems from these dongles incorrectly reporting their button
count as 13 instead of 16. This patch fixes up the report descriptor by
changing the button report count to 16 and removing 3 padding bits.

Cc: [email protected]
Fixes: e19a267b9987 ("HID: sony: DS3 comply to Linux gamepad spec")
Signed-off-by: Scott Shumate <[email protected]>
Signed-off-by: Jiri Kosina <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/hid/hid-sony.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

--- a/drivers/hid/hid-sony.c
+++ b/drivers/hid/hid-sony.c
@@ -869,6 +869,23 @@ static u8 *sony_report_fixup(struct hid_
if (sc->quirks & PS3REMOTE)
return ps3remote_fixup(hdev, rdesc, rsize);

+ /*
+ * Some knock-off USB dongles incorrectly report their button count
+ * as 13 instead of 16 causing three non-functional buttons.
+ */
+ if ((sc->quirks & SIXAXIS_CONTROLLER_USB) && *rsize >= 45 &&
+ /* Report Count (13) */
+ rdesc[23] == 0x95 && rdesc[24] == 0x0D &&
+ /* Usage Maximum (13) */
+ rdesc[37] == 0x29 && rdesc[38] == 0x0D &&
+ /* Report Count (3) */
+ rdesc[43] == 0x95 && rdesc[44] == 0x03) {
+ hid_info(hdev, "Fixing up USB dongle report descriptor\n");
+ rdesc[24] = 0x10;
+ rdesc[38] = 0x10;
+ rdesc[44] = 0x00;
+ }
+
return rdesc;
}



2020-06-05 14:24:29

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 03/28] mm: Fix mremap not considering huge pmd devmap

From: Fan Yang <[email protected]>

commit 5bfea2d9b17f1034a68147a8b03b9789af5700f9 upstream.

The original code in mm/mremap.c checks huge pmd by:

if (is_swap_pmd(*old_pmd) || pmd_trans_huge(*old_pmd)) {

However, a DAX mapped nvdimm is mapped as huge page (by default) but it
is not transparent huge page (_PAGE_PSE | PAGE_DEVMAP). This commit
changes the condition to include the case.

This addresses CVE-2020-10757.

Fixes: 5c7fb56e5e3f ("mm, dax: dax-pmd vs thp-pmd vs hugetlbfs-pmd")
Cc: <[email protected]>
Reported-by: Fan Yang <[email protected]>
Signed-off-by: Fan Yang <[email protected]>
Tested-by: Fan Yang <[email protected]>
Tested-by: Dan Williams <[email protected]>
Reviewed-by: Dan Williams <[email protected]>
Acked-by: Kirill A. Shutemov <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
arch/x86/include/asm/pgtable.h | 1 +
mm/mremap.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)

--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -237,6 +237,7 @@ static inline int pmd_large(pmd_t pte)
}

#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+/* NOTE: when predicate huge page, consider also pmd_devmap, or use pmd_large */
static inline int pmd_trans_huge(pmd_t pmd)
{
return (pmd_val(pmd) & (_PAGE_PSE|_PAGE_DEVMAP)) == _PAGE_PSE;
--- a/mm/mremap.c
+++ b/mm/mremap.c
@@ -221,7 +221,7 @@ unsigned long move_page_tables(struct vm
new_pmd = alloc_new_pmd(vma->vm_mm, vma, new_addr);
if (!new_pmd)
break;
- if (is_swap_pmd(*old_pmd) || pmd_trans_huge(*old_pmd)) {
+ if (is_swap_pmd(*old_pmd) || pmd_trans_huge(*old_pmd) || pmd_devmap(*old_pmd)) {
if (extent == HPAGE_PMD_SIZE) {
bool moved;
/* See comment in move_ptes() */


2020-06-05 14:24:35

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 28/28] net: smsc911x: Fix runtime PM imbalance on error

From: Dinghao Liu <[email protected]>

[ Upstream commit 539d39ad0c61b35f69565a037d7586deaf6d6166 ]

Remove runtime PM usage counter decrement when the
increment function has not been called to keep the
counter balanced.

Signed-off-by: Dinghao Liu <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/net/ethernet/smsc/smsc911x.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/smsc/smsc911x.c b/drivers/net/ethernet/smsc/smsc911x.c
index ce4bfecc26c7..ae80a223975d 100644
--- a/drivers/net/ethernet/smsc/smsc911x.c
+++ b/drivers/net/ethernet/smsc/smsc911x.c
@@ -2515,20 +2515,20 @@ static int smsc911x_drv_probe(struct platform_device *pdev)

retval = smsc911x_init(dev);
if (retval < 0)
- goto out_disable_resources;
+ goto out_init_fail;

netif_carrier_off(dev);

retval = smsc911x_mii_init(pdev, dev);
if (retval) {
SMSC_WARN(pdata, probe, "Error %i initialising mii", retval);
- goto out_disable_resources;
+ goto out_init_fail;
}

retval = register_netdev(dev);
if (retval) {
SMSC_WARN(pdata, probe, "Error %i registering device", retval);
- goto out_disable_resources;
+ goto out_init_fail;
} else {
SMSC_TRACE(pdata, probe,
"Network interface: \"%s\"", dev->name);
@@ -2569,9 +2569,10 @@ static int smsc911x_drv_probe(struct platform_device *pdev)

return 0;

-out_disable_resources:
+out_init_fail:
pm_runtime_put(&pdev->dev);
pm_runtime_disable(&pdev->dev);
+out_disable_resources:
(void)smsc911x_disable_resources(pdev);
out_enable_resources_fail:
smsc911x_free_resources(pdev);
--
2.25.1



2020-06-05 14:24:45

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 02/28] libnvdimm: Fix endian conversion issues 

From: Aneesh Kumar K.V <[email protected]>

commit 86aa66687442ef45909ff9814b82b4d2bb892294 upstream.

nd_label->dpa issue was observed when trying to enable the namespace created
with little-endian kernel on a big-endian kernel. That made me run
`sparse` on the rest of the code and other changes are the result of that.

Fixes: d9b83c756953 ("libnvdimm, btt: rework error clearing")
Fixes: 9dedc73a4658 ("libnvdimm/btt: Fix LBA masking during 'free list' population")
Reviewed-by: Vishal Verma <[email protected]>
Signed-off-by: Aneesh Kumar K.V <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dan Williams <[email protected]>
Cc: Guenter Roeck <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/nvdimm/btt.c | 8 ++++----
drivers/nvdimm/namespace_devs.c | 7 ++++---
2 files changed, 8 insertions(+), 7 deletions(-)

--- a/drivers/nvdimm/btt.c
+++ b/drivers/nvdimm/btt.c
@@ -400,9 +400,9 @@ static int btt_flog_write(struct arena_i
arena->freelist[lane].sub = 1 - arena->freelist[lane].sub;
if (++(arena->freelist[lane].seq) == 4)
arena->freelist[lane].seq = 1;
- if (ent_e_flag(ent->old_map))
+ if (ent_e_flag(le32_to_cpu(ent->old_map)))
arena->freelist[lane].has_err = 1;
- arena->freelist[lane].block = le32_to_cpu(ent_lba(ent->old_map));
+ arena->freelist[lane].block = ent_lba(le32_to_cpu(ent->old_map));

return ret;
}
@@ -568,8 +568,8 @@ static int btt_freelist_init(struct aren
* FIXME: if error clearing fails during init, we want to make
* the BTT read-only
*/
- if (ent_e_flag(log_new.old_map) &&
- !ent_normal(log_new.old_map)) {
+ if (ent_e_flag(le32_to_cpu(log_new.old_map)) &&
+ !ent_normal(le32_to_cpu(log_new.old_map))) {
arena->freelist[i].has_err = 1;
ret = arena_clear_freelist_error(arena, i);
if (ret)
--- a/drivers/nvdimm/namespace_devs.c
+++ b/drivers/nvdimm/namespace_devs.c
@@ -1996,7 +1996,7 @@ static struct device *create_namespace_p
nd_mapping = &nd_region->mapping[i];
label_ent = list_first_entry_or_null(&nd_mapping->labels,
typeof(*label_ent), list);
- label0 = label_ent ? label_ent->label : 0;
+ label0 = label_ent ? label_ent->label : NULL;

if (!label0) {
WARN_ON(1);
@@ -2332,8 +2332,9 @@ static struct device **scan_labels(struc
continue;

/* skip labels that describe extents outside of the region */
- if (nd_label->dpa < nd_mapping->start || nd_label->dpa > map_end)
- continue;
+ if (__le64_to_cpu(nd_label->dpa) < nd_mapping->start ||
+ __le64_to_cpu(nd_label->dpa) > map_end)
+ continue;

i = add_namespace_resource(nd_region, nd_label, devs, count);
if (i < 0)


2020-06-05 14:24:52

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 21/28] x86/mmiotrace: Use cpumask_available() for cpumask_var_t variables

From: Nathan Chancellor <[email protected]>

[ Upstream commit d7110a26e5905ec2fe3fc88bc6a538901accb72b ]

When building with Clang + -Wtautological-compare and
CONFIG_CPUMASK_OFFSTACK unset:

arch/x86/mm/mmio-mod.c:375:6: warning: comparison of array 'downed_cpus'
equal to a null pointer is always false [-Wtautological-pointer-compare]
if (downed_cpus == NULL &&
^~~~~~~~~~~ ~~~~
arch/x86/mm/mmio-mod.c:405:6: warning: comparison of array 'downed_cpus'
equal to a null pointer is always false [-Wtautological-pointer-compare]
if (downed_cpus == NULL || cpumask_weight(downed_cpus) == 0)
^~~~~~~~~~~ ~~~~
2 warnings generated.

Commit

f7e30f01a9e2 ("cpumask: Add helper cpumask_available()")

added cpumask_available() to fix warnings of this nature. Use that here
so that clang does not warn regardless of CONFIG_CPUMASK_OFFSTACK's
value.

Reported-by: Sedat Dilek <[email protected]>
Signed-off-by: Nathan Chancellor <[email protected]>
Signed-off-by: Borislav Petkov <[email protected]>
Reviewed-by: Nick Desaulniers <[email protected]>
Acked-by: Steven Rostedt (VMware) <[email protected]>
Link: https://github.com/ClangBuiltLinux/linux/issues/982
Link: https://lkml.kernel.org/r/[email protected]
Signed-off-by: Sasha Levin <[email protected]>
---
arch/x86/mm/mmio-mod.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/mm/mmio-mod.c b/arch/x86/mm/mmio-mod.c
index 2c1ecf4763c4..e32b003e064a 100644
--- a/arch/x86/mm/mmio-mod.c
+++ b/arch/x86/mm/mmio-mod.c
@@ -384,7 +384,7 @@ static void enter_uniprocessor(void)
int cpu;
int err;

- if (downed_cpus == NULL &&
+ if (!cpumask_available(downed_cpus) &&
!alloc_cpumask_var(&downed_cpus, GFP_KERNEL)) {
pr_notice("Failed to allocate mask\n");
goto out;
@@ -414,7 +414,7 @@ static void leave_uniprocessor(void)
int cpu;
int err;

- if (downed_cpus == NULL || cpumask_weight(downed_cpus) == 0)
+ if (!cpumask_available(downed_cpus) || cpumask_weight(downed_cpus) == 0)
return;
pr_notice("Re-enabling CPUs...\n");
for_each_cpu(cpu, downed_cpus) {
--
2.25.1



2020-06-05 14:24:56

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 24/28] s390/mm: fix set_huge_pte_at() for empty ptes

From: Gerald Schaefer <[email protected]>

[ Upstream commit ac8372f3b4e41015549b331a4f350224661e7fc6 ]

On s390, the layout of normal and large ptes (i.e. pmds/puds) differs.
Therefore, set_huge_pte_at() does a conversion from a normal pte to
the corresponding large pmd/pud. So, when converting an empty pte, this
should result in an empty pmd/pud, which would return true for
pmd/pud_none().

However, after conversion we also mark the pmd/pud as large, and
therefore present. For empty ptes, this will result in an empty pmd/pud
that is also marked as large, and pmd/pud_none() would not return true.

There is currently no issue with this behaviour, as set_huge_pte_at()
does not seem to be called for empty ptes. It would be valid though, so
let's fix this by not marking empty ptes as large in set_huge_pte_at().

This was found by testing a patch from from Anshuman Khandual, which is
currently discussed on LKML ("mm/debug: Add more arch page table helper
tests").

Signed-off-by: Gerald Schaefer <[email protected]>
Signed-off-by: Vasily Gorbik <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
arch/s390/mm/hugetlbpage.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/arch/s390/mm/hugetlbpage.c b/arch/s390/mm/hugetlbpage.c
index 5674710a4841..7dfae86afa47 100644
--- a/arch/s390/mm/hugetlbpage.c
+++ b/arch/s390/mm/hugetlbpage.c
@@ -159,10 +159,13 @@ void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
rste &= ~_SEGMENT_ENTRY_NOEXEC;

/* Set correct table type for 2G hugepages */
- if ((pte_val(*ptep) & _REGION_ENTRY_TYPE_MASK) == _REGION_ENTRY_TYPE_R3)
- rste |= _REGION_ENTRY_TYPE_R3 | _REGION3_ENTRY_LARGE;
- else
+ if ((pte_val(*ptep) & _REGION_ENTRY_TYPE_MASK) == _REGION_ENTRY_TYPE_R3) {
+ if (likely(pte_present(pte)))
+ rste |= _REGION3_ENTRY_LARGE;
+ rste |= _REGION_ENTRY_TYPE_R3;
+ } else if (likely(pte_present(pte)))
rste |= _SEGMENT_ENTRY_LARGE;
+
clear_huge_pte_skeys(mm, rste);
pte_val(*ptep) = rste;
}
--
2.25.1



2020-06-05 14:25:11

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 15/28] spi: dw: use "smp_mb()" to avoid sending spi data error

From: Xinwei Kong <[email protected]>

[ Upstream commit bfda044533b213985bc62bd7ca96f2b984d21b80 ]

Because of out-of-order execution about some CPU architecture,
In this debug stage we find Completing spi interrupt enable ->
prodrucing TXEI interrupt -> running "interrupt_transfer" function
will prior to set "dw->rx and dws->rx_end" data, so this patch add
memory barrier to enable dw->rx and dw->rx_end to be visible and
solve to send SPI data error.
eg:
it will fix to this following low possibility error in testing environment
which using SPI control to connect TPM Modules

kernel: tpm tpm0: Operation Timed out
kernel: tpm tpm0: tpm_relinquish_locality: : error -1

Signed-off-by: fengsheng <[email protected]>
Signed-off-by: Xinwei Kong <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/spi/spi-dw.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c
index 5a47e28e38c1..6f0f6b99953d 100644
--- a/drivers/spi/spi-dw.c
+++ b/drivers/spi/spi-dw.c
@@ -304,6 +304,9 @@ static int dw_spi_transfer_one(struct spi_controller *master,
dws->len = transfer->len;
spin_unlock_irqrestore(&dws->buf_lock, flags);

+ /* Ensure dw->rx and dw->rx_end are visible */
+ smp_mb();
+
spi_enable_chip(dws, 0);

/* Handle per transfer options for bpw and speed */
--
2.25.1



2020-06-05 14:25:13

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 13/28] scsi: hisi_sas: Check sas_port before using it

From: Xiang Chen <[email protected]>

[ Upstream commit 8c39673d5474b95374df2104dc1f65205c5278b8 ]

Need to check the structure sas_port before using it.

Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Xiang Chen <[email protected]>
Signed-off-by: John Garry <[email protected]>
Signed-off-by: Martin K. Petersen <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/scsi/hisi_sas/hisi_sas_main.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c
index 33191673249c..de4f41bce8e9 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_main.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
@@ -789,12 +789,13 @@ static void hisi_sas_port_notify_formed(struct asd_sas_phy *sas_phy)
struct hisi_hba *hisi_hba = sas_ha->lldd_ha;
struct hisi_sas_phy *phy = sas_phy->lldd_phy;
struct asd_sas_port *sas_port = sas_phy->port;
- struct hisi_sas_port *port = to_hisi_sas_port(sas_port);
+ struct hisi_sas_port *port;
unsigned long flags;

if (!sas_port)
return;

+ port = to_hisi_sas_port(sas_port);
spin_lock_irqsave(&hisi_hba->lock, flags);
port->port_attached = 1;
port->id = phy->port_id;
--
2.25.1



2020-06-05 14:25:55

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 19/28] evm: Fix RCU list related warnings

From: Madhuparna Bhowmik <[email protected]>

[ Upstream commit 770f60586d2af0590be263f55fd079226313922c ]

This patch fixes the following warning and few other instances of
traversal of evm_config_xattrnames list:

[ 32.848432] =============================
[ 32.848707] WARNING: suspicious RCU usage
[ 32.848966] 5.7.0-rc1-00006-ga8d5875ce5f0b #1 Not tainted
[ 32.849308] -----------------------------
[ 32.849567] security/integrity/evm/evm_main.c:231 RCU-list traversed in non-reader section!!

Since entries are only added to the list and never deleted, use
list_for_each_entry_lockless() instead of list_for_each_entry_rcu for
traversing the list. Also, add a relevant comment in evm_secfs.c to
indicate this fact.

Reported-by: kernel test robot <[email protected]>
Suggested-by: Paul E. McKenney <[email protected]>
Signed-off-by: Madhuparna Bhowmik <[email protected]>
Acked-by: Paul E. McKenney <[email protected]> (RCU viewpoint)
Signed-off-by: Mimi Zohar <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
security/integrity/evm/evm_crypto.c | 2 +-
security/integrity/evm/evm_main.c | 4 ++--
security/integrity/evm/evm_secfs.c | 9 ++++++++-
3 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/security/integrity/evm/evm_crypto.c b/security/integrity/evm/evm_crypto.c
index f0878d81dcef..d20f5792761c 100644
--- a/security/integrity/evm/evm_crypto.c
+++ b/security/integrity/evm/evm_crypto.c
@@ -215,7 +215,7 @@ static int evm_calc_hmac_or_hash(struct dentry *dentry,
data->hdr.length = crypto_shash_digestsize(desc->tfm);

error = -ENODATA;
- list_for_each_entry_rcu(xattr, &evm_config_xattrnames, list) {
+ list_for_each_entry_lockless(xattr, &evm_config_xattrnames, list) {
bool is_ima = false;

if (strcmp(xattr->name, XATTR_NAME_IMA) == 0)
diff --git a/security/integrity/evm/evm_main.c b/security/integrity/evm/evm_main.c
index 7f3f54d89a6e..e11d860fdce4 100644
--- a/security/integrity/evm/evm_main.c
+++ b/security/integrity/evm/evm_main.c
@@ -102,7 +102,7 @@ static int evm_find_protected_xattrs(struct dentry *dentry)
if (!(inode->i_opflags & IOP_XATTR))
return -EOPNOTSUPP;

- list_for_each_entry_rcu(xattr, &evm_config_xattrnames, list) {
+ list_for_each_entry_lockless(xattr, &evm_config_xattrnames, list) {
error = __vfs_getxattr(dentry, inode, xattr->name, NULL, 0);
if (error < 0) {
if (error == -ENODATA)
@@ -233,7 +233,7 @@ static int evm_protected_xattr(const char *req_xattr_name)
struct xattr_list *xattr;

namelen = strlen(req_xattr_name);
- list_for_each_entry_rcu(xattr, &evm_config_xattrnames, list) {
+ list_for_each_entry_lockless(xattr, &evm_config_xattrnames, list) {
if ((strlen(xattr->name) == namelen)
&& (strncmp(req_xattr_name, xattr->name, namelen) == 0)) {
found = 1;
diff --git a/security/integrity/evm/evm_secfs.c b/security/integrity/evm/evm_secfs.c
index 77de71b7794c..f112ca593adc 100644
--- a/security/integrity/evm/evm_secfs.c
+++ b/security/integrity/evm/evm_secfs.c
@@ -237,7 +237,14 @@ static ssize_t evm_write_xattrs(struct file *file, const char __user *buf,
goto out;
}

- /* Guard against races in evm_read_xattrs */
+ /*
+ * xattr_list_mutex guards against races in evm_read_xattrs().
+ * Entries are only added to the evm_config_xattrnames list
+ * and never deleted. Therefore, the list is traversed
+ * using list_for_each_entry_lockless() without holding
+ * the mutex in evm_calc_hmac_or_hash(), evm_find_protected_xattrs()
+ * and evm_protected_xattr().
+ */
mutex_lock(&xattr_list_mutex);
list_for_each_entry(tmp, &evm_config_xattrnames, list) {
if (strcmp(xattr->name, tmp->name) == 0) {
--
2.25.1



2020-06-05 14:26:05

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 27/28] net: ethernet: stmmac: Enable interface clocks on probe for IPQ806x

From: Jonathan McDowell <[email protected]>

[ Upstream commit a96ac8a0045e3cbe3e5af6d1b3c78c6c2065dec5 ]

The ipq806x_gmac_probe() function enables the PTP clock but not the
appropriate interface clocks. This means that if the bootloader hasn't
done so attempting to bring up the interface will fail with an error
like:

[ 59.028131] ipq806x-gmac-dwmac 37600000.ethernet: Failed to reset the dma
[ 59.028196] ipq806x-gmac-dwmac 37600000.ethernet eth1: stmmac_hw_setup: DMA engine initialization failed
[ 59.034056] ipq806x-gmac-dwmac 37600000.ethernet eth1: stmmac_open: Hw setup failed

This patch, a slightly cleaned up version of one posted by Sergey
Sergeev in:

https://forum.openwrt.org/t/support-for-mikrotik-rb3011uias-rm/4064/257

correctly enables the clock; we have already configured the source just
before this.

Tested on a MikroTik RB3011.

Signed-off-by: Jonathan McDowell <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c
index 0d21082ceb93..4d75158c64b2 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c
@@ -318,6 +318,19 @@ static int ipq806x_gmac_probe(struct platform_device *pdev)
/* Enable PTP clock */
regmap_read(gmac->nss_common, NSS_COMMON_CLK_GATE, &val);
val |= NSS_COMMON_CLK_GATE_PTP_EN(gmac->id);
+ switch (gmac->phy_mode) {
+ case PHY_INTERFACE_MODE_RGMII:
+ val |= NSS_COMMON_CLK_GATE_RGMII_RX_EN(gmac->id) |
+ NSS_COMMON_CLK_GATE_RGMII_TX_EN(gmac->id);
+ break;
+ case PHY_INTERFACE_MODE_SGMII:
+ val |= NSS_COMMON_CLK_GATE_GMII_RX_EN(gmac->id) |
+ NSS_COMMON_CLK_GATE_GMII_TX_EN(gmac->id);
+ break;
+ default:
+ /* We don't get here; the switch above will have errored out */
+ unreachable();
+ }
regmap_write(gmac->nss_common, NSS_COMMON_CLK_GATE, val);

if (gmac->phy_mode == PHY_INTERFACE_MODE_SGMII) {
--
2.25.1



2020-06-05 14:26:10

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 05/28] HID: i2c-hid: add Schneider SCL142ALM to descriptor override

From: Julian Sax <[email protected]>

commit 6507ef10660efdfee93f0f3b9fac24b5e4d83e56 upstream.

This device uses the SIPODEV SP1064 touchpad, which does not
supply descriptors, so it has to be added to the override list.

Cc: [email protected]
Signed-off-by: Julian Sax <[email protected]>
Signed-off-by: Jiri Kosina <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c | 8 ++++++++
1 file changed, 8 insertions(+)

--- a/drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c
+++ b/drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c
@@ -381,6 +381,14 @@ static const struct dmi_system_id i2c_hi
},
.driver_data = (void *)&sipodev_desc
},
+ {
+ .ident = "Schneider SCL142ALM",
+ .matches = {
+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SCHNEIDER"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SCL142ALM"),
+ },
+ .driver_data = (void *)&sipodev_desc
+ },
{ } /* Terminate list */
};



2020-06-05 14:26:14

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 06/28] p54usb: add AirVasT USB stick device-id

From: Giuseppe Marco Randazzo <[email protected]>

commit 63e49a9fdac1b4e97ac26cb3fe953f210d83bc53 upstream.

This patch adds the AirVasT USB wireless devices 124a:4026
to the list of supported devices. It's using the ISL3886
usb firmware. Without this modification, the wiki adapter
is not recognized.

Cc: <[email protected]>
Signed-off-by: Giuseppe Marco Randazzo <[email protected]>
Signed-off-by: Christian Lamparter <[email protected]> [formatted, reworded]
Signed-off-by: Kalle Valo <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/net/wireless/intersil/p54/p54usb.c | 1 +
1 file changed, 1 insertion(+)

--- a/drivers/net/wireless/intersil/p54/p54usb.c
+++ b/drivers/net/wireless/intersil/p54/p54usb.c
@@ -64,6 +64,7 @@ static const struct usb_device_id p54u_t
{USB_DEVICE(0x0db0, 0x6826)}, /* MSI UB54G (MS-6826) */
{USB_DEVICE(0x107b, 0x55f2)}, /* Gateway WGU-210 (Gemtek) */
{USB_DEVICE(0x124a, 0x4023)}, /* Shuttle PN15, Airvast WM168g, IOGear GWU513 */
+ {USB_DEVICE(0x124a, 0x4026)}, /* AirVasT USB wireless device */
{USB_DEVICE(0x1435, 0x0210)}, /* Inventel UR054G */
{USB_DEVICE(0x15a9, 0x0002)}, /* Gemtek WUBI-100GW 802.11g */
{USB_DEVICE(0x1630, 0x0005)}, /* 2Wire 802.11g USB (v1) / Z-Com */


2020-06-05 14:26:26

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 11/28] airo: Fix read overflows sending packets

From: Dan Carpenter <[email protected]>

commit 11e7a91994c29da96d847f676be023da6a2c1359 upstream.

The problem is that we always copy a minimum of ETH_ZLEN (60) bytes from
skb->data even when skb->len is less than ETH_ZLEN so it leads to a read
overflow.

The fix is to pad skb->data to at least ETH_ZLEN bytes.

Cc: <[email protected]>
Reported-by: Hu Jiahui <[email protected]>
Signed-off-by: Dan Carpenter <[email protected]>
Reviewed-by: Eric Dumazet <[email protected]>
Signed-off-by: Kalle Valo <[email protected]>
Link: https://lore.kernel.org/r/20200527184830.GA1164846@mwanda
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/net/wireless/cisco/airo.c | 12 ++++++++++++
1 file changed, 12 insertions(+)

--- a/drivers/net/wireless/cisco/airo.c
+++ b/drivers/net/wireless/cisco/airo.c
@@ -1928,6 +1928,10 @@ static netdev_tx_t mpi_start_xmit(struct
airo_print_err(dev->name, "%s: skb == NULL!",__func__);
return NETDEV_TX_OK;
}
+ if (skb_padto(skb, ETH_ZLEN)) {
+ dev->stats.tx_dropped++;
+ return NETDEV_TX_OK;
+ }
npacks = skb_queue_len (&ai->txq);

if (npacks >= MAXTXQ - 1) {
@@ -2130,6 +2134,10 @@ static netdev_tx_t airo_start_xmit(struc
airo_print_err(dev->name, "%s: skb == NULL!", __func__);
return NETDEV_TX_OK;
}
+ if (skb_padto(skb, ETH_ZLEN)) {
+ dev->stats.tx_dropped++;
+ return NETDEV_TX_OK;
+ }

/* Find a vacant FID */
for( i = 0; i < MAX_FIDS / 2 && (fids[i] & 0xffff0000); i++ );
@@ -2204,6 +2212,10 @@ static netdev_tx_t airo_start_xmit11(str
airo_print_err(dev->name, "%s: skb == NULL!", __func__);
return NETDEV_TX_OK;
}
+ if (skb_padto(skb, ETH_ZLEN)) {
+ dev->stats.tx_dropped++;
+ return NETDEV_TX_OK;
+ }

/* Find a vacant FID */
for( i = MAX_FIDS / 2; i < MAX_FIDS && (fids[i] & 0xffff0000); i++ );


2020-06-05 14:26:40

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 07/28] kernel/relay.c: handle alloc_percpu returning NULL in relay_open

From: Daniel Axtens <[email protected]>

commit 54e200ab40fc14c863bcc80a51e20b7906608fce upstream.

alloc_percpu() may return NULL, which means chan->buf may be set to NULL.
In that case, when we do *per_cpu_ptr(chan->buf, ...), we dereference an
invalid pointer:

BUG: Unable to handle kernel data access at 0x7dae0000
Faulting instruction address: 0xc0000000003f3fec
...
NIP relay_open+0x29c/0x600
LR relay_open+0x270/0x600
Call Trace:
relay_open+0x264/0x600 (unreliable)
__blk_trace_setup+0x254/0x600
blk_trace_setup+0x68/0xa0
sg_ioctl+0x7bc/0x2e80
do_vfs_ioctl+0x13c/0x1300
ksys_ioctl+0x94/0x130
sys_ioctl+0x48/0xb0
system_call+0x5c/0x68

Check if alloc_percpu returns NULL.

This was found by syzkaller both on x86 and powerpc, and the reproducer
it found on powerpc is capable of hitting the issue as an unprivileged
user.

Fixes: 017c59c042d0 ("relay: Use per CPU constructs for the relay channel buffer pointers")
Reported-by: [email protected]
Reported-by: [email protected]
Reported-by: [email protected]
Reported-by: [email protected]
Signed-off-by: Daniel Axtens <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Reviewed-by: Michael Ellerman <[email protected]>
Reviewed-by: Andrew Donnellan <[email protected]>
Acked-by: David Rientjes <[email protected]>
Cc: Akash Goel <[email protected]>
Cc: Andrew Donnellan <[email protected]>
Cc: Guenter Roeck <[email protected]>
Cc: Salvatore Bonaccorso <[email protected]>
Cc: <[email protected]> [4.10+]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Linus Torvalds <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
kernel/relay.c | 5 +++++
1 file changed, 5 insertions(+)

--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -581,6 +581,11 @@ struct rchan *relay_open(const char *bas
return NULL;

chan->buf = alloc_percpu(struct rchan_buf *);
+ if (!chan->buf) {
+ kfree(chan);
+ return NULL;
+ }
+
chan->version = RELAYFS_CHANNEL_VERSION;
chan->n_subbufs = n_subbufs;
chan->subbuf_size = subbuf_size;


2020-06-05 14:26:56

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 23/28] drm/edid: Add Oculus Rift S to non-desktop list

From: Jan Schmidt <[email protected]>

[ Upstream commit 5a3f610877e9d08968ea7237551049581f02b163 ]

Add a quirk for the Oculus Rift S OVR0012 display so
it shows up as a non-desktop display.

Signed-off-by: Jan Schmidt <[email protected]>
Signed-off-by: Dave Airlie <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/gpu/drm/drm_edid.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index d5dcee7f1fc8..108f542176b8 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -198,10 +198,11 @@ static const struct edid_quirk {
{ "HVR", 0xaa01, EDID_QUIRK_NON_DESKTOP },
{ "HVR", 0xaa02, EDID_QUIRK_NON_DESKTOP },

- /* Oculus Rift DK1, DK2, and CV1 VR Headsets */
+ /* Oculus Rift DK1, DK2, CV1 and Rift S VR Headsets */
{ "OVR", 0x0001, EDID_QUIRK_NON_DESKTOP },
{ "OVR", 0x0003, EDID_QUIRK_NON_DESKTOP },
{ "OVR", 0x0004, EDID_QUIRK_NON_DESKTOP },
+ { "OVR", 0x0012, EDID_QUIRK_NON_DESKTOP },

/* Windows Mixed Reality Headsets */
{ "ACR", 0x7fce, EDID_QUIRK_NON_DESKTOP },
--
2.25.1



2020-06-05 14:27:10

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 4.19 18/28] ARC: [plat-eznps]: Restrict to CONFIG_ISA_ARCOMPACT

From: Vineet Gupta <[email protected]>

[ Upstream commit 799587d5731db9dcdafaac4002463aa7d9cd6cf7 ]

Elide invalid configuration EZNPS + ARCv2, triggered by a
make allyesconfig build.

Granted the root cause is in source code (asm/barrier.h) where we check
for ARCv2 before PLAT_EZNPS, but it is better to avoid such combinations
at onset rather then baking subtle nuances into code.

Reported-by: kbuild test robot <[email protected]>
Signed-off-by: Vineet Gupta <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
arch/arc/plat-eznps/Kconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/arc/plat-eznps/Kconfig b/arch/arc/plat-eznps/Kconfig
index ce908e2c5282..71378bfec8d0 100644
--- a/arch/arc/plat-eznps/Kconfig
+++ b/arch/arc/plat-eznps/Kconfig
@@ -6,6 +6,7 @@

menuconfig ARC_PLAT_EZNPS
bool "\"EZchip\" ARC dev platform"
+ depends on ISA_ARCOMPACT
select CPU_BIG_ENDIAN
select CLKSRC_NPS if !PHYS_ADDR_T_64BIT
select EZNPS_GIC
--
2.25.1



2020-06-05 22:21:16

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH 4.19 00/28] 4.19.127-rc1 review

On 6/5/20 8:15 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.19.127 release.
> There are 28 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 Sun, 07 Jun 2020 13:54:56 +0000.
> 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/v4.x/stable-review/patch-4.19.127-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
>

Compiled and booted on my test system. No dmesg regressions.

thanks,
-- Shuah

2020-06-06 06:34:18

by Jon Hunter

[permalink] [raw]
Subject: Re: [PATCH 4.19 00/28] 4.19.127-rc1 review


On 05/06/2020 15:15, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.19.127 release.
> There are 28 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 Sun, 07 Jun 2020 13:54:56 +0000.
> 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/v4.x/stable-review/patch-4.19.127-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h


All tests are passing for Tegra. I am missing the report for this one. I
can see everything passed but now our builders have been off-lined for
the weekend. Can't believe we are giving the builders the weekend off!

Cheers
Jon

--
nvpublic

2020-06-06 13:35:19

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 4.19 00/28] 4.19.127-rc1 review

On 6/5/20 7:15 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 4.19.127 release.
> There are 28 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 Sun, 07 Jun 2020 13:54:56 +0000.
> Anything received after that time might be too late.
>

Build results:
total: 155 pass: 155 fail: 0
Qemu test results:
total: 421 pass: 421 fail: 0

Guenter

2020-06-07 05:46:29

by Naresh Kamboju

[permalink] [raw]
Subject: Re: [PATCH 4.19 00/28] 4.19.127-rc1 review

On Fri, 5 Jun 2020 at 19:50, Greg Kroah-Hartman
<[email protected]> wrote:
>
> This is the start of the stable review cycle for the 4.19.127 release.
> There are 28 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 Sun, 07 Jun 2020 13:54:56 +0000.
> 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/v4.x/stable-review/patch-4.19.127-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h

Results from Linaro’s test farm.
No regressions on arm64, arm, x86_64, and i386.

Summary
------------------------------------------------------------------------

kernel: 4.19.127-rc1
git repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git branch: linux-4.19.y
git commit: 65151bf9f715983d62613a4d9196525eb64dda53
git describe: v4.19.126-29-g65151bf9f715
Test details: https://qa-reports.linaro.org/lkft/linux-stable-rc-4.19-oe/build/v4.19.126-29-g65151bf9f715


No regressions (compared to build v4.19.126)

No fixes (compared to build v4.19.126)


Ran 32146 total tests in the following environments and test suites.

Environments
--------------
- dragonboard-410c - arm64
- hi6220-hikey - arm64
- i386
- juno-r2 - arm64
- juno-r2-compat
- juno-r2-kasan
- nxp-ls2088
- qemu_arm
- qemu_arm64
- qemu_i386
- qemu_x86_64
- x15 - arm
- x86_64
- x86-kasan

Test Suites
-----------
* build
* install-android-platform-tools-r2600
* install-android-platform-tools-r2800
* kselftest
* kselftest/drivers
* kselftest/filesystems
* kselftest/net
* libhugetlbfs
* linux-log-parser
* ltp-cap_bounds-tests
* ltp-controllers-tests
* ltp-cpuhotplug-tests
* ltp-crypto-tests
* ltp-cve-tests
* ltp-ipc-tests
* ltp-sched-tests
* perf
* v4l2-compliance
* ltp-commands-tests
* ltp-containers-tests
* ltp-dio-tests
* ltp-fcntl-locktests-tests
* ltp-filecaps-tests
* ltp-fs-tests
* ltp-fs_bind-tests
* ltp-fs_perms_simple-tests
* ltp-fsx-tests
* ltp-hugetlb-tests
* ltp-io-tests
* ltp-math-tests
* ltp-mm-tests
* ltp-nptl-tests
* ltp-pty-tests
* ltp-securebits-tests
* ltp-syscalls-tests
* network-basic-tests
* ltp-open-posix-tests
* kvm-unit-tests
* kselftest-vsyscall-mode-native
* kselftest-vsyscall-mode-native/drivers
* kselftest-vsyscall-mode-native/filesystems
* kselftest-vsyscall-mode-native/net
* kselftest-vsyscall-mode-none
* kselftest-vsyscall-mode-none/drivers
* kselftest-vsyscall-mode-none/filesystems
* kselftest-vsyscall-mode-none/net

--
Linaro LKFT
https://lkft.linaro.org

2020-06-07 11:21:09

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 4.19 00/28] 4.19.127-rc1 review

On Sat, Jun 06, 2020 at 07:32:05AM +0100, Jon Hunter wrote:
>
> On 05/06/2020 15:15, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 4.19.127 release.
> > There are 28 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 Sun, 07 Jun 2020 13:54:56 +0000.
> > 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/v4.x/stable-review/patch-4.19.127-rc1.gz
> > or in the git tree and branch at:
> > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
> > and the diffstat can be found below.
> >
> > thanks,
> >
> > greg k-h
>
>
> All tests are passing for Tegra. I am missing the report for this one. I
> can see everything passed but now our builders have been off-lined for
> the weekend. Can't believe we are giving the builders the weekend off!

Lucky builders :)

Anyway, thanks for testing all of these and letting me know.

greg k-h

2020-06-07 20:11:34

by Pavel Machek

[permalink] [raw]
Subject: Re: [PATCH 4.19 15/28] spi: dw: use "smp_mb()" to avoid sending spi data error

Hi!

> Because of out-of-order execution about some CPU architecture,
> In this debug stage we find Completing spi interrupt enable ->
> prodrucing TXEI interrupt -> running "interrupt_transfer" function
> will prior to set "dw->rx and dws->rx_end" data, so this patch add
> memory barrier to enable dw->rx and dw->rx_end to be visible and
> solve to send SPI data error.

So, this is apparently CPU-vs-device issue...

> +++ b/drivers/spi/spi-dw.c
> @@ -304,6 +304,9 @@ static int dw_spi_transfer_one(struct spi_controller *master,
> dws->len = transfer->len;
> spin_unlock_irqrestore(&dws->buf_lock, flags);
>
> + /* Ensure dw->rx and dw->rx_end are visible */
> + smp_mb();
> +

But we use SMP-only memory barrier, thus the bug will still be there
in single-processor configurations. Should this be mb()?

Best regards,
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


Attachments:
(No filename) (0.99 kB)
signature.asc (188.00 B)
Digital signature
Download all attachments

2020-06-08 09:48:54

by Chris Paterson

[permalink] [raw]
Subject: RE: [PATCH 4.19 00/28] 4.19.127-rc1 review

Hello Greg,

> From: [email protected] <[email protected]> On
> Behalf Of Greg Kroah-Hartman
> Sent: 05 June 2020 15:15
>
> This is the start of the stable review cycle for the 4.19.127 release.
> There are 28 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.

No build/boot issues seen for CIP configs for Linux 4.19.127-rc1 (65151bf9f715).

Build/test pipeline/logs: https://gitlab.com/cip-project/cip-testing/linux-stable-rc-ci/-/pipelines/153373642
GitLab CI pipeline: https://gitlab.com/cip-project/cip-testing/linux-cip-pipelines/-/blob/master/trees/linux-4.19.y.yml
Relevant LAVA jobs: https://lava.ciplatform.org/scheduler/alljobs?length=25&search=65151b#table

Kind regards, Chris

>
> Responses should be made by Sun, 07 Jun 2020 13:54:56 +0000.
> 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/v4.x/stable-
> review/patch-4.19.127-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-
> rc.git linux-4.19.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
>
> -------------
> Pseudo-Shortlog of commits:
>
> Greg Kroah-Hartman <[email protected]>
> Linux 4.19.127-rc1
>
> Dinghao Liu <[email protected]>
> net: smsc911x: Fix runtime PM imbalance on error
>
> Jonathan McDowell <[email protected]>
> net: ethernet: stmmac: Enable interface clocks on probe for IPQ806x
>
> Valentin Longchamp <[email protected]>
> net/ethernet/freescale: rework quiesce/activate for ucc_geth
>
> Chaitanya Kulkarni <[email protected]>
> null_blk: return error for invalid zone size
>
> Gerald Schaefer <[email protected]>
> s390/mm: fix set_huge_pte_at() for empty ptes
>
> Jan Schmidt <[email protected]>
> drm/edid: Add Oculus Rift S to non-desktop list
>
> Jeremy Kerr <[email protected]>
> net: bmac: Fix read of MAC address from ROM
>
> Nathan Chancellor <[email protected]>
> x86/mmiotrace: Use cpumask_available() for cpumask_var_t variables
>
> Atsushi Nemoto <[email protected]>
> i2c: altera: Fix race between xfer_msg and isr thread
>
> Madhuparna Bhowmik <[email protected]>
> evm: Fix RCU list related warnings
>
> Vineet Gupta <[email protected]>
> ARC: [plat-eznps]: Restrict to CONFIG_ISA_ARCOMPACT
>
> Eugeniy Paltsev <[email protected]>
> ARC: Fix ICCM & DCCM runtime size checks
>
> Vasily Gorbik <[email protected]>
> s390/ftrace: save traced function caller
>
> Xinwei Kong <[email protected]>
> spi: dw: use "smp_mb()" to avoid sending spi data error
>
> Anju T Sudhakar <[email protected]>
> powerpc/powernv: Avoid re-registration of imc debugfs directory
>
> Xiang Chen <[email protected]>
> scsi: hisi_sas: Check sas_port before using it
>
> Lucas De Marchi <[email protected]>
> drm/i915: fix port checks for MST support on gen >= 11
>
> Dan Carpenter <[email protected]>
> airo: Fix read overflows sending packets
>
> DENG Qingfang <[email protected]>
> net: dsa: mt7530: set CPU port to fallback mode
>
> Can Guo <[email protected]>
> scsi: ufs: Release clock if DMA map fails
>
> Jérôme Pouiller <[email protected]>
> mmc: fix compilation of user API
>
> Daniel Axtens <[email protected]>
> kernel/relay.c: handle alloc_percpu returning NULL in relay_open
>
> Giuseppe Marco Randazzo <[email protected]>
> p54usb: add AirVasT USB stick device-id
>
> Julian Sax <[email protected]>
> HID: i2c-hid: add Schneider SCL142ALM to descriptor override
>
> Scott Shumate <[email protected]>
> HID: sony: Fix for broken buttons on DS3 USB dongles
>
> Fan Yang <[email protected]>
> mm: Fix mremap not considering huge pmd devmap
>
> Aneesh Kumar K.V <[email protected]>
> libnvdimm: Fix endian conversion issues
>
> Tejun Heo <[email protected]>
> Revert "cgroup: Add memory barriers to plug cgroup_rstat_updated() race
> window"
>
>
> -------------
>
> Diffstat:
>
> Makefile | 4 +--
> arch/arc/kernel/setup.c | 5 +--
> arch/arc/plat-eznps/Kconfig | 1 +
> arch/powerpc/platforms/powernv/opal-imc.c | 39 +++++++++-----------
> --
> arch/s390/kernel/mcount.S | 1 +
> arch/s390/mm/hugetlbpage.c | 9 +++--
> arch/x86/include/asm/pgtable.h | 1 +
> arch/x86/mm/mmio-mod.c | 4 +--
> drivers/block/null_blk_zoned.c | 4 +++
> drivers/gpu/drm/drm_edid.c | 3 +-
> drivers/gpu/drm/i915/intel_dp.c | 7 ++--
> drivers/gpu/drm/i915/intel_dp_mst.c | 22 ++++++++----
> drivers/hid/hid-sony.c | 17 ++++++++++
> drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c | 8 +++++
> drivers/i2c/busses/i2c-altera.c | 10 +++++-
> drivers/net/dsa/mt7530.c | 11 ++++--
> drivers/net/dsa/mt7530.h | 6 ++++
> drivers/net/ethernet/apple/bmac.c | 2 +-
> drivers/net/ethernet/freescale/ucc_geth.c | 13 ++++----
> drivers/net/ethernet/smsc/smsc911x.c | 9 ++---
> .../net/ethernet/stmicro/stmmac/dwmac-ipq806x.c | 13 ++++++++
> drivers/net/wireless/cisco/airo.c | 12 +++++++
> drivers/net/wireless/intersil/p54/p54usb.c | 1 +
> drivers/nvdimm/btt.c | 8 ++---
> drivers/nvdimm/namespace_devs.c | 7 ++--
> drivers/scsi/hisi_sas/hisi_sas_main.c | 3 +-
> drivers/scsi/ufs/ufshcd.c | 1 +
> drivers/spi/spi-dw.c | 3 ++
> include/uapi/linux/mmc/ioctl.h | 1 +
> kernel/cgroup/rstat.c | 16 ++-------
> kernel/relay.c | 5 +++
> mm/mremap.c | 2 +-
> security/integrity/evm/evm_crypto.c | 2 +-
> security/integrity/evm/evm_main.c | 4 +--
> security/integrity/evm/evm_secfs.c | 9 ++++-
> 35 files changed, 178 insertions(+), 85 deletions(-)
>

2020-06-08 11:18:37

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH 4.19 15/28] spi: dw: use "smp_mb()" to avoid sending spi data error

On Sun, Jun 07, 2020 at 10:09:11PM +0200, Pavel Machek wrote:

> > Because of out-of-order execution about some CPU architecture,
> > In this debug stage we find Completing spi interrupt enable ->
> > prodrucing TXEI interrupt -> running "interrupt_transfer" function
> > will prior to set "dw->rx and dws->rx_end" data, so this patch add
> > memory barrier to enable dw->rx and dw->rx_end to be visible and
> > solve to send SPI data error.

> So, this is apparently CPU-vs-device issue...

The commit message is a bit unclear but my read had been interrupt
handler racing with sending new data rather than an ordering issue with
writes to the hardware.


Attachments:
(No filename) (671.00 B)
signature.asc (499.00 B)
Download all attachments

2020-06-10 19:36:27

by Pavel Machek

[permalink] [raw]
Subject: Re: [PATCH 4.19 15/28] spi: dw: use "smp_mb()" to avoid sending spi data error

On Mon 2020-06-08 12:16:19, Mark Brown wrote:
> On Sun, Jun 07, 2020 at 10:09:11PM +0200, Pavel Machek wrote:
>
> > > Because of out-of-order execution about some CPU architecture,
> > > In this debug stage we find Completing spi interrupt enable ->
> > > prodrucing TXEI interrupt -> running "interrupt_transfer" function
> > > will prior to set "dw->rx and dws->rx_end" data, so this patch add
> > > memory barrier to enable dw->rx and dw->rx_end to be visible and
> > > solve to send SPI data error.
>
> > So, this is apparently CPU-vs-device issue...
>
> The commit message is a bit unclear but my read had been interrupt
> handler racing with sending new data rather than an ordering issue with
> writes to the hardware.

Aha, patch makes sense, then. Thanks for explanation!
Pavel
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


Attachments:
(No filename) (965.00 B)
signature.asc (188.00 B)
Digital signature
Download all attachments