This is a note to let you know that I've just added the patch titled
vmbus: don't return values for uninitalized channels
to my char-misc git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
in the char-misc-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 6712cc9c22117a8af9f3df272b4a44fd2e4201cd Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen(a)networkplumber.org>
Date: Mon, 20 Aug 2018 21:16:40 +0000
Subject: vmbus: don't return values for uninitalized channels
For unsupported device types, the vmbus channel ringbuffer is never
initialized, and therefore reading the sysfs files will return garbage
or cause a kernel OOPS.
Fixes: c2e5df616e1a ("vmbus: add per-channel sysfs info")
Signed-off-by: Stephen Hemminger <sthemmin(a)microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys(a)microsoft.com>
Cc: <stable(a)vger.kernel.org> # 4.15
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/hv/vmbus_drv.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index b1b548a21f91..c71cc857b649 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -1291,6 +1291,9 @@ static ssize_t vmbus_chan_attr_show(struct kobject *kobj,
if (!attribute->show)
return -EIO;
+ if (chan->state != CHANNEL_OPENED_STATE)
+ return -EINVAL;
+
return attribute->show(chan, buf);
}
--
2.18.0
This is a note to let you know that I've just added the patch titled
Tools: hv: Fix a bug in the key delete code
to my char-misc git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
in the char-misc-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 86503bd35dec0ce363e9fdbf5299927422ed3899 Mon Sep 17 00:00:00 2001
From: "K. Y. Srinivasan" <kys(a)microsoft.com>
Date: Fri, 10 Aug 2018 23:06:07 +0000
Subject: Tools: hv: Fix a bug in the key delete code
Fix a bug in the key delete code - the num_records range
from 0 to num_records-1.
Signed-off-by: K. Y. Srinivasan <kys(a)microsoft.com>
Reported-by: David Binderman <dcb314(a)hotmail.com>
Cc: <stable(a)vger.kernel.org>
Reviewed-by: Michael Kelley <mikelley(a)microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
tools/hv/hv_kvp_daemon.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/hv/hv_kvp_daemon.c b/tools/hv/hv_kvp_daemon.c
index dbf6e8bd98ba..bbb2a8ef367c 100644
--- a/tools/hv/hv_kvp_daemon.c
+++ b/tools/hv/hv_kvp_daemon.c
@@ -286,7 +286,7 @@ static int kvp_key_delete(int pool, const __u8 *key, int key_size)
* Found a match; just move the remaining
* entries up.
*/
- if (i == num_records) {
+ if (i == (num_records - 1)) {
kvp_file_info[pool].num_records--;
kvp_update_file(pool);
return 0;
--
2.18.0
This is a note to let you know that I've just added the patch titled
misc: ibmvsm: Fix wrong assignment of return code
to my char-misc git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
in the char-misc-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 c55e9318871cd06e4aa10f5023cc2dcdfbb08577 Mon Sep 17 00:00:00 2001
From: "Bryant G. Ly" <bryantly(a)linux.ibm.com>
Date: Mon, 6 Aug 2018 08:31:00 -0500
Subject: misc: ibmvsm: Fix wrong assignment of return code
Currently the assignment is flipped and rc is always 0.
Signed-off-by: Bryant G. Ly <bryantly(a)linux.ibm.com>
Fixes: 0eca353e7ae7 ("misc: IBM Virtual Management Channel Driver (VMC)")
Reviewed-by: Bradley Warrum <bwarrum(a)us.ibm.com>
Cc: stable <stable(a)vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/misc/ibmvmc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/misc/ibmvmc.c b/drivers/misc/ibmvmc.c
index 8f82bb9d11e2..b8aaa684c397 100644
--- a/drivers/misc/ibmvmc.c
+++ b/drivers/misc/ibmvmc.c
@@ -2131,7 +2131,7 @@ static int ibmvmc_init_crq_queue(struct crq_server_adapter *adapter)
retrc = plpar_hcall_norets(H_REG_CRQ,
vdev->unit_address,
queue->msg_token, PAGE_SIZE);
- retrc = rc;
+ rc = retrc;
if (rc == H_RESOURCE)
rc = ibmvmc_reset_crq_queue(adapter);
--
2.18.0
This is a note to let you know that I've just added the patch titled
android: binder: fix the race mmap and alloc_new_buf_locked
to my char-misc git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
in the char-misc-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 da1b9564e85b1d7baf66cbfabcab27e183a1db63 Mon Sep 17 00:00:00 2001
From: Minchan Kim <minchan(a)kernel.org>
Date: Thu, 23 Aug 2018 14:29:56 +0900
Subject: android: binder: fix the race mmap and alloc_new_buf_locked
There is RaceFuzzer report like below because we have no lock to close
below the race between binder_mmap and binder_alloc_new_buf_locked.
To close the race, let's use memory barrier so that if someone see
alloc->vma is not NULL, alloc->vma_vm_mm should be never NULL.
(I didn't add stable mark intentionallybecause standard android
userspace libraries that interact with binder (libbinder & libhwbinder)
prevent the mmap/ioctl race. - from Todd)
"
Thread interleaving:
CPU0 (binder_alloc_mmap_handler) CPU1 (binder_alloc_new_buf_locked)
===== =====
// drivers/android/binder_alloc.c
// #L718 (v4.18-rc3)
alloc->vma = vma;
// drivers/android/binder_alloc.c
// #L346 (v4.18-rc3)
if (alloc->vma == NULL) {
...
// alloc->vma is not NULL at this point
return ERR_PTR(-ESRCH);
}
...
// #L438
binder_update_page_range(alloc, 0,
(void *)PAGE_ALIGN((uintptr_t)buffer->data),
end_page_addr);
// In binder_update_page_range() #L218
// But still alloc->vma_vm_mm is NULL here
if (need_mm && mmget_not_zero(alloc->vma_vm_mm))
alloc->vma_vm_mm = vma->vm_mm;
Crash Log:
==================================================================
BUG: KASAN: null-ptr-deref in __atomic_add_unless include/asm-generic/atomic-instrumented.h:89 [inline]
BUG: KASAN: null-ptr-deref in atomic_add_unless include/linux/atomic.h:533 [inline]
BUG: KASAN: null-ptr-deref in mmget_not_zero include/linux/sched/mm.h:75 [inline]
BUG: KASAN: null-ptr-deref in binder_update_page_range+0xece/0x18e0 drivers/android/binder_alloc.c:218
Write of size 4 at addr 0000000000000058 by task syz-executor0/11184
CPU: 1 PID: 11184 Comm: syz-executor0 Not tainted 4.18.0-rc3 #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x16e/0x22c lib/dump_stack.c:113
kasan_report_error mm/kasan/report.c:352 [inline]
kasan_report+0x163/0x380 mm/kasan/report.c:412
check_memory_region_inline mm/kasan/kasan.c:260 [inline]
check_memory_region+0x140/0x1a0 mm/kasan/kasan.c:267
kasan_check_write+0x14/0x20 mm/kasan/kasan.c:278
__atomic_add_unless include/asm-generic/atomic-instrumented.h:89 [inline]
atomic_add_unless include/linux/atomic.h:533 [inline]
mmget_not_zero include/linux/sched/mm.h:75 [inline]
binder_update_page_range+0xece/0x18e0 drivers/android/binder_alloc.c:218
binder_alloc_new_buf_locked drivers/android/binder_alloc.c:443 [inline]
binder_alloc_new_buf+0x467/0xc30 drivers/android/binder_alloc.c:513
binder_transaction+0x125b/0x4fb0 drivers/android/binder.c:2957
binder_thread_write+0xc08/0x2770 drivers/android/binder.c:3528
binder_ioctl_write_read.isra.39+0x24f/0x8e0 drivers/android/binder.c:4456
binder_ioctl+0xa86/0xf34 drivers/android/binder.c:4596
vfs_ioctl fs/ioctl.c:46 [inline]
do_vfs_ioctl+0x154/0xd40 fs/ioctl.c:686
ksys_ioctl+0x94/0xb0 fs/ioctl.c:701
__do_sys_ioctl fs/ioctl.c:708 [inline]
__se_sys_ioctl fs/ioctl.c:706 [inline]
__x64_sys_ioctl+0x43/0x50 fs/ioctl.c:706
do_syscall_64+0x167/0x4b0 arch/x86/entry/common.c:290
entry_SYSCALL_64_after_hwframe+0x49/0xbe
"
Signed-off-by: Todd Kjos <tkjos(a)google.com>
Signed-off-by: Minchan Kim <minchan(a)kernel.org>
Reviewed-by: Martijn Coenen <maco(a)android.com>
Cc: stable <stable(a)vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/android/binder_alloc.c | 43 +++++++++++++++++++++++++++-------
1 file changed, 35 insertions(+), 8 deletions(-)
diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c
index 3f3b7b253445..64fd96eada31 100644
--- a/drivers/android/binder_alloc.c
+++ b/drivers/android/binder_alloc.c
@@ -332,6 +332,35 @@ static int binder_update_page_range(struct binder_alloc *alloc, int allocate,
return vma ? -ENOMEM : -ESRCH;
}
+
+static inline void binder_alloc_set_vma(struct binder_alloc *alloc,
+ struct vm_area_struct *vma)
+{
+ if (vma)
+ alloc->vma_vm_mm = vma->vm_mm;
+ /*
+ * If we see alloc->vma is not NULL, buffer data structures set up
+ * completely. Look at smp_rmb side binder_alloc_get_vma.
+ * We also want to guarantee new alloc->vma_vm_mm is always visible
+ * if alloc->vma is set.
+ */
+ smp_wmb();
+ alloc->vma = vma;
+}
+
+static inline struct vm_area_struct *binder_alloc_get_vma(
+ struct binder_alloc *alloc)
+{
+ struct vm_area_struct *vma = NULL;
+
+ if (alloc->vma) {
+ /* Look at description in binder_alloc_set_vma */
+ smp_rmb();
+ vma = alloc->vma;
+ }
+ return vma;
+}
+
static struct binder_buffer *binder_alloc_new_buf_locked(
struct binder_alloc *alloc,
size_t data_size,
@@ -348,7 +377,7 @@ static struct binder_buffer *binder_alloc_new_buf_locked(
size_t size, data_offsets_size;
int ret;
- if (alloc->vma == NULL) {
+ if (!binder_alloc_get_vma(alloc)) {
binder_alloc_debug(BINDER_DEBUG_USER_ERROR,
"%d: binder_alloc_buf, no vma\n",
alloc->pid);
@@ -723,9 +752,7 @@ int binder_alloc_mmap_handler(struct binder_alloc *alloc,
buffer->free = 1;
binder_insert_free_buffer(alloc, buffer);
alloc->free_async_space = alloc->buffer_size / 2;
- barrier();
- alloc->vma = vma;
- alloc->vma_vm_mm = vma->vm_mm;
+ binder_alloc_set_vma(alloc, vma);
mmgrab(alloc->vma_vm_mm);
return 0;
@@ -754,10 +781,10 @@ void binder_alloc_deferred_release(struct binder_alloc *alloc)
int buffers, page_count;
struct binder_buffer *buffer;
- BUG_ON(alloc->vma);
-
buffers = 0;
mutex_lock(&alloc->mutex);
+ BUG_ON(alloc->vma);
+
while ((n = rb_first(&alloc->allocated_buffers))) {
buffer = rb_entry(n, struct binder_buffer, rb_node);
@@ -900,7 +927,7 @@ int binder_alloc_get_allocated_count(struct binder_alloc *alloc)
*/
void binder_alloc_vma_close(struct binder_alloc *alloc)
{
- WRITE_ONCE(alloc->vma, NULL);
+ binder_alloc_set_vma(alloc, NULL);
}
/**
@@ -935,7 +962,7 @@ enum lru_status binder_alloc_free_page(struct list_head *item,
index = page - alloc->pages;
page_addr = (uintptr_t)alloc->buffer + index * PAGE_SIZE;
- vma = alloc->vma;
+ vma = binder_alloc_get_vma(alloc);
if (vma) {
if (!mmget_not_zero(alloc->vma_vm_mm))
goto err_mmget;
--
2.18.0
This is a note to let you know that I've just added the patch titled
mei: bus: need to unlink client before freeing
to my char-misc git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
in the char-misc-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 34f1166afd67f9f48a08c52f36180048908506a4 Mon Sep 17 00:00:00 2001
From: Tomas Winkler <tomas.winkler(a)intel.com>
Date: Mon, 27 Aug 2018 22:40:16 +0300
Subject: mei: bus: need to unlink client before freeing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In case a client fails to connect in mei_cldev_enable(), the
caller won't call the mei_cldev_disable leaving the client
in a linked stated. Upon driver unload the client structure
will be freed in mei_cl_bus_dev_release(), leaving a stale pointer
on a fail_list. This will eventually end up in crash
during power down flow in mei_cl_set_disonnected().
RIP: mei_cl_set_disconnected+0x5/0x260[mei]
Call trace:
mei_cl_all_disconnect+0x22/0x30
mei_reset+0x194/0x250
__synchronize_hardirq+0x43/0x50
_cond_resched+0x15/0x30
mei_me_intr_clear+0x20/0x100
mei_stop+0x76/0xb0
mei_me_shutdown+0x3f/0x80
pci_device_shutdown+0x34/0x60
kernel_restart+0x0e/0x30
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=200455
Fixes: 'c110cdb17148 ("mei: bus: make a client pointer always available")'
Cc: <stable(a)vger.kernel.org> 4.10+
Tested-by: Georg Müller <georgmueller(a)gmx.net>
Signed-off-by: Tomas Winkler <tomas.winkler(a)intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/misc/mei/bus.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/misc/mei/bus.c b/drivers/misc/mei/bus.c
index 13c6c9a2248a..fc3872fe7b25 100644
--- a/drivers/misc/mei/bus.c
+++ b/drivers/misc/mei/bus.c
@@ -521,17 +521,15 @@ int mei_cldev_enable(struct mei_cl_device *cldev)
cl = cldev->cl;
+ mutex_lock(&bus->device_lock);
if (cl->state == MEI_FILE_UNINITIALIZED) {
- mutex_lock(&bus->device_lock);
ret = mei_cl_link(cl);
- mutex_unlock(&bus->device_lock);
if (ret)
- return ret;
+ goto out;
/* update pointers */
cl->cldev = cldev;
}
- mutex_lock(&bus->device_lock);
if (mei_cl_is_connected(cl)) {
ret = 0;
goto out;
@@ -875,12 +873,13 @@ static void mei_cl_bus_dev_release(struct device *dev)
mei_me_cl_put(cldev->me_cl);
mei_dev_bus_put(cldev->bus);
+ mei_cl_unlink(cldev->cl);
kfree(cldev->cl);
kfree(cldev);
}
static const struct device_type mei_cl_device_type = {
- .release = mei_cl_bus_dev_release,
+ .release = mei_cl_bus_dev_release,
};
/**
--
2.18.0
This is a note to let you know that I've just added the patch titled
mei: bus: fix hw module get/put balance
to my char-misc git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
in the char-misc-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 69bf5313035926b0b6a6578de4f3168a8f5c19b8 Mon Sep 17 00:00:00 2001
From: Tomas Winkler <tomas.winkler(a)intel.com>
Date: Mon, 27 Aug 2018 22:40:15 +0300
Subject: mei: bus: fix hw module get/put balance
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In case the device is not connected it doesn't 'get'
hw module and hence should not 'put' it on disable.
Cc: <stable(a)vger.kernel.org> 4.16+
Fixes:'commit 257355a44b99 ("mei: make module referencing local to the bus.c")'
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=200455
Tested-by: Georg Müller <georgmueller(a)gmx.net>
Signed-off-by: Tomas Winkler <tomas.winkler(a)intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/misc/mei/bus.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/misc/mei/bus.c b/drivers/misc/mei/bus.c
index 7bba62a72921..13c6c9a2248a 100644
--- a/drivers/misc/mei/bus.c
+++ b/drivers/misc/mei/bus.c
@@ -616,9 +616,8 @@ int mei_cldev_disable(struct mei_cl_device *cldev)
if (err < 0)
dev_err(bus->dev, "Could not disconnect from the ME client\n");
-out:
mei_cl_bus_module_put(cldev);
-
+out:
/* Flush queues and remove any pending read */
mei_cl_flush_queues(cl, NULL);
mei_cl_unlink(cl);
--
2.18.0
This is a note to let you know that I've just added the patch titled
mei: ignore not found client in the enumeration
to my char-misc git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
in the char-misc-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 8d2d8935d30cc2acc57a3196dc10dfa8d5cbcdab Mon Sep 17 00:00:00 2001
From: Alexander Usyskin <alexander.usyskin(a)intel.com>
Date: Mon, 6 Aug 2018 17:47:33 +0300
Subject: mei: ignore not found client in the enumeration
Some of the ME clients are available only for BIOS operation and are
removed during hand off to an OS. However the removal is not instant.
A client may be visible on the client list when the mei driver requests
for enumeration, while the subsequent request for properties will be
answered with client not found error value. The default behavior
for an error is to perform client reset while this error is harmless and
the link reset should be prevented. This issue started to be visible due to
suspend/resume timing changes. Currently reported only on the Haswell
based system.
Fixes:
[33.564957] mei_me 0000:00:16.0: hbm: properties response: wrong status = 1 CLIENT_NOT_FOUND
[33.564978] mei_me 0000:00:16.0: mei_irq_read_handler ret = -71.
[33.565270] mei_me 0000:00:16.0: unexpected reset: dev_state = INIT_CLIENTS fw status = 1E000255 60002306 00000200 00004401 00000000 00000010
Cc: <stable(a)vger.kernel.org>
Reported-by: Heiner Kallweit <hkallweit1(a)gmail.com>
Signed-off-by: Alexander Usyskin <alexander.usyskin(a)intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler(a)intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/misc/mei/hbm.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/misc/mei/hbm.c b/drivers/misc/mei/hbm.c
index 09e233d4c0de..e56f3e72d57a 100644
--- a/drivers/misc/mei/hbm.c
+++ b/drivers/misc/mei/hbm.c
@@ -1161,15 +1161,18 @@ int mei_hbm_dispatch(struct mei_device *dev, struct mei_msg_hdr *hdr)
props_res = (struct hbm_props_response *)mei_msg;
- if (props_res->status) {
+ if (props_res->status == MEI_HBMS_CLIENT_NOT_FOUND) {
+ dev_dbg(dev->dev, "hbm: properties response: %d CLIENT_NOT_FOUND\n",
+ props_res->me_addr);
+ } else if (props_res->status) {
dev_err(dev->dev, "hbm: properties response: wrong status = %d %s\n",
props_res->status,
mei_hbm_status_str(props_res->status));
return -EPROTO;
+ } else {
+ mei_hbm_me_cl_add(dev, props_res);
}
- mei_hbm_me_cl_add(dev, props_res);
-
/* request property for the next client */
if (mei_hbm_prop_req(dev, props_res->me_addr + 1))
return -EIO;
--
2.18.0
On 9/11/18 4:20 PM, Thomas Gleixner wrote:
> On Tue, 11 Sep 2018, Boris Ostrovsky wrote:
>
>> For unprivileged Xen PV guests this is normal memory and ioremap will
>> not be able to properly map it.
>>
>> While at it, since ioremap may return NULL, add a test for pointer's
>> validity.
> I assume this goes back to very dead kernels, so that should go with a Cc
> stable, right?
>
Yes, I forgot to add those (and now I did), thanks for pointing this out.
It has to go at least all the way back to 4.13 since before
f7eaf6e00fd58 ("x86/boot: Move EISA setup to a separate file"), just by
luck, early_ioremap() worked for the guests.
-boris
Hi Doug and Jason,
Here are two patches that should probably land in the RC. The first one ensures
we don't index beyond the end of an array. The other is more subtle but arguably
more important. The bug it fixes results in incorrect IRQ bits to be set and the
result is we do not get an interrupt for an error and have to wait for another
interrupt to fire to see said error.
---
Dennis Dalessandro (1):
IB/hfi1: Ensure ucast_dlid access doesnt exceed bounds
Michael J. Ruhl (1):
IB/hfi1: set_intr_bits uses incorrect source for register modification
drivers/infiniband/hw/hfi1/chip.c | 2 +-
drivers/infiniband/ulp/opa_vnic/opa_vnic_encap.c | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
--
-Denny
With commit 0b3ce78e90fc ("of: cache phandle nodes to reduce cost of
of_find_node_by_phandle()"), a G3 PowerMac fails to boot. The root cause
is the DT for this system has no phandle properties when booted with
BootX. of_populate_phandle_cache() does not handle the case of no
phandles correctly. The problem is roundup_pow_of_two() for 0 is
undefined. The implementation subtracts 1 underflowing and then things
are in the weeds.
Fixes: 0b3ce78e90fc ("of: cache phandle nodes to reduce cost of of_find_node_by_phandle()")
Cc: stable(a)vger.kernel.org # 4.17+
Reported-by: Finn Thain <fthain(a)telegraphics.com.au>
Tested-by: Stan Johnson <userm57(a)yahoo.com>
Cc: Frank Rowand <frowand.list(a)gmail.com>
Cc: Benjamin Herrenschmidt <benh(a)kernel.crashing.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
---
Here's a formal patch of what Stan tested. Will send to Linus this week.
Rob
drivers/of/base.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/of/base.c b/drivers/of/base.c
index a055cd1ef96d..17ae594b7014 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -140,6 +140,9 @@ void of_populate_phandle_cache(void)
if (np->phandle && np->phandle != OF_PHANDLE_ILLEGAL)
phandles++;
+ if (!phandles)
+ goto out;
+
cache_entries = roundup_pow_of_two(phandles);
phandle_cache_mask = cache_entries - 1;
--
2.17.1
Hi all,
Three fixes that worth to have in the @stable, as we've hit them on v4.9
stable.
And for linux-next - adding lockdep asserts for line discipline changing
code, verifying that write ldisc sem will be held forthwith.
The last patch is optional and probably, timeout can be dropped for
read_lock(). I'll do it if everyone agrees.
Rong Chen, could you kindly re-run this version to see if the lockup
from v1 still happens? I wasn't able to reproduce it..
Thanks,
Dima
Changes since v2:
- Added reviewed-by tags
- Hopefully, fixed reported by 0-day issue.
- Added optional fix for wait_readers decrement
Changes since v1:
- Added tested-by/reported-by tags
- Dropped 3/4 (locking tty pair for lockdep sake),
Because of that - not adding lockdep_assert_held() in tty_ldisc_open()
- Added 4/4 cleanup to inc tty->count only on success of
tty_ldisc_reinit()
- lock ldisc without (5*HZ) timeout in tty_reopen()
v1 link:
lkml.kernel.org/r/<20180829022353.23568-1-dima(a)arista.com>
Huuge cc list:
Cc: Daniel Axtens <dja(a)axtens.net>
Cc: Dmitry Vyukov <dvyukov(a)google.com>
Cc: Michael Neuling <mikey(a)neuling.org>
Cc: Mikulas Patocka <mpatocka(a)redhat.com>
Cc: Nathan March <nathan(a)gt.net>
Cc: Pasi Kärkkäinen <pasik(a)iki.fi>
Cc: Peter Hurley <peter(a)hurleysoftware.com>
Cc: "Rong, Chen" <rong.a.chen(a)intel.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work(a)gmail.com>
Cc: Tan Xiaojun <tanxiaojun(a)huawei.com>
Cc: Tetsuo Handa <penguin-kernel(a)I-love.SAKURA.ne.jp>
(please, ignore if I Cc'ed you mistakenly)
Dmitry Safonov (6):
tty: Drop tty->count on tty_reopen() failure
tty/ldsem: Update waiter->task before waking up reader
tty: Hold tty_ldisc_lock() during tty_reopen()
tty/lockdep: Add ldisc_sem asserts
tty: Simplify tty->count math in tty_reopen()
tty/ldsem: Decrement wait_readers on timeouted down_read()
drivers/tty/tty_io.c | 12 ++++++++----
drivers/tty/tty_ldisc.c | 5 +++++
drivers/tty/tty_ldsem.c | 5 ++++-
3 files changed, 17 insertions(+), 5 deletions(-)
--
2.13.6
Hi,
If you have photos for editing, please send email to: hansrekan(a)outlook.com
We have 12 in house image editors and we can help you for cutting out your
photos, or path the photos.
Includes retouching if needed.
Used for products photos or portrait photos, catalog photos.
You may drop us one photo, we can send you the testing work.
Thanks,
Aaron Williams
Email: hansrekan(a)outlook.com
Hi,
If you have photos for editing, please send email to: hansrekan(a)outlook.com
We have 12 in house image editors and we can help you for cutting out your
photos, or path the photos.
Includes retouching if needed.
Used for products photos or portrait photos, catalog photos.
You may drop us one photo, we can send you the testing work.
Thanks,
Aaron Williams
Email: hansrekan(a)outlook.com
Hi,
If you have photos for editing, please send email to: hansrekan(a)outlook.com
We have 12 in house image editors and we can help you for cutting out your
photos, or path the photos.
Includes retouching if needed.
Used for products photos or portrait photos, catalog photos.
You may drop us one photo, we can send you the testing work.
Thanks,
Aaron Williams
Email: hansrekan(a)outlook.com
Two fixes for potential and real issues.
Looks worth to have in stables as we've hit it on v4.9 stable.
And for linux-next - adding lockdep asserts for line discipline changing
code, verifying that write ldisc sem will be held forthwith.
I couldn't verify that holding write lock fixes the issue as we've hit
it only once and I've failed in reproducing it.
But searching in lkml, Cc'ing here people who probably had the same
crash (and in hope someone of them could give tested-by):
Cc: Daniel Axtens <dja(a)axtens.net>
Cc: Dmitry Vyukov <dvyukov(a)google.com>
Cc: Michael Neuling <mikey(a)neuling.org>
Cc: Mikulas Patocka <mpatocka(a)redhat.com>
Cc: Pasi Kärkkäinen <pasik(a)iki.fi>
Cc: Peter Hurley <peter(a)hurleysoftware.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work(a)gmail.com>
Cc: Tan Xiaojun <tanxiaojun(a)huawei.com>
(please, ignore if I Cc'ed you mistakenly)
Dmitry Safonov (4):
tty: Drop tty->count on tty_reopen() failure
tty: Hold tty_ldisc_lock() during tty_reopen()
tty: Lock tty pair in tty_init_dev()
tty/lockdep: Add ldisc_sem asserts
drivers/tty/tty_io.c | 21 +++++++++++++++------
drivers/tty/tty_ldisc.c | 12 ++++++++----
include/linux/tty.h | 4 ++++
3 files changed, 27 insertions(+), 10 deletions(-)
--
2.13.6
This is a note to let you know that I've just added the patch titled
Revert "cdc-acm: implement put_char() and flush_chars()"
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 df3aa13c7bbb307e172c37f193f9a7aa058d4739 Mon Sep 17 00:00:00 2001
From: Oliver Neukum <oneukum(a)suse.com>
Date: Wed, 5 Sep 2018 17:56:46 +0200
Subject: Revert "cdc-acm: implement put_char() and flush_chars()"
This reverts commit a81cf9799ad7299b03a4dff020d9685f9ac5f3e0.
The patch causes a regression, which I cannot find the reason for.
So let's revert for now, as a revert hurts only performance.
Original report:
I was trying to resolve the problem with Oliver but we don't get any conclusion
for 5 months, so I am now sending this to mail list and cdc_acm authors.
I am using simple request-response protocol to obtain the boiller parameters
in constant intervals.
A simple one transaction is:
1. opening the /dev/ttyACM0
2. sending the following 10-bytes request to the device:
unsigned char req[] = {0x02, 0xfe, 0x01, 0x05, 0x08, 0x02, 0x01, 0x69, 0xab, 0x03};
3. reading response (frame of 74 bytes length).
4. closing the descriptor
I am doing this transaction with 5 seconds intervals.
Before the bad commit everything was working correctly: I've got a requests and
a responses in a timely manner.
After the bad commit more time I am using the kernel module, more problems I have.
The graph [2] is showing the problem.
As you can see after module load all seems fine but after about 30 minutes I've got
a plenty of EAGAINs when doing read()'s and trying to read back the data.
When I rmmod and insmod the cdc_acm module again, then the situation is starting
over again: running ok shortly after load, and more time it is running, more EAGAINs
I have when calling read().
As a bonus I can see the problem on the device itself:
The device is configured as you can see here on this screen [3].
It has two transmision LEDs: TX and RX. Blink duration is set for 100ms.
This is a recording before the bad commit when all is working fine: [4]
And this is with the bad commit: [5]
As you can see the TX led is blinking wrongly long (indicating transmission?)
and I have problems doing read() calls (EAGAIN).
Reported-by: Mariusz Bialonczyk <manio(a)skyboo.net>
Signed-off-by: Oliver Neukum <oneukum(a)suse.com>
Fixes: a81cf9799ad7 ("cdc-acm: implement put_char() and flush_chars()")
Cc: stable <stable(a)vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/class/cdc-acm.c | 73 -------------------------------------
drivers/usb/class/cdc-acm.h | 1 -
2 files changed, 74 deletions(-)
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index 27346d69f393..f9b40a9dc4d3 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -780,20 +780,9 @@ static int acm_tty_write(struct tty_struct *tty,
}
if (acm->susp_count) {
- if (acm->putbuffer) {
- /* now to preserve order */
- usb_anchor_urb(acm->putbuffer->urb, &acm->delayed);
- acm->putbuffer = NULL;
- }
usb_anchor_urb(wb->urb, &acm->delayed);
spin_unlock_irqrestore(&acm->write_lock, flags);
return count;
- } else {
- if (acm->putbuffer) {
- /* at this point there is no good way to handle errors */
- acm_start_wb(acm, acm->putbuffer);
- acm->putbuffer = NULL;
- }
}
stat = acm_start_wb(acm, wb);
@@ -804,66 +793,6 @@ static int acm_tty_write(struct tty_struct *tty,
return count;
}
-static void acm_tty_flush_chars(struct tty_struct *tty)
-{
- struct acm *acm = tty->driver_data;
- struct acm_wb *cur;
- int err;
- unsigned long flags;
-
- spin_lock_irqsave(&acm->write_lock, flags);
-
- cur = acm->putbuffer;
- if (!cur) /* nothing to do */
- goto out;
-
- acm->putbuffer = NULL;
- err = usb_autopm_get_interface_async(acm->control);
- if (err < 0) {
- cur->use = 0;
- acm->putbuffer = cur;
- goto out;
- }
-
- if (acm->susp_count)
- usb_anchor_urb(cur->urb, &acm->delayed);
- else
- acm_start_wb(acm, cur);
-out:
- spin_unlock_irqrestore(&acm->write_lock, flags);
- return;
-}
-
-static int acm_tty_put_char(struct tty_struct *tty, unsigned char ch)
-{
- struct acm *acm = tty->driver_data;
- struct acm_wb *cur;
- int wbn;
- unsigned long flags;
-
-overflow:
- cur = acm->putbuffer;
- if (!cur) {
- spin_lock_irqsave(&acm->write_lock, flags);
- wbn = acm_wb_alloc(acm);
- if (wbn >= 0) {
- cur = &acm->wb[wbn];
- acm->putbuffer = cur;
- }
- spin_unlock_irqrestore(&acm->write_lock, flags);
- if (!cur)
- return 0;
- }
-
- if (cur->len == acm->writesize) {
- acm_tty_flush_chars(tty);
- goto overflow;
- }
-
- cur->buf[cur->len++] = ch;
- return 1;
-}
-
static int acm_tty_write_room(struct tty_struct *tty)
{
struct acm *acm = tty->driver_data;
@@ -1987,8 +1916,6 @@ static const struct tty_operations acm_ops = {
.cleanup = acm_tty_cleanup,
.hangup = acm_tty_hangup,
.write = acm_tty_write,
- .put_char = acm_tty_put_char,
- .flush_chars = acm_tty_flush_chars,
.write_room = acm_tty_write_room,
.ioctl = acm_tty_ioctl,
.throttle = acm_tty_throttle,
diff --git a/drivers/usb/class/cdc-acm.h b/drivers/usb/class/cdc-acm.h
index eacc116e83da..ca06b20d7af9 100644
--- a/drivers/usb/class/cdc-acm.h
+++ b/drivers/usb/class/cdc-acm.h
@@ -96,7 +96,6 @@ struct acm {
unsigned long read_urbs_free;
struct urb *read_urbs[ACM_NR];
struct acm_rb read_buffers[ACM_NR];
- struct acm_wb *putbuffer; /* for acm_tty_put_char() */
int rx_buflimit;
spinlock_t read_lock;
u8 *notification_buffer; /* to reassemble fragmented notifications */
--
2.18.0
We need that to adjust the len of the 2nd transfer (called data in
spi-mem) if it's too long to fit in a SPI message or SPI transfer.
Fixes: c36ff266dc82 ("spi: Extend the core to ease integration of SPI memory controllers")
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Chuanhua Han <chuanhua.han(a)nxp.com>
Reviewed-by: Boris Brezillon <boris.brezillon(a)bootlin.com>
---
Changes in v5:
-Add the validation check after the op->data.nbytes assignment
-Assign the "len" variable after defining it
-Remove the brackets on both sides of "opt-> data.nbytes"
Changes in v4:
-Rename variable name "opcode_addr_dummy_sum" to "len"
-The comparison of "spi_max_message_size(mem->spi)" and "len" was removed
-Adjust their order when comparing the sizes of "spi_max_message_size(mem->spi)" and "len"
-Changing the "unsigned long" type in the code to "size_t"
Changes in v3:
-Rename variable name "val" to "opcode_addr_dummy_sum"
-Place the legitimacy of the transfer size(i.e., "spi_max_message_size(mem->spi)" and
"opcode_addr_dummy_sum") into "if (! ctlr - > mem_ops | |! ctlr-> mem_ops->exec_op) {"
structure and add "spi_max_transfer_size(mem->spi) and opcode_addr_dummy_sum"
-Adjust the formatting alignment of the code
-"(unsigned long)op->data.nbytes" was modified to "(unsigned long)(op->data.nbytes)"
Changes in v2:
-Place the adjusted transfer bytes code in spi_mem_adjust_op_size() and check
spi_max_message_size(mem->spi) value before subtracting opcode, addr and dummy bytes
-Change the code from fsl-espi controller to generic code(The adjustment of spi transmission
length was originally modified in the "drivers/spi/spi-fsl-espi.c" file, and now the adjustment
of transfer length is made in the "drivers/spi/spi-mem.c" file)
drivers/spi/spi-mem.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/drivers/spi/spi-mem.c b/drivers/spi/spi-mem.c
index e43842c..eb72dba 100644
--- a/drivers/spi/spi-mem.c
+++ b/drivers/spi/spi-mem.c
@@ -346,10 +346,25 @@ EXPORT_SYMBOL_GPL(spi_mem_get_name);
int spi_mem_adjust_op_size(struct spi_mem *mem, struct spi_mem_op *op)
{
struct spi_controller *ctlr = mem->spi->controller;
+ size_t len;
+
+ len = sizeof(op->cmd.opcode) + op->addr.nbytes + op->dummy.nbytes;
if (ctlr->mem_ops && ctlr->mem_ops->adjust_op_size)
return ctlr->mem_ops->adjust_op_size(mem, op);
+ if (!ctlr->mem_ops || !ctlr->mem_ops->exec_op) {
+ if (len > spi_max_transfer_size(mem->spi))
+ return -EINVAL;
+
+ op->data.nbytes = min3((size_t)op->data.nbytes,
+ spi_max_transfer_size(mem->spi),
+ spi_max_message_size(mem->spi) -
+ len);
+ if (!op->data.nbytes)
+ return -EINVAL;
+ }
+
return 0;
}
EXPORT_SYMBOL_GPL(spi_mem_adjust_op_size);
--
2.7.4
This is the start of the stable review cycle for the 4.18.7 release.
There are 145 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 Sep 9 21:08:26 UTC 2018.
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.18.7-rc1…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.18.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 4.18.7-rc1
James Morse <james.morse(a)arm.com>
arm64: mm: always enable CONFIG_HOLES_IN_ZONE
Rafael J. Wysocki <rafael.j.wysocki(a)intel.com>
cpuidle: menu: Retain tick when shallow state is selected
Jan Kara <jack(a)suse.cz>
udf: Fix mounting of Win7 created UDF filesystems
Jeremy Cline <jcline(a)redhat.com>
fs/quota: Fix spectre gadget in do_quotactl
Horia Geantă <horia.geanta(a)nxp.com>
crypto: caam/qi - fix error path in xts setkey
Horia Geantă <horia.geanta(a)nxp.com>
crypto: caam/jr - fix descriptor DMA unmapping
Horia Geantă <horia.geanta(a)nxp.com>
crypto: caam - fix DMA mapping direction for RSA forms 2 & 3
Ard Biesheuvel <ard.biesheuvel(a)linaro.org>
crypto: arm64/sm4-ce - check for the right CPU feature bit
Dave Watson <davejwatson(a)fb.com>
crypto: aesni - Use unaligned loads from gcm_context_data
Ondrej Mosnacek <omosnace(a)redhat.com>
crypto: vmx - Fix sleep-in-atomic bugs
Adrian Hunter <adrian.hunter(a)intel.com>
perf auxtrace: Fix queue resize
Dan Williams <dan.j.williams(a)intel.com>
mm, dev_pagemap: Do not clear ->mapping on final put
Eddie.Horng <eddie.horng(a)mediatek.com>
cap_inode_getsecurity: use d_find_any_alias() instead of d_find_alias()
Masahiro Yamada <yamada.masahiro(a)socionext.com>
kconfig: fix "Can't open ..." in parallel build
Shan Hai <shan.hai(a)oracle.com>
bcache: release dc->writeback_lock properly in bch_writeback_thread()
Vishal Verma <vishal.l.verma(a)intel.com>
libnvdimm: fix ars_status output length calculation
Keith Busch <keith.busch(a)intel.com>
libnvdimm: Use max contiguous area for namespace size
Christian Brauner <christian(a)brauner.io>
getxattr: use correct xattr length
Mikulas Patocka <mpatocka(a)redhat.com>
udlfb: set line_length in dlfb_ops_set_par
Mikulas Patocka <mpatocka(a)redhat.com>
udlfb: handle allocation failure
Mikulas Patocka <mpatocka(a)redhat.com>
udlfb: make a local copy of fb_ops
Mikulas Patocka <mpatocka(a)redhat.com>
udlfb: set optimal write delay
Mikulas Patocka <mpatocka(a)redhat.com>
udlfb: don't switch if we are switching to the same videomode
Mikulas Patocka <mpatocka(a)redhat.com>
udlfb: fix display corruption of the last line
Mikulas Patocka <mpatocka(a)redhat.com>
udlfb: fix semaphore value leak
Mikulas Patocka <mpatocka(a)redhat.com>
fb: fix lost console when the user unplugs a USB adapter
Vignesh R <vigneshr(a)ti.com>
pwm: tiehrpwm: Fix disabling of output of PWMs
Vignesh R <vigneshr(a)ti.com>
pwm: tiehrpwm: Don't use emulation mode bits to control PWM output
Richard Weinberger <richard(a)nod.at>
ubifs: Fix synced_i_size calculation for xattr inodes
Richard Weinberger <richard(a)nod.at>
ubifs: Fix directory size calculation for symlinks
Richard Weinberger <richard(a)nod.at>
ubifs: xattr: Don't operate on deleted inodes
Richard Weinberger <richard(a)nod.at>
ubifs: Check data node size before truncate
Richard Weinberger <richard(a)nod.at>
Revert "UBIFS: Fix potential integer overflow in allocation"
Richard Weinberger <richard(a)nod.at>
ubifs: Fix memory leak in lprobs self-check
Jann Horn <jannh(a)google.com>
userns: move user access out of the mutex
Jann Horn <jannh(a)google.com>
sys: don't hold uts_sem while accessing userspace memory
Jacob Pan <jacob.jun.pan(a)linux.intel.com>
iommu/vt-d: Fix dev iotlb pfsid use
Jacob Pan <jacob.jun.pan(a)linux.intel.com>
iommu/vt-d: Add definitions for PFSID
Dmitry Osipenko <digetx(a)gmail.com>
iommu/ipmmu-vmsa: Don't register as BUS IOMMU if machine doesn't have IPMMU-VMSA
Peter Zijlstra <peterz(a)infradead.org>
mm/tlb: Remove tlb_remove_table() non-concurrent condition
David Rivshin <DRivshin(a)allworx.com>
pwm: omap-dmtimer: Return -EPROBE_DEFER if no dmtimer platform data
Roger Quadros <rogerq(a)ti.com>
ARM: dts: am57xx-idk: Enable dual role for USB2 port
Jon Hunter <jonathanh(a)nvidia.com>
ARM: tegra: Fix Tegra30 Cardhu PCA954x reset
Trond Myklebust <trondmy(a)gmail.com>
NFSv4: Fix a sleep in atomic context in nfs4_callback_sequence()
Trond Myklebust <trondmy(a)gmail.com>
NFSv4: Fix locking in pnfs_generic_recover_commit_reqs
Bill Baker <Bill.Baker(a)Oracle.com>
NFSv4 client live hangs after live data migration recovery
Amir Goldstein <amir73il(a)gmail.com>
nfsd: fix leaked file lock with nfs exported overlayfs
Dan Carpenter <dan.carpenter(a)oracle.com>
pnfs/blocklayout: off by one in bl_map_stripe()
Maciej S. Szmigiero <mail(a)maciej.szmigiero.name>
block, bfq: return nbytes and not zero from struct cftype .write() method
Max Filippov <jcmvbkbc(a)gmail.com>
xtensa: increase ranges in ___invalidate_{i,d}cache_all
Max Filippov <jcmvbkbc(a)gmail.com>
xtensa: limit offsets in __loop_cache_{all,page}
Paul Mackerras <paulus(a)ozlabs.org>
KVM: PPC: Book3S: Fix guest DMA when guest partially backed by THP pages
Paolo Bonzini <pbonzini(a)redhat.com>
KVM: VMX: fixes for vmentry_l1d_flush module parameter
Hans de Goede <hdegoede(a)redhat.com>
i2c: designware: Re-init controllers with pm_disabled set on resume
Lihua Yao <ylhuajnu(a)163.com>
ALSA: ac97: fix unbalanced pm_runtime_enable
Lihua Yao <ylhuajnu(a)163.com>
ALSA: ac97: fix check of pm_runtime_get_sync failure
Lihua Yao <ylhuajnu(a)163.com>
ALSA: ac97: fix device initialization in the compat layer
zhangyi (F) <yi.zhang(a)huawei.com>
PM / sleep: wakeup: Fix build error caused by missing SRCU support
Henry Willard <henry.willard(a)oracle.com>
cpufreq: governor: Avoid accessing invalid governor_data
Rafael J. Wysocki <rafael.j.wysocki(a)intel.com>
cpuidle: menu: Handle stopped tick more aggressively
Rafael J. Wysocki <rafael.j.wysocki(a)intel.com>
sched: idle: Avoid retaining the tick when it has been stopped
Peter Kalauskas <peskal(a)google.com>
drivers/block/zram/zram_drv.c: fix bug storing backing_dev
Rafael J. Wysocki <rafael.j.wysocki(a)intel.com>
ACPICA: Clear status of all events when entering sleep states
Erik Schmauss <erik.schmauss(a)intel.com>
ACPICA: AML Parser: skip opcodes that open a scope upon parse failure
Amir Goldstein <amir73il(a)gmail.com>
ovl: fix wrong use of impure dir cache in ovl_iterate()
Rafael David Tinoco <rafael.tinoco(a)linaro.org>
mfd: hi655x: Fix regmap area declared size for hi655x
Steven Rostedt (VMware) <rostedt(a)goodmis.org>
uprobes: Use synchronize_rcu() not synchronize_sched()
Kamalesh Babulal <kamalesh(a)linux.vnet.ibm.com>
livepatch: Validate module/old func name length
Steven Rostedt (VMware) <rostedt(a)goodmis.org>
printk/tracing: Do not trace printk_nmi_enter()
Steven Rostedt (VMware) <rostedt(a)goodmis.org>
tracing/blktrace: Fix to allow setting same value
Steven Rostedt (VMware) <rostedt(a)goodmis.org>
tracing: Do not call start/stop() functions when tracing_on does not change
Johan Hovold <johan(a)kernel.org>
rtc: omap: fix potential crash on power off
Johan Hovold <johan(a)kernel.org>
rtc: omap: fix resource leak in registration error path
Nadav Amit <namit(a)vmware.com>
vmw_balloon: fix VMCI use when balloon built into kernel
Nadav Amit <namit(a)vmware.com>
vmw_balloon: VMCI_DOORBELL_SET does not check status
Nadav Amit <namit(a)vmware.com>
vmw_balloon: do not use 2MB without batching
Nadav Amit <namit(a)vmware.com>
vmw_balloon: fix inflation of 64-bit GFNs
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
eventpoll.h: wrap casts in () properly
Chanwoo Choi <cw00.choi(a)samsung.com>
extcon: Release locking when sending the notification of connector state
Lars-Peter Clausen <lars(a)metafoo.de>
iio: ad9523: Fix return value for ad952x_store()
Lars-Peter Clausen <lars(a)metafoo.de>
iio: ad9523: Fix displayed phase
Gustavo A. R. Silva <gustavo(a)embeddedor.com>
iio: sca3000: Fix missing return in switch
Dexuan Cui <decui(a)microsoft.com>
Drivers: hv: vmbus: Reset the channel callback in vmbus_onoffer_rescind()
Dexuan Cui <decui(a)microsoft.com>
Drivers: hv: vmbus: Fix the offer_in_progress in vmbus_process_offer()
Tycho Andersen <tycho(a)tycho.ws>
uart: fix race between uart_put_char() and uart_shutdown()
Mikulas Patocka <mpatocka(a)redhat.com>
dm writecache: fix a crash due to reading past end of dirty_bitmap
Mikulas Patocka <mpatocka(a)redhat.com>
dm crypt: don't decrease device limits
Ilya Dryomov <idryomov(a)gmail.com>
dm cache metadata: set dirty on all cache blocks after a crash
Mike Snitzer <snitzer(a)redhat.com>
dm cache metadata: save in-core policy_hint_size to on-disk superblock
Hou Tao <houtao1(a)huawei.com>
dm thin: stop no_space_timeout worker when switching to write-mode
Mikulas Patocka <mpatocka(a)redhat.com>
dm integrity: change 'suspending' variable from bool to int
Tomas Bortoli <tomasbortoli(a)gmail.com>
net/9p/trans_fd.c: fix race-condition by flushing workqueue before the kfree()
Tomas Bortoli <tomasbortoli(a)gmail.com>
net/9p/client.c: version pointer uninitialized
jiangyiwen <jiangyiwen(a)huawei.com>
9p/virtio: fix off-by-one error in sg list bounds check
piaojun <piaojun(a)huawei.com>
fs/9p/xattr.c: catch the error of p9_client_clunk when setting xattr failed
Tomas Bortoli <tomasbortoli(a)gmail.com>
9p: fix multiple NULL-pointer-dereferences
Bart Van Assche <bart.vanassche(a)wdc.com>
RDMA/rxe: Set wqe->status correctly if an unexpected response is received
Bart Van Assche <bart.vanassche(a)wdc.com>
ib_srpt: Fix a use-after-free in __srpt_close_all_ch()
Bart Van Assche <bart.vanassche(a)wdc.com>
ib_srpt: Fix a use-after-free in srpt_close_ch()
Leon Romanovsky <leon(a)kernel.org>
RDMA/mlx5: Fix shift overflow in mlx5_ib_create_wq
Jason Gunthorpe <jgg(a)ziepe.ca>
overflow.h: Add arithmetic shift helper
Bart Van Assche <bart.vanassche(a)wdc.com>
IB/srpt: Support HCAs with more than two ports
Bart Van Assche <bart.vanassche(a)wdc.com>
IB/srpt: Fix srpt_cm_req_recv() error path (2/2)
Bart Van Assche <bart.vanassche(a)wdc.com>
IB/srpt: Fix srpt_cm_req_recv() error path (1/2)
Jason Gunthorpe <jgg(a)ziepe.ca>
IB/mlx5: Fix leaking stack memory to userspace
Parav Pandit <parav(a)mellanox.com>
IB/mlx5: Honor cnt_set_id_valid flag instead of set_id
Frederic Barrat <fbarrat(a)linux.ibm.com>
ocxl: Fix page fault handler in case of fault on dying process
Vaibhav Jain <vaibhav(a)linux.ibm.com>
cxl: Fix wrong comparison in cxl_adapter_context_get()
Benjamin Herrenschmidt <benh(a)kernel.crashing.org>
powerpc/powernv/pci: Work around races in PCI bridge enabling
Luke Dashjr <luke(a)dashjr.org>
powerpc64/ftrace: Include ftrace.h needed for enable/disable calls
Christophe Leroy <christophe.leroy(a)c-s.fr>
powerpc/nohash: fix pte_access_permitted()
Ram Pai <linuxram(a)us.ibm.com>
powerpc/pkeys: Preallocate execute-only key
Ram Pai <linuxram(a)us.ibm.com>
powerpc/pkeys: Fix calculation of total pkeys.
Ram Pai <linuxram(a)us.ibm.com>
powerpc/pkeys: Save the pkey registers before fork
Ram Pai <linuxram(a)us.ibm.com>
powerpc/pkeys: key allocation/deallocation must not change pkey registers
Ram Pai <linuxram(a)us.ibm.com>
powerpc/pkeys: Deny read/write/execute by default
Ram Pai <linuxram(a)us.ibm.com>
powerpc/pkeys: Give all threads control of their key permissions
Mahesh Salgaonkar <mahesh(a)linux.vnet.ibm.com>
powerpc/pseries: Fix endianness while restoring of r3 in MCE handler.
Nicholas Piggin <npiggin(a)gmail.com>
powerpc/64s: Fix page table fragment refcount race vs speculative references
Hari Bathini <hbathini(a)linux.ibm.com>
powerpc/fadump: handle crash memory ranges array index overflow
Yannik Sembritzki <yannik(a)sembritzki.me>
Fix kexec forbidding kernels signed with keys in the secondary keyring to boot
Yannik Sembritzki <yannik(a)sembritzki.me>
Replace magic for trusting the secondary keyring with #define
Gustavo A. R. Silva <gustavo(a)embeddedor.com>
mailbox: xgene-slimpro: Fix potential NULL pointer dereference
Javier Martinez Canillas <javierm(a)redhat.com>
media: Revert "[media] tvp5150: fix pad format frame height"
Daniel Mack <daniel(a)zonque.org>
libertas: fix suspend and resume for SDIO connected cards
Michel Dänzer <michel.daenzer(a)amd.com>
dma-buf: Move BUG_ON from _add_shared_fence to _add_shared_inplace
John Johansen <john.johansen(a)canonical.com>
apparmor: fix bad debug check in apparmor_secid_to_secctx()
Bart Van Assche <bart.vanassche(a)wdc.com>
block: Ensure that a request queue is dissociated from the cgroup controller
Bart Van Assche <bart.vanassche(a)wdc.com>
block: Introduce blk_exit_queue()
Bart Van Assche <bart.vanassche(a)wdc.com>
blkcg: Introduce blkg_root_lookup()
Ming Lei <ming.lei(a)redhat.com>
block: really disable runtime-pm for blk-mq
xiao jin <jin.xiao(a)intel.com>
block: blk_init_allocated_queue() set q->fq as NULL in the fail case
Mikulas Patocka <mpatocka(a)redhat.com>
block: fix infinite loop if the device loses discard capability
Markus Stockhausen <stockhausen(a)collogia.de>
readahead: stricter check for bdi io_pages
Sergei Shtylyov <sergei.shtylyov(a)cogentembedded.com>
mmc: renesas_sdhi_internal_dmac: fix #define RST_RESERVED_BITS
Sergei Shtylyov <sergei.shtylyov(a)cogentembedded.com>
mmc: renesas_sdhi_internal_dmac: mask DMAC interrupts
Adrian Hunter <adrian.hunter(a)intel.com>
mmc: block: Fix unsupported parallel dispatch of requests
Janek Kotas <jank(a)cadence.com>
spi: cadence: Change usleep_range() to udelay(), for atomic context
Krzysztof Kozlowski <krzk(a)kernel.org>
spi: spi-fsl-dspi: Fix imprecise abort on VF500 during probe
Mika Westerberg <mika.westerberg(a)linux.intel.com>
spi: pxa2xx: Add support for Intel Ice Lake
Bartosz Golaszewski <bgolaszewski(a)baylibre.com>
spi: davinci: fix a NULL pointer dereference
Chirantan Ekbote <chirantan(a)chromium.org>
9p/net: Fix zero-copy path in the 9p virtio transport
Alexander Aring <aring(a)mojatatu.com>
net: mac802154: tx: expand tailroom if necessary
Alexander Aring <aring(a)mojatatu.com>
net: 6lowpan: fix reserved space for single frames
Boqun Feng <boqun.feng(a)gmail.com>
rcu: Make expedited GPs handle CPU 0 being offline
-------------
Diffstat:
Makefile | 4 +-
arch/alpha/kernel/osf_sys.c | 51 +++++----
arch/arm/boot/dts/am571x-idk.dts | 4 -
arch/arm/boot/dts/am572x-idk-common.dtsi | 4 -
arch/arm/boot/dts/am57xx-idk-common.dtsi | 7 +-
arch/arm/boot/dts/tegra30-cardhu.dtsi | 1 +
arch/arm64/Kconfig | 1 -
arch/arm64/crypto/sm4-ce-glue.c | 2 +-
arch/powerpc/include/asm/fadump.h | 3 -
arch/powerpc/include/asm/nohash/pgtable.h | 9 +-
arch/powerpc/include/asm/pkeys.h | 11 --
arch/powerpc/kernel/fadump.c | 91 +++++++++++++---
arch/powerpc/kernel/process.c | 1 +
arch/powerpc/kvm/book3s_hv.c | 1 +
arch/powerpc/mm/mmu_context_book3s64.c | 8 +-
arch/powerpc/mm/mmu_context_iommu.c | 17 +--
arch/powerpc/mm/pgtable-book3s64.c | 17 +--
arch/powerpc/mm/pkeys.c | 134 ++++++++----------------
arch/powerpc/platforms/powernv/pci-ioda.c | 37 +++++++
arch/powerpc/platforms/pseries/ras.c | 2 +-
arch/sparc/kernel/sys_sparc_32.c | 22 ++--
arch/sparc/kernel/sys_sparc_64.c | 20 ++--
arch/x86/crypto/aesni-intel_asm.S | 66 ++++++------
arch/x86/kernel/kexec-bzimage64.c | 2 +-
arch/x86/kvm/vmx.c | 26 +++--
arch/xtensa/include/asm/cacheasm.h | 69 +++++++-----
block/bfq-cgroup.c | 3 +-
block/blk-core.c | 61 ++++++-----
block/blk-lib.c | 10 ++
block/blk-sysfs.c | 15 +++
block/blk.h | 1 +
certs/system_keyring.c | 3 +-
crypto/asymmetric_keys/pkcs7_key_type.c | 2 +-
drivers/acpi/acpica/hwsleep.c | 11 +-
drivers/acpi/acpica/psloop.c | 17 +--
drivers/block/zram/zram_drv.c | 7 +-
drivers/cpufreq/cpufreq_governor.c | 12 ++-
drivers/cpuidle/governors/menu.c | 47 ++++++---
drivers/crypto/caam/caamalg_qi.c | 6 +-
drivers/crypto/caam/caampkc.c | 20 ++--
drivers/crypto/caam/jr.c | 3 +-
drivers/crypto/vmx/aes_cbc.c | 30 +++---
drivers/crypto/vmx/aes_xts.c | 21 ++--
drivers/dma-buf/reservation.c | 6 +-
drivers/extcon/extcon.c | 3 +-
drivers/hv/channel.c | 40 ++++---
drivers/hv/channel_mgmt.c | 10 +-
drivers/i2c/busses/i2c-designware-master.c | 1 -
drivers/i2c/busses/i2c-designware-platdrv.c | 7 +-
drivers/iio/accel/sca3000.c | 1 +
drivers/iio/frequency/ad9523.c | 4 +-
drivers/infiniband/hw/mlx5/main.c | 2 +-
drivers/infiniband/hw/mlx5/qp.c | 6 +-
drivers/infiniband/sw/rxe/rxe_comp.c | 1 +
drivers/infiniband/ulp/srpt/ib_srpt.c | 34 ++++--
drivers/infiniband/ulp/srpt/ib_srpt.h | 4 +-
drivers/iommu/dmar.c | 6 +-
drivers/iommu/intel-iommu.c | 18 +++-
drivers/iommu/ipmmu-vmsa.c | 7 ++
drivers/mailbox/mailbox-xgene-slimpro.c | 6 +-
drivers/md/bcache/writeback.c | 4 +-
drivers/md/dm-cache-metadata.c | 13 ++-
drivers/md/dm-crypt.c | 10 +-
drivers/md/dm-integrity.c | 6 +-
drivers/md/dm-thin.c | 2 +
drivers/md/dm-writecache.c | 2 +-
drivers/media/i2c/tvp5150.c | 2 +-
drivers/mfd/hi655x-pmic.c | 2 +-
drivers/misc/cxl/main.c | 2 +-
drivers/misc/ocxl/link.c | 24 +++--
drivers/misc/vmw_balloon.c | 67 +++++++-----
drivers/mmc/core/queue.c | 12 ++-
drivers/mmc/core/queue.h | 1 +
drivers/mmc/host/renesas_sdhi_internal_dmac.c | 10 +-
drivers/net/wireless/marvell/libertas/dev.h | 1 +
drivers/net/wireless/marvell/libertas/if_sdio.c | 30 ++++--
drivers/nvdimm/bus.c | 4 +-
drivers/nvdimm/dimm_devs.c | 31 ++++++
drivers/nvdimm/namespace_devs.c | 6 +-
drivers/nvdimm/nd-core.h | 8 ++
drivers/nvdimm/region_devs.c | 24 +++++
drivers/pwm/pwm-omap-dmtimer.c | 5 +-
drivers/pwm/pwm-tiehrpwm.c | 14 +--
drivers/rtc/rtc-omap.c | 18 ++--
drivers/spi/spi-cadence.c | 2 +-
drivers/spi/spi-davinci.c | 2 +-
drivers/spi/spi-fsl-dspi.c | 24 ++---
drivers/spi/spi-pxa2xx.c | 4 +
drivers/tty/serial/serial_core.c | 17 ++-
drivers/video/fbdev/core/fbmem.c | 38 +++++--
drivers/video/fbdev/udlfb.c | 105 ++++++++++---------
fs/9p/xattr.c | 6 +-
fs/lockd/clntlock.c | 2 +-
fs/lockd/clntproc.c | 2 +-
fs/lockd/svclock.c | 16 +--
fs/lockd/svcsubs.c | 4 +-
fs/nfs/blocklayout/dev.c | 2 +-
fs/nfs/callback_proc.c | 14 ++-
fs/nfs/nfs4proc.c | 9 +-
fs/nfs/pnfs_nfs.c | 16 ++-
fs/nfsd/nfs4state.c | 2 +-
fs/overlayfs/readdir.c | 19 +++-
fs/quota/quota.c | 2 +
fs/ubifs/dir.c | 5 +-
fs/ubifs/journal.c | 21 +++-
fs/ubifs/lprops.c | 8 +-
fs/ubifs/xattr.c | 24 +++++
fs/udf/super.c | 31 +++---
fs/xattr.c | 2 +-
include/linux/blk-cgroup.h | 18 ++++
include/linux/hyperv.h | 2 +
include/linux/intel-iommu.h | 8 +-
include/linux/lockd/lockd.h | 4 +-
include/linux/mm_types.h | 5 +-
include/linux/overflow.h | 31 ++++++
include/linux/sunrpc/clnt.h | 1 +
include/linux/verification.h | 6 ++
include/uapi/linux/eventpoll.h | 8 +-
include/video/udlfb.h | 5 +-
kernel/livepatch/core.c | 6 ++
kernel/memremap.c | 1 -
kernel/power/Kconfig | 1 +
kernel/printk/printk_safe.c | 4 +-
kernel/rcu/tree_exp.h | 9 +-
kernel/sched/idle.c | 2 +-
kernel/sys.c | 95 ++++++++---------
kernel/trace/blktrace.c | 4 +
kernel/trace/trace.c | 4 +-
kernel/trace/trace_uprobe.c | 2 +-
kernel/user_namespace.c | 24 ++---
kernel/utsname_sysctl.c | 41 +++++---
mm/hmm.c | 2 +
mm/memory.c | 9 --
mm/readahead.c | 12 ++-
net/9p/client.c | 2 +-
net/9p/trans_fd.c | 7 +-
net/9p/trans_rdma.c | 3 +
net/9p/trans_virtio.c | 13 ++-
net/9p/trans_xen.c | 3 +
net/ieee802154/6lowpan/tx.c | 21 +++-
net/mac802154/tx.c | 15 ++-
net/sunrpc/clnt.c | 28 +++--
scripts/kconfig/Makefile | 5 +-
security/apparmor/secid.c | 1 -
security/commoncap.c | 2 +-
sound/ac97/bus.c | 4 +-
sound/ac97/snd_ac97_compat.c | 19 +++-
tools/perf/util/auxtrace.c | 3 +
148 files changed, 1374 insertions(+), 766 deletions(-)