As explained in the following commit a9a1a4833613 ("pinctrl:
armada-37xx: Fix gpio interrupt setup") the armada_37xx_irq_set_type()
function can be called before the initialization of the mask field.
That means that we can't use this field in this function and need to
workaround it using hwirq.
Fixes: 30ac0d3b0702 ("pinctrl: armada-37xx: Add edge both type gpio irq support")
Cc: stable(a)vger.kernel.org
Reported-by: Russell King <rmk+kernel(a)armlinux.org.uk>
Signed-off-by: Gregory CLEMENT <gregory.clement(a)bootlin.com>
---
drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
index 9df4277a16be..aa9dcde0f069 100644
--- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
+++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
@@ -595,10 +595,10 @@ static int armada_37xx_irq_set_type(struct irq_data *d, unsigned int type)
regmap_read(info->regmap, in_reg, &in_val);
/* Set initial polarity based on current input level. */
- if (in_val & d->mask)
- val |= d->mask; /* falling */
+ if (in_val & BIT(d->hwirq % GPIO_PER_REG))
+ val |= BIT(d->hwirq % GPIO_PER_REG); /* falling */
else
- val &= ~d->mask; /* rising */
+ val &= ~(BIT(d->hwirq % GPIO_PER_REG)); /* rising */
break;
}
default:
--
2.24.0
I'm announcing the release of the 5.3.12 kernel.
All users of the 5.3 kernel series must upgrade.
The updated 5.3.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.3.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2
arch/x86/kernel/early-quirks.c | 2
arch/x86/kvm/mmu.c | 8 +-
drivers/base/memory.c | 36 +++++++++++++
drivers/gpu/drm/i915/display/intel_display_power.c | 3 +
drivers/gpu/drm/i915/gt/intel_mocs.c | 8 --
drivers/gpu/drm/i915/i915_drv.c | 3 -
drivers/i2c/i2c-core-acpi.c | 28 +++++++++-
drivers/infiniband/hw/hfi1/init.c | 1
drivers/infiniband/hw/hfi1/pcie.c | 4 +
drivers/infiniband/hw/hfi1/rc.c | 16 ++---
drivers/infiniband/hw/hfi1/sdma.c | 5 +
drivers/infiniband/hw/hfi1/tid_rdma.c | 57 +++++++++++----------
drivers/infiniband/hw/hfi1/tid_rdma.h | 3 -
drivers/infiniband/hw/hfi1/verbs.c | 10 +--
drivers/input/ff-memless.c | 9 +++
drivers/input/rmi4/rmi_f11.c | 4 -
drivers/input/rmi4/rmi_f12.c | 32 ++++++++++-
drivers/input/rmi4/rmi_f54.c | 5 +
drivers/mmc/host/sdhci-of-at91.c | 2
drivers/net/can/slcan.c | 1
drivers/net/ethernet/cortina/gemini.c | 1
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 10 +++
drivers/net/ethernet/mellanox/mlx4/main.c | 3 +
drivers/net/ethernet/mellanox/mlxsw/core.c | 5 +
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 2
drivers/net/netdevsim/dev.c | 2
drivers/net/slip/slip.c | 1
drivers/net/usb/ax88172a.c | 2
drivers/net/usb/qmi_wwan.c | 2
drivers/scsi/scsi_lib.c | 3 -
fs/btrfs/inode.c | 15 +++++
fs/ecryptfs/inode.c | 19 ++++---
fs/io_uring.c | 2
include/linux/intel-iommu.h | 6 +-
include/linux/kvm_host.h | 1
include/linux/memory.h | 1
include/net/devlink.h | 3 +
include/trace/events/tcp.h | 2
include/uapi/linux/devlink.h | 1
kernel/signal.c | 2
kernel/time/ntp.c | 2
mm/hugetlb_cgroup.c | 2
mm/memcontrol.c | 2
mm/memory_hotplug.c | 43 +++++++++------
mm/mempolicy.c | 14 +++--
mm/page_io.c | 6 +-
mm/slub.c | 39 +++-----------
net/core/devlink.c | 45 ++++++++++++++++
net/ipv4/ipmr.c | 3 -
net/smc/af_smc.c | 3 -
sound/usb/endpoint.c | 3 +
sound/usb/mixer.c | 4 +
sound/usb/quirks.c | 4 -
sound/usb/validate.c | 6 +-
virt/kvm/kvm_main.c | 26 ++++++++-
56 files changed, 369 insertions(+), 155 deletions(-)
Al Viro (2):
ecryptfs_lookup_interpose(): lower_dentry->d_inode is not stable
ecryptfs_lookup_interpose(): lower_dentry->d_parent is not stable either
Aleksander Morgado (1):
net: usb: qmi_wwan: add support for Foxconn T77W968 LTE modules
Andrew Duggan (2):
Input: synaptics-rmi4 - disable the relative position IRQ in the F12 driver
Input: synaptics-rmi4 - do not consume more data than we have (F11, F12)
Arnd Bergmann (1):
ntp/y2038: Remove incorrect time_t truncation
Aya Levin (1):
devlink: Add method for time-stamp on reporter's dump
Chuhong Yuan (2):
net: gemini: add missed free_netdev
Input: synaptics-rmi4 - destroy F54 poller workqueue when removing
Corentin Labbe (1):
net: ethernet: dwmac-sun8i: Use the correct function in exit path
David Hildenbrand (1):
mm/memory_hotplug: fix try_offline_node()
Eric Auger (1):
iommu/vt-d: Fix QI_DEV_IOTLB_PFSID and QI_DEV_EIOTLB_PFSID macros
Eugen Hristev (1):
mmc: sdhci-of-at91: fix quirk2 overwrite
Filipe Manana (1):
Btrfs: fix log context list corruption after rename exchange operation
Greg Kroah-Hartman (1):
Linux 5.3.12
Guillaume Nault (1):
ipmr: Fix skb headroom in ipmr_get_route().
Hans de Goede (1):
i2c: acpi: Force bus speed to 400KHz if a Silead touchscreen is present
Henry Lin (1):
ALSA: usb-audio: not submit urb for stopped endpoint
Ioana Ciornei (1):
dpaa2-eth: free already allocated channels on probe defer
James Erwin (1):
IB/hfi1: Ensure full Gen3 speed in a Gen4 system
Jani Nikula (1):
drm/i915: update rawclk also on resume
Jens Axboe (1):
io_uring: ensure registered buffer import returns the IO length
Jiri Pirko (2):
devlink: disallow reload operation during device cleanup
mlxsw: core: Enable devlink reload only on probe
Jouni Hogander (2):
slip: Fix memory leak in slip_open error path
slcan: Fix memory leak in error path
Kai-Heng Feng (1):
x86/quirks: Disable HPET on Intel Coffe Lake platforms
Kaike Wan (3):
IB/hfi1: Ensure r_tid_ack is valid before building TID RDMA ACK packet
IB/hfi1: Calculate flow weight based on QP MTU for TID RDMA
IB/hfi1: TID RDMA WRITE should not return IB_WC_RNR_RETRY_EXC_ERR
Laura Abbott (1):
mm: slub: really fix slab walking for init_on_free
Lucas Stach (2):
Input: synaptics-rmi4 - fix video buffer size
Input: synaptics-rmi4 - clear IRQ enables for F54
Matt Roper (1):
Revert "drm/i915/ehl: Update MOCS table for EHL"
Michael Schmitz (1):
scsi: core: Handle drivers which set sg_tablesize to zero
Mike Marciniszyn (1):
IB/hfi1: Use a common pad buffer for 9B and 16B packets
Oleg Nesterov (1):
cgroup: freezer: call cgroup_enter_frozen() with preemption disabled in ptrace_stop()
Oliver Neukum (2):
ax88172a: fix information leak on short answers
Input: ff-memless - kill timer in destroy()
Roman Gushchin (2):
mm: memcg: switch to css_tryget() in get_mem_cgroup_from_mm()
mm: hugetlb: switch to css_tryget() in hugetlb_cgroup_charge_cgroup()
Sean Christopherson (1):
KVM: MMU: Do not treat ZONE_DEVICE pages as being reserved
Takashi Iwai (3):
ALSA: usb-audio: Fix missing error check at mixer resolution test
ALSA: usb-audio: Fix incorrect NULL check in create_yamaha_midi_quirk()
ALSA: usb-audio: Fix incorrect size check for processing/extension units
Tony Lu (1):
tcp: remove redundant new line from tcp_event_sk_skb
Ursula Braun (2):
net/smc: fix fastopen for non-blocking connect()
net/smc: fix refcount non-blocking connect() -part 2
Vinayak Menon (1):
mm/page_io.c: do not free shared swap slots
Yang Shi (1):
mm: mempolicy: fix the wrong return value and potential pages leak of mbind
This is a note to let you know that I've just added the patch titled
staging: comedi: usbduxfast: usbduxfast_ai_cmdtest rounding error
to my staging git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
in the staging-testing 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 be merged to the staging-next branch sometime soon,
after it passes testing, and the merge window is open.
If you have any questions about this process, please let me know.
>From 222f7381cf6f1eab2ea3a534cbea0815a2b53326 Mon Sep 17 00:00:00 2001
From: Bernd Porr <mail(a)berndporr.me.uk>
Date: Mon, 18 Nov 2019 23:07:59 +0000
Subject: staging: comedi: usbduxfast: usbduxfast_ai_cmdtest rounding error
The userspace comedilib function 'get_cmd_generic_timed' fills
the cmd structure with an informed guess and then calls the
function 'usbduxfast_ai_cmdtest' in this driver repeatedly while
'usbduxfast_ai_cmdtest' is modifying the cmd struct until it
no longer changes. However, because of rounding errors this never
converged because 'steps = (cmd->convert_arg * 30) / 1000' and then
back to 'cmd->convert_arg = (steps * 1000) / 30' won't be the same
because of rounding errors. 'Steps' should only be converted back to
the 'convert_arg' if 'steps' has actually been modified. In addition
the case of steps being 0 wasn't checked which is also now done.
Signed-off-by: Bernd Porr <mail(a)berndporr.me.uk>
Cc: <stable(a)vger.kernel.org> # 4.4+
Reviewed-by: Ian Abbott <abbotti(a)mev.co.uk>
Link: https://lore.kernel.org/r/20191118230759.1727-1-mail@berndporr.me.uk
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/staging/comedi/drivers/usbduxfast.c | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c
index 04bc488385e6..4af012968cb6 100644
--- a/drivers/staging/comedi/drivers/usbduxfast.c
+++ b/drivers/staging/comedi/drivers/usbduxfast.c
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0+
/*
- * Copyright (C) 2004-2014 Bernd Porr, mail(a)berndporr.me.uk
+ * Copyright (C) 2004-2019 Bernd Porr, mail(a)berndporr.me.uk
*/
/*
@@ -8,7 +8,7 @@
* Description: University of Stirling USB DAQ & INCITE Technology Limited
* Devices: [ITL] USB-DUX-FAST (usbduxfast)
* Author: Bernd Porr <mail(a)berndporr.me.uk>
- * Updated: 10 Oct 2014
+ * Updated: 16 Nov 2019
* Status: stable
*/
@@ -22,6 +22,7 @@
*
*
* Revision history:
+ * 1.0: Fixed a rounding error in usbduxfast_ai_cmdtest
* 0.9: Dropping the first data packet which seems to be from the last transfer.
* Buffer overflows in the FX2 are handed over to comedi.
* 0.92: Dropping now 4 packets. The quad buffer has to be emptied.
@@ -350,6 +351,7 @@ static int usbduxfast_ai_cmdtest(struct comedi_device *dev,
struct comedi_cmd *cmd)
{
int err = 0;
+ int err2 = 0;
unsigned int steps;
unsigned int arg;
@@ -399,11 +401,16 @@ static int usbduxfast_ai_cmdtest(struct comedi_device *dev,
*/
steps = (cmd->convert_arg * 30) / 1000;
if (cmd->chanlist_len != 1)
- err |= comedi_check_trigger_arg_min(&steps,
- MIN_SAMPLING_PERIOD);
- err |= comedi_check_trigger_arg_max(&steps, MAX_SAMPLING_PERIOD);
- arg = (steps * 1000) / 30;
- err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg);
+ err2 |= comedi_check_trigger_arg_min(&steps,
+ MIN_SAMPLING_PERIOD);
+ else
+ err2 |= comedi_check_trigger_arg_min(&steps, 1);
+ err2 |= comedi_check_trigger_arg_max(&steps, MAX_SAMPLING_PERIOD);
+ if (err2) {
+ err |= err2;
+ arg = (steps * 1000) / 30;
+ err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg);
+ }
if (cmd->stop_src == TRIG_COUNT)
err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1);
--
2.24.0
This is a note to let you know that I've just added the patch titled
staging: comedi: usbduxfast: usbduxfast_ai_cmdtest rounding error
to my staging git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
in the staging-testing 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 be merged to the staging-next branch sometime soon,
after it passes testing, and the merge window is open.
If you have any questions about this process, please let me know.
>From c83b03628f0a1c0e652c9424fed2e903cca1c3b7 Mon Sep 17 00:00:00 2001
From: Bernd Porr <mail(a)berndporr.me.uk>
Date: Mon, 18 Nov 2019 23:07:59 +0000
Subject: staging: comedi: usbduxfast: usbduxfast_ai_cmdtest rounding error
The userspace comedilib function 'get_cmd_generic_timed' fills
the cmd structure with an informed guess and then calls the
function 'usbduxfast_ai_cmdtest' in this driver repeatedly while
'usbduxfast_ai_cmdtest' is modifying the cmd struct until it
no longer changes. However, because of rounding errors this never
converged because 'steps = (cmd->convert_arg * 30) / 1000' and then
back to 'cmd->convert_arg = (steps * 1000) / 30' won't be the same
because of rounding errors. 'Steps' should only be converted back to
the 'convert_arg' if 'steps' has actually been modified. In addition
the case of steps being 0 wasn't checked which is also now done.
Signed-off-by: Bernd Porr <mail(a)berndporr.me.uk>
Cc: <stable(a)vger.kernel.org> # 4.4+
Reviewed-by: Ian Abbott <abbotti(a)mev.co.uk>
Link: https://lore.kernel.org/r/20191118230759.1727-1-mail@berndporr.me.uk
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/staging/comedi/drivers/usbduxfast.c | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c
index 04bc488385e6..4af012968cb6 100644
--- a/drivers/staging/comedi/drivers/usbduxfast.c
+++ b/drivers/staging/comedi/drivers/usbduxfast.c
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0+
/*
- * Copyright (C) 2004-2014 Bernd Porr, mail(a)berndporr.me.uk
+ * Copyright (C) 2004-2019 Bernd Porr, mail(a)berndporr.me.uk
*/
/*
@@ -8,7 +8,7 @@
* Description: University of Stirling USB DAQ & INCITE Technology Limited
* Devices: [ITL] USB-DUX-FAST (usbduxfast)
* Author: Bernd Porr <mail(a)berndporr.me.uk>
- * Updated: 10 Oct 2014
+ * Updated: 16 Nov 2019
* Status: stable
*/
@@ -22,6 +22,7 @@
*
*
* Revision history:
+ * 1.0: Fixed a rounding error in usbduxfast_ai_cmdtest
* 0.9: Dropping the first data packet which seems to be from the last transfer.
* Buffer overflows in the FX2 are handed over to comedi.
* 0.92: Dropping now 4 packets. The quad buffer has to be emptied.
@@ -350,6 +351,7 @@ static int usbduxfast_ai_cmdtest(struct comedi_device *dev,
struct comedi_cmd *cmd)
{
int err = 0;
+ int err2 = 0;
unsigned int steps;
unsigned int arg;
@@ -399,11 +401,16 @@ static int usbduxfast_ai_cmdtest(struct comedi_device *dev,
*/
steps = (cmd->convert_arg * 30) / 1000;
if (cmd->chanlist_len != 1)
- err |= comedi_check_trigger_arg_min(&steps,
- MIN_SAMPLING_PERIOD);
- err |= comedi_check_trigger_arg_max(&steps, MAX_SAMPLING_PERIOD);
- arg = (steps * 1000) / 30;
- err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg);
+ err2 |= comedi_check_trigger_arg_min(&steps,
+ MIN_SAMPLING_PERIOD);
+ else
+ err2 |= comedi_check_trigger_arg_min(&steps, 1);
+ err2 |= comedi_check_trigger_arg_max(&steps, MAX_SAMPLING_PERIOD);
+ if (err2) {
+ err |= err2;
+ arg = (steps * 1000) / 30;
+ err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg);
+ }
if (cmd->stop_src == TRIG_COUNT)
err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1);
--
2.24.0
Hi,
when merging the most recent stable releases into chromeos-4.14 and
chromeos-4.19, I noticed that the following patches are missing
in v4.14.y and v4.19.y. In both cases a backported fix was later fixed
upstream, but the fix of the fix was not backported.
v4.14.y, v4.19.y:
commit a4d8f64f7267 ("spi: mediatek: use correct mata->xfer_len when in fifo transfer")
Fixes commit 6237e9d0715a ("spi: mediatek: Don't modify spi_transfer
when transfer."), but is not marked for stable/fixes.
v4.19.y:
commit bc1a7f75c85e ("i2c: mediatek: modify threshold passed to i2c_get_dma_safe_msg_buf()")
Fixes: fc66b39fe36a ("i2c: mediatek: Use DMA safe buffers for i2c transactions")
Please consider applying the missing patches to future stable releases.
Thanks,
Guenter
On compat interfaces, the high order bits of nanoseconds should
be zeroed out. This is because the application code or the libc
do not guarantee zeroing of these. If used without zeroing,
kernel might be at risk of using timespec values incorrectly.
Originally it was handled correctly, but lost during is_compat_syscall()
cleanup. Revert the condition back to check CONFIG_64BIT.
Reported-by: Ben Hutchings <ben.hutchings(a)codethink.co.uk>
Fixes: 98f76206b335 ("compat: Cleanup in_compat_syscall() callers")
Cc: Arnd Bergmann <arnd(a)arndb.de>
Cc: Ben Hutchings <ben.hutchings(a)codethink.co.uk>
Cc: John Stultz <john.stultz(a)linaro.org>
Cc: Stephen Boyd <sboyd(a)kernel.org>
Cc: Thomas Gleixner <tglx(a)linutronix.de>
Cc: y2038(a)lists.linaro.org
Cc: stable(a)vger.kernel.org # v4.20+
Signed-off-by: Dmitry Safonov <dima(a)arista.com>
---
kernel/time/time.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/time/time.c b/kernel/time/time.c
index 5c54ca632d08..1cb045c5c97e 100644
--- a/kernel/time/time.c
+++ b/kernel/time/time.c
@@ -881,7 +881,7 @@ int get_timespec64(struct timespec64 *ts,
ts->tv_sec = kts.tv_sec;
/* Zero out the padding for 32 bit systems or in compat mode */
- if (IS_ENABLED(CONFIG_64BIT_TIME) && in_compat_syscall())
+ if (IS_ENABLED(CONFIG_64BIT_TIME) && (!IS_ENABLED(CONFIG_64BIT) || in_compat_syscall()))
kts.tv_nsec &= 0xFFFFFFFFUL;
ts->tv_nsec = kts.tv_nsec;
--
2.24.0