The patch below does not apply to the 4.18-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From b57e99b4b8b0ebdf9707424e7ddc0c392bdc5fe6 Mon Sep 17 00:00:00 2001
From: Omar Sandoval <osandov(a)fb.com>
Date: Fri, 21 Sep 2018 16:44:34 -0700
Subject: [PATCH] block: use nanosecond resolution for iostat
Klaus Kusche reported that the I/O busy time in /proc/diskstats was not
updating properly on 4.18. This is because we started using ktime to
track elapsed time, and we convert nanoseconds to jiffies when we update
the partition counter. However, this gets rounded down, so any I/Os that
take less than a jiffy are not accounted for. Previously in this case,
the value of jiffies would sometimes increment while we were doing I/O,
so at least some I/Os were accounted for.
Let's convert the stats to use nanoseconds internally. We still report
milliseconds as before, now more accurately than ever. The value is
still truncated to 32 bits for backwards compatibility.
Fixes: 522a777566f5 ("block: consolidate struct request timestamp fields")
Cc: stable(a)vger.kernel.org
Reported-by: Klaus Kusche <klaus.kusche(a)computerix.info>
Signed-off-by: Omar Sandoval <osandov(a)fb.com>
Signed-off-by: Jens Axboe <axboe(a)kernel.dk>
diff --git a/block/bio.c b/block/bio.c
index 8c680a776171..0093bed81c0e 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -1684,7 +1684,7 @@ void generic_end_io_acct(struct request_queue *q, int req_op,
const int sgrp = op_stat_group(req_op);
int cpu = part_stat_lock();
- part_stat_add(cpu, part, ticks[sgrp], duration);
+ part_stat_add(cpu, part, nsecs[sgrp], jiffies_to_nsecs(duration));
part_round_stats(q, cpu, part);
part_dec_in_flight(q, part, op_is_write(req_op));
diff --git a/block/blk-core.c b/block/blk-core.c
index 4dbc93f43b38..cff0a60ee200 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -2733,17 +2733,15 @@ void blk_account_io_done(struct request *req, u64 now)
* containing request is enough.
*/
if (blk_do_io_stat(req) && !(req->rq_flags & RQF_FLUSH_SEQ)) {
- unsigned long duration;
const int sgrp = op_stat_group(req_op(req));
struct hd_struct *part;
int cpu;
- duration = nsecs_to_jiffies(now - req->start_time_ns);
cpu = part_stat_lock();
part = req->part;
part_stat_inc(cpu, part, ios[sgrp]);
- part_stat_add(cpu, part, ticks[sgrp], duration);
+ part_stat_add(cpu, part, nsecs[sgrp], now - req->start_time_ns);
part_round_stats(req->q, cpu, part);
part_dec_in_flight(req->q, part, rq_data_dir(req));
diff --git a/block/genhd.c b/block/genhd.c
index 8cc719a37b32..be5bab20b2ab 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -1343,18 +1343,18 @@ static int diskstats_show(struct seq_file *seqf, void *v)
part_stat_read(hd, ios[STAT_READ]),
part_stat_read(hd, merges[STAT_READ]),
part_stat_read(hd, sectors[STAT_READ]),
- jiffies_to_msecs(part_stat_read(hd, ticks[STAT_READ])),
+ (unsigned int)part_stat_read_msecs(hd, STAT_READ),
part_stat_read(hd, ios[STAT_WRITE]),
part_stat_read(hd, merges[STAT_WRITE]),
part_stat_read(hd, sectors[STAT_WRITE]),
- jiffies_to_msecs(part_stat_read(hd, ticks[STAT_WRITE])),
+ (unsigned int)part_stat_read_msecs(hd, STAT_WRITE),
inflight[0],
jiffies_to_msecs(part_stat_read(hd, io_ticks)),
jiffies_to_msecs(part_stat_read(hd, time_in_queue)),
part_stat_read(hd, ios[STAT_DISCARD]),
part_stat_read(hd, merges[STAT_DISCARD]),
part_stat_read(hd, sectors[STAT_DISCARD]),
- jiffies_to_msecs(part_stat_read(hd, ticks[STAT_DISCARD]))
+ (unsigned int)part_stat_read_msecs(hd, STAT_DISCARD)
);
}
disk_part_iter_exit(&piter);
diff --git a/block/partition-generic.c b/block/partition-generic.c
index 5a8975a1201c..d3d14e81fb12 100644
--- a/block/partition-generic.c
+++ b/block/partition-generic.c
@@ -136,18 +136,18 @@ ssize_t part_stat_show(struct device *dev,
part_stat_read(p, ios[STAT_READ]),
part_stat_read(p, merges[STAT_READ]),
(unsigned long long)part_stat_read(p, sectors[STAT_READ]),
- jiffies_to_msecs(part_stat_read(p, ticks[STAT_READ])),
+ (unsigned int)part_stat_read_msecs(p, STAT_READ),
part_stat_read(p, ios[STAT_WRITE]),
part_stat_read(p, merges[STAT_WRITE]),
(unsigned long long)part_stat_read(p, sectors[STAT_WRITE]),
- jiffies_to_msecs(part_stat_read(p, ticks[STAT_WRITE])),
+ (unsigned int)part_stat_read_msecs(p, STAT_WRITE),
inflight[0],
jiffies_to_msecs(part_stat_read(p, io_ticks)),
jiffies_to_msecs(part_stat_read(p, time_in_queue)),
part_stat_read(p, ios[STAT_DISCARD]),
part_stat_read(p, merges[STAT_DISCARD]),
(unsigned long long)part_stat_read(p, sectors[STAT_DISCARD]),
- jiffies_to_msecs(part_stat_read(p, ticks[STAT_DISCARD])));
+ (unsigned int)part_stat_read_msecs(p, STAT_DISCARD));
}
ssize_t part_inflight_show(struct device *dev, struct device_attribute *attr,
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index 57864422a2c8..25c08c6c7f99 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -83,10 +83,10 @@ struct partition {
} __attribute__((packed));
struct disk_stats {
+ u64 nsecs[NR_STAT_GROUPS];
unsigned long sectors[NR_STAT_GROUPS];
unsigned long ios[NR_STAT_GROUPS];
unsigned long merges[NR_STAT_GROUPS];
- unsigned long ticks[NR_STAT_GROUPS];
unsigned long io_ticks;
unsigned long time_in_queue;
};
@@ -354,6 +354,9 @@ static inline void free_part_stats(struct hd_struct *part)
#endif /* CONFIG_SMP */
+#define part_stat_read_msecs(part, which) \
+ div_u64(part_stat_read(part, nsecs[which]), NSEC_PER_MSEC)
+
#define part_stat_read_accum(part, field) \
(part_stat_read(part, field[STAT_READ]) + \
part_stat_read(part, field[STAT_WRITE]) + \
When doing simple conversions, the driver did not acknowledge the DRDY irq.
If this irq is not acked, it will be left pending, and as soon as a trigger
is enabled, the irq handler will be called, it doesn't know why this irq
has occurred because no channel is pending, and then we will have irq loop
and board will hang.
Fixes 0e589d5fb ("ARM: AT91: IIO: Add AT91 ADC driver.")
Cc: Maxime Ripard <maxime.ripard(a)bootlin.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Eugen Hristev <eugen.hristev(a)microchip.com>
---
drivers/iio/adc/at91_adc.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c
index 44b5168..e85f859 100644
--- a/drivers/iio/adc/at91_adc.c
+++ b/drivers/iio/adc/at91_adc.c
@@ -712,6 +712,11 @@ static int at91_adc_read_raw(struct iio_dev *idev,
at91_adc_writel(st, AT91_ADC_CHDR,
AT91_ADC_CH(chan->channel));
at91_adc_writel(st, AT91_ADC_IDR, BIT(chan->channel));
+ /*
+ * we need to ack the DRDY irq, otherwise it will be
+ * left pending and irq handler will be confused
+ */
+ at91_adc_readl(st, AT91_ADC_LCDR);
st->last_value = 0;
st->done = false;
--
2.7.4
I'm announcing the release of the 4.4.159 kernel.
All users of the 4.4 kernel series must upgrade.
The updated 4.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.4.y
and can be browsed at the normal kernel.org git web browser:
http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 -
arch/arm64/kernel/entry.S | 3 ++
arch/x86/xen/pmu.c | 2 -
drivers/gpu/drm/nouveau/nouveau_connector.c | 20 ++++++++++--------
drivers/hid/hid-core.c | 3 ++
drivers/hid/hid-ids.h | 2 +
drivers/hid/hid-sony.c | 6 +++++
drivers/infiniband/hw/cxgb4/qp.c | 6 +++++
drivers/net/appletalk/ipddp.c | 8 +++++--
drivers/net/ethernet/hp/hp100.c | 2 -
drivers/net/xen-netfront.c | 8 ++++++-
drivers/platform/x86/alienware-wmi.c | 1
drivers/target/iscsi/iscsi_target_auth.c | 30 +++++++++++++---------------
drivers/tty/vt/vt_ioctl.c | 4 +++
fs/ext4/dir.c | 20 ++++++++----------
fs/ext4/inline.c | 4 ++-
fs/ext4/mmp.c | 1
fs/ext4/resize.c | 23 ++++++++++++++++++++-
fs/ext4/super.c | 2 +
fs/ocfs2/buffer_head_io.c | 1
include/net/nfc/hci.h | 2 -
kernel/trace/ring_buffer.c | 2 +
mm/shmem.c | 2 +
net/core/neighbour.c | 13 +++++++-----
net/ipv4/af_inet.c | 1
net/ipv6/ip6_offload.c | 1
net/ipv6/ip6_output.c | 6 +----
net/nfc/hci/core.c | 10 +++++++++
sound/firewire/bebob/bebob_maudio.c | 24 +++++++++++++---------
sound/pci/emu10k1/emufx.c | 2 -
sound/soc/codecs/cs4265.c | 4 +--
31 files changed, 147 insertions(+), 68 deletions(-)
Boris Ostrovsky (1):
xen/x86/vpmu: Zero struct pt_regs before calling into sample handling code
Catalin Marinas (1):
arm64: Add trace_hardirqs_off annotation in ret_to_user
Colin Ian King (1):
net: hp100: fix always-true check for link up state
Eric Dumazet (1):
ipv6: fix possible use-after-free in ip6_xmit()
Greg Kroah-Hartman (1):
Linux 4.4.159
Gustavo A. R. Silva (1):
tty: vt_ioctl: fix potential Spectre v1
Joel Fernandes (Google) (1):
mm: shmem.c: Correctly annotate new inodes for lockdep
Juergen Gross (1):
xen/netfront: don't bug in case of too many frags
Junxiao Bi (1):
ocfs2: fix ocfs2 read block panic
Li Dongyang (1):
ext4: don't mark mmp buffer head dirty
Lyude Paul (1):
drm/nouveau/drm/nouveau: Use pm_runtime_get_noresume() in connector_detect()
Mario Limonciello (1):
platform/x86: alienware-wmi: Correct a memory leak
Roderick Colenbrander (2):
HID: sony: Update device ids
HID: sony: Support DS4 dongle
Steve Wise (1):
iw_cxgb4: only allow 1 flush on user qps
Suren Baghdasaryan (2):
NFC: Fix possible memory corruption when handling SHDLC I-Frame commands
NFC: Fix the number of pipes
Sébastien Szymanski (1):
ASoC: cs4265: fix MMTLR Data switch control
Takashi Sakamoto (1):
ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping
Theodore Ts'o (4):
ext4: avoid divide by zero fault when deleting corrupted inline directories
ext4: recalucate superblock checksum after updating free blocks/inodes
ext4: fix online resize's handling of a too-small final block group
ext4: fix online resizing for bigalloc file systems with a 1k block size
Toke Høiland-Jørgensen (1):
gso_segment: Reset skb->mac_len after modifying network header
Vaibhav Nagarnaik (1):
ring-buffer: Allow for rescheduling when removing pages
Vasily Khoruzhick (1):
neighbour: confirm neigh entries when ARP packet is received
Vincent Pelletier (1):
scsi: target: iscsi: Use hex2bin instead of a re-implementation
Willy Tarreau (2):
ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO
net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT
I'm announcing the release of the 4.9.130 kernel.
All users of the 4.9 kernel series must upgrade.
The updated 4.9.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.9.y
and can be browsed at the normal kernel.org git web browser:
http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 -
arch/x86/xen/pmu.c | 2 -
drivers/gpu/drm/nouveau/nouveau_connector.c | 20 ++++++-----
drivers/gpu/drm/nouveau/nouveau_display.c | 33 ++++++++++++++----
drivers/gpu/drm/vc4/vc4_plane.c | 25 ++++++--------
drivers/hid/hid-core.c | 3 +
drivers/hid/hid-ids.h | 2 +
drivers/hid/hid-sony.c | 6 +++
drivers/infiniband/hw/cxgb4/qp.c | 6 +++
drivers/misc/vmw_balloon.c | 1
drivers/net/appletalk/ipddp.c | 8 +++-
drivers/net/ethernet/hp/hp100.c | 2 -
drivers/net/xen-netfront.c | 8 ++++
drivers/pci/host/pci-aardvark.c | 1
drivers/pci/quirks.c | 6 ---
drivers/platform/x86/alienware-wmi.c | 1
drivers/target/iscsi/iscsi_target_auth.c | 30 ++++++++---------
drivers/tty/vt/vt_ioctl.c | 4 ++
fs/ext4/dir.c | 20 +++++------
fs/ext4/inline.c | 4 +-
fs/ext4/mmp.c | 1
fs/ext4/namei.c | 6 +++
fs/ext4/resize.c | 23 ++++++++++++-
fs/ext4/super.c | 4 ++
fs/ocfs2/buffer_head_io.c | 1
include/net/nfc/hci.h | 2 -
kernel/sched/fair.c | 3 +
kernel/trace/ring_buffer.c | 2 +
mm/shmem.c | 2 +
net/core/neighbour.c | 13 ++++---
net/ipv4/af_inet.c | 1
net/ipv4/udp.c | 49 ++++++++++++++--------------
net/ipv6/ip6_offload.c | 1
net/ipv6/ip6_output.c | 6 +--
net/nfc/hci/core.c | 10 +++++
sound/firewire/bebob/bebob.c | 2 +
sound/firewire/bebob/bebob_maudio.c | 28 ++++++++--------
sound/firewire/digi00x/digi00x.c | 1
sound/firewire/fireworks/fireworks.c | 2 +
sound/firewire/oxfw/oxfw.c | 10 +++++
sound/firewire/tascam/tascam.c | 1
sound/pci/emu10k1/emufx.c | 2 -
sound/soc/codecs/cs4265.c | 4 +-
43 files changed, 235 insertions(+), 123 deletions(-)
Boris Brezillon (1):
drm/vc4: Fix the "no scaling" case on multi-planar YUV formats
Boris Ostrovsky (1):
xen/x86/vpmu: Zero struct pt_regs before calling into sample handling code
Colin Ian King (1):
net: hp100: fix always-true check for link up state
Eric Biggers (1):
ext4: show test_dummy_encryption mount option in /proc/mounts
Eric Dumazet (1):
ipv6: fix possible use-after-free in ip6_xmit()
Greg Kroah-Hartman (1):
Linux 4.9.130
Gustavo A. R. Silva (1):
tty: vt_ioctl: fix potential Spectre v1
Joel Fernandes (Google) (1):
mm: shmem.c: Correctly annotate new inodes for lockdep
Juergen Gross (1):
xen/netfront: don't bug in case of too many frags
Junxiao Bi (1):
ocfs2: fix ocfs2 read block panic
Li Dongyang (1):
ext4: don't mark mmp buffer head dirty
Lyude Paul (3):
drm/nouveau/drm/nouveau: Fix bogus drm_kms_helper_poll_enable() placement
drm/nouveau/drm/nouveau: Use pm_runtime_get_noresume() in connector_detect()
drm/nouveau/drm/nouveau: Prevent handling ACPI HPD events too early
Mario Limonciello (1):
platform/x86: alienware-wmi: Correct a memory leak
Mika Westerberg (1):
Revert "PCI: Add ACS quirk for Intel 300 series"
Nadav Amit (1):
vmw_balloon: include asm/io.h
Paolo Abeni (1):
udp4: fix IP_CMSG_CHECKSUM for connected sockets
Roderick Colenbrander (2):
HID: sony: Update device ids
HID: sony: Support DS4 dongle
Steve Muckle (1):
sched/fair: Fix vruntime_normalized() for remote non-migration wakeup
Steve Wise (1):
iw_cxgb4: only allow 1 flush on user qps
Suren Baghdasaryan (2):
NFC: Fix possible memory corruption when handling SHDLC I-Frame commands
NFC: Fix the number of pipes
Sébastien Szymanski (1):
ASoC: cs4265: fix MMTLR Data switch control
Takashi Sakamoto (8):
ALSA: bebob: fix memory leak for M-Audio FW1814 and ProjectMix I/O at error path
ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping
ALSA: firewire-digi00x: fix memory leak of private data
ALSA: firewire-tascam: fix memory leak of private data
ALSA: fireworks: fix memory leak of response buffer at error path
ALSA: oxfw: fix memory leak for model-dependent data at error path
ALSA: oxfw: fix memory leak of discovered stream formats at error path
ALSA: oxfw: fix memory leak of private data
Theodore Ts'o (5):
ext4: check to make sure the rename(2)'s destination is not freed
ext4: avoid divide by zero fault when deleting corrupted inline directories
ext4: recalucate superblock checksum after updating free blocks/inodes
ext4: fix online resize's handling of a too-small final block group
ext4: fix online resizing for bigalloc file systems with a 1k block size
Toke Høiland-Jørgensen (1):
gso_segment: Reset skb->mac_len after modifying network header
Vaibhav Nagarnaik (1):
ring-buffer: Allow for rescheduling when removing pages
Vasily Khoruzhick (1):
neighbour: confirm neigh entries when ARP packet is received
Vincent Pelletier (1):
scsi: target: iscsi: Use hex2bin instead of a re-implementation
Willy Tarreau (2):
ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO
net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT
Zachary Zhang (1):
PCI: aardvark: Size bridges before resources allocation
I'm announcing the release of the 4.14.73 kernel.
All users of the 4.14 kernel series must upgrade.
The updated 4.14.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.14.y
and can be browsed at the normal kernel.org git web browser:
http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2
arch/x86/xen/pmu.c | 2
drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 14 +++---
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 1
drivers/gpu/drm/nouveau/nouveau_connector.c | 42 ++++++++++++++----
drivers/gpu/drm/nouveau/nouveau_display.c | 42 +++++++++++++-----
drivers/gpu/drm/nouveau/nouveau_display.h | 2
drivers/gpu/drm/nouveau/nouveau_drm.c | 2
drivers/gpu/drm/udl/udl_fb.c | 8 ++-
drivers/gpu/drm/vc4/vc4_plane.c | 25 +++++-----
drivers/infiniband/hw/cxgb4/qp.c | 6 ++
drivers/misc/vmw_balloon.c | 1
drivers/net/appletalk/ipddp.c | 8 ++-
drivers/net/ethernet/hp/hp100.c | 2
drivers/net/ppp/pppoe.c | 3 +
drivers/net/usb/qmi_wwan.c | 14 +++---
drivers/net/xen-netfront.c | 8 +++
drivers/pci/host/pci-aardvark.c | 1
drivers/pci/quirks.c | 6 --
drivers/platform/x86/alienware-wmi.c | 1
drivers/rpmsg/rpmsg_core.c | 7 ---
drivers/spi/spi.c | 13 ++++-
drivers/target/iscsi/iscsi_target_auth.c | 45 +++++++------------
drivers/tty/vt/vt_ioctl.c | 4 +
fs/ext4/dir.c | 20 +++-----
fs/ext4/ext4.h | 3 +
fs/ext4/inline.c | 4 +
fs/ext4/inode.c | 9 +++
fs/ext4/mmp.c | 1
fs/ext4/namei.c | 6 ++
fs/ext4/resize.c | 23 +++++++++
fs/ext4/super.c | 4 +
fs/ocfs2/buffer_head_io.c | 1
fs/ubifs/xattr.c | 24 ----------
include/net/nfc/hci.h | 2
include/net/tls.h | 14 +++---
include/uapi/linux/keyctl.h | 2
kernel/sched/fair.c | 3 -
kernel/time/tick-sched.c | 2
kernel/trace/ring_buffer.c | 2
mm/shmem.c | 2
net/core/neighbour.c | 13 +++--
net/ipv4/af_inet.c | 1
net/ipv4/udp.c | 49 +++++++++++----------
net/ipv6/ip6_offload.c | 1
net/ipv6/ip6_output.c | 6 --
net/ipv6/udp.c | 65 +++++++++++++++-------------
net/nfc/hci/core.c | 10 ++++
net/sched/act_sample.c | 2
net/tls/tls_main.c | 17 +++++--
net/tls/tls_sw.c | 7 ---
security/keys/dh.c | 2
sound/firewire/bebob/bebob.c | 2
sound/firewire/bebob/bebob_maudio.c | 28 ++++++------
sound/firewire/digi00x/digi00x.c | 1
sound/firewire/fireface/ff-protocol-ff400.c | 9 ++-
sound/firewire/fireworks/fireworks.c | 2
sound/firewire/oxfw/oxfw.c | 10 ++++
sound/firewire/tascam/tascam.c | 1
sound/pci/emu10k1/emufx.c | 2
sound/soc/codecs/cs4265.c | 4 -
sound/soc/sh/rcar/core.c | 11 ++++
sound/soc/sh/rcar/rsnd.h | 7 +++
sound/soc/sh/rcar/ssi.c | 16 ++++--
64 files changed, 400 insertions(+), 247 deletions(-)
Alex Deucher (1):
drm/amdgpu: add new polaris pci id
Bjørn Mork (1):
qmi_wwan: set DTR for modems in forced USB2 mode
Boris Brezillon (1):
drm/vc4: Fix the "no scaling" case on multi-planar YUV formats
Boris Ostrovsky (1):
xen/x86/vpmu: Zero struct pt_regs before calling into sample handling code
Colin Ian King (1):
net: hp100: fix always-true check for link up state
Davide Caratti (1):
net/sched: act_sample: fix NULL dereference in the data path
Emil Lundmark (1):
drm: udl: Destroy framebuffer only if it was initialized
Eric Biggers (1):
ext4: show test_dummy_encryption mount option in /proc/mounts
Eric Dumazet (1):
ipv6: fix possible use-after-free in ip6_xmit()
Geert Uytterhoeven (1):
spi: Fix double IDR allocation with DT aliases
Greg Kroah-Hartman (2):
Revert "rpmsg: core: add support to power domains for devices"
Linux 4.14.73
Guillaume Nault (1):
pppoe: fix reception of frames with no mac header
Gustavo A. R. Silva (1):
tty: vt_ioctl: fix potential Spectre v1
Jiada Wang (1):
ASoC: rsnd: fixup not to call clk_get/set under non-atomic
Joel Fernandes (Google) (1):
mm: shmem.c: Correctly annotate new inodes for lockdep
Juergen Gross (1):
xen/netfront: don't bug in case of too many frags
Junxiao Bi (1):
ocfs2: fix ocfs2 read block panic
Kirill Kapranov (1):
spi: fix IDR collision on systems with both fixed and dynamic SPI bus numbers
Li Dongyang (1):
ext4: don't mark mmp buffer head dirty
Lubomir Rintel (1):
Revert "uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member name"
Lyude Paul (5):
drm/nouveau: Fix deadlocks in nouveau_connector_detect()
drm/nouveau/drm/nouveau: Don't forget to cancel hpd_work on suspend/unload
drm/nouveau/drm/nouveau: Fix bogus drm_kms_helper_poll_enable() placement
drm/nouveau/drm/nouveau: Use pm_runtime_get_noresume() in connector_detect()
drm/nouveau/drm/nouveau: Prevent handling ACPI HPD events too early
Mario Limonciello (1):
platform/x86: alienware-wmi: Correct a memory leak
Mika Westerberg (1):
Revert "PCI: Add ACS quirk for Intel 300 series"
Nadav Amit (1):
vmw_balloon: include asm/io.h
Paolo Abeni (2):
udp4: fix IP_CMSG_CHECKSUM for connected sockets
udp6: add missing checks on edumux packet processing
Richard Weinberger (1):
Revert "ubifs: xattr: Don't operate on deleted inodes"
Sabrina Dubroca (3):
tls: don't copy the key out of tls12_crypto_info_aes_gcm_128
tls: zero the crypto information from tls_context before freeing
tls: clear key material from kernel memory when do_tls_setsockopt_conf fails
Steve Muckle (1):
sched/fair: Fix vruntime_normalized() for remote non-migration wakeup
Steve Wise (1):
iw_cxgb4: only allow 1 flush on user qps
Suren Baghdasaryan (2):
NFC: Fix possible memory corruption when handling SHDLC I-Frame commands
NFC: Fix the number of pipes
Sébastien Szymanski (1):
ASoC: cs4265: fix MMTLR Data switch control
Takashi Sakamoto (9):
ALSA: bebob: fix memory leak for M-Audio FW1814 and ProjectMix I/O at error path
ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping
ALSA: fireface: fix memory leak in ff400_switch_fetching_mode()
ALSA: firewire-digi00x: fix memory leak of private data
ALSA: firewire-tascam: fix memory leak of private data
ALSA: fireworks: fix memory leak of response buffer at error path
ALSA: oxfw: fix memory leak for model-dependent data at error path
ALSA: oxfw: fix memory leak of discovered stream formats at error path
ALSA: oxfw: fix memory leak of private data
Theodore Ts'o (6):
ext4: check to make sure the rename(2)'s destination is not freed
ext4: avoid divide by zero fault when deleting corrupted inline directories
ext4: avoid arithemetic overflow that can trigger a BUG
ext4: recalucate superblock checksum after updating free blocks/inodes
ext4: fix online resize's handling of a too-small final block group
ext4: fix online resizing for bigalloc file systems with a 1k block size
Thomas Gleixner (1):
tick/nohz: Prevent bogus softirq pending warning
Toke Høiland-Jørgensen (1):
gso_segment: Reset skb->mac_len after modifying network header
Vaibhav Nagarnaik (1):
ring-buffer: Allow for rescheduling when removing pages
Vasily Khoruzhick (1):
neighbour: confirm neigh entries when ARP packet is received
Vincent Pelletier (2):
scsi: target: iscsi: Use hex2bin instead of a re-implementation
scsi: target: iscsi: Use bin2hex instead of a re-implementation
Willy Tarreau (2):
net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT
ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO
Zachary Zhang (1):
PCI: aardvark: Size bridges before resources allocation
I'm announcing the release of the 4.18.11 kernel.
All users of the 4.18 kernel series must upgrade.
The updated 4.18.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.18.y
and can be browsed at the normal kernel.org git web browser:
http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2
arch/x86/crypto/aegis128-aesni-glue.c | 1
arch/x86/crypto/aegis128l-aesni-glue.c | 1
arch/x86/crypto/aegis256-aesni-glue.c | 1
arch/x86/crypto/morus1280-sse2-glue.c | 1
arch/x86/crypto/morus640-sse2-glue.c | 1
arch/x86/xen/pmu.c | 2
drivers/ata/libata-core.c | 14 ++-
drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 14 +--
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 1
drivers/gpu/drm/i915/intel_display.c | 8 +
drivers/gpu/drm/nouveau/dispnv50/disp.c | 67 +++++++++++----
drivers/gpu/drm/nouveau/nouveau_connector.c | 42 +++++++--
drivers/gpu/drm/nouveau/nouveau_display.c | 44 +++++++--
drivers/gpu/drm/nouveau/nouveau_display.h | 2
drivers/gpu/drm/nouveau/nouveau_drm.c | 3
drivers/gpu/drm/nouveau/nouveau_fbcon.c | 57 ++++++++++++
drivers/gpu/drm/nouveau/nouveau_fbcon.h | 5 +
drivers/gpu/drm/udl/udl_fb.c | 8 +
drivers/gpu/drm/vc4/vc4_plane.c | 25 ++---
drivers/infiniband/hw/cxgb4/qp.c | 6 +
drivers/misc/vmw_balloon.c | 1
drivers/mtd/devices/m25p80.c | 26 +++++
drivers/mtd/nand/raw/denali.c | 6 +
drivers/net/appletalk/ipddp.c | 8 +
drivers/net/dsa/mv88e6xxx/global1.h | 2
drivers/net/dsa/mv88e6xxx/global1_atu.c | 2
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 9 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 9 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.h | 2
drivers/net/ethernet/hp/hp100.c | 2
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 21 +---
drivers/net/hyperv/netvsc_drv.c | 9 --
drivers/net/ppp/pppoe.c | 3
drivers/net/usb/qmi_wwan.c | 14 +--
drivers/net/xen-netfront.c | 8 +
drivers/pci/quirks.c | 6 -
drivers/platform/x86/alienware-wmi.c | 1
drivers/platform/x86/dell-smbios-wmi.c | 1
drivers/rpmsg/rpmsg_core.c | 7 -
drivers/spi/spi.c | 13 ++
drivers/target/iscsi/iscsi_target_auth.c | 45 +++-------
drivers/tty/vt/vt_ioctl.c | 4
fs/ext4/dir.c | 20 ++--
fs/ext4/ext4.h | 3
fs/ext4/inline.c | 4
fs/ext4/inode.c | 11 +-
fs/ext4/mmp.c | 1
fs/ext4/namei.c | 6 +
fs/ext4/resize.c | 23 ++++-
fs/ext4/super.c | 4
fs/ocfs2/buffer_head_io.c | 1
fs/ubifs/xattr.c | 24 -----
include/net/nfc/hci.h | 2
include/net/tls.h | 19 ++--
include/uapi/linux/keyctl.h | 2
include/uapi/sound/skl-tplg-interface.h | 106 ++++++++++++------------
kernel/bpf/verifier.c | 2
kernel/pid.c | 2
kernel/sched/fair.c | 3
kernel/trace/ring_buffer.c | 2
mm/Kconfig | 1
mm/shmem.c | 2
net/core/neighbour.c | 13 +-
net/core/rtnetlink.c | 2
net/ipv4/af_inet.c | 1
net/ipv4/udp.c | 49 +++++------
net/ipv6/ip6_offload.c | 1
net/ipv6/ip6_output.c | 6 -
net/ipv6/route.c | 44 ++++++---
net/ipv6/udp.c | 65 ++++++++------
net/nfc/hci/core.c | 10 ++
net/sched/act_sample.c | 2
net/socket.c | 22 +++-
net/tls/tls_device.c | 4
net/tls/tls_device_fallback.c | 2
net/tls/tls_main.c | 22 +++-
net/tls/tls_sw.c | 21 ++--
security/keys/dh.c | 2
sound/firewire/bebob/bebob.c | 2
sound/firewire/bebob/bebob_maudio.c | 28 +++---
sound/firewire/digi00x/digi00x.c | 1
sound/firewire/fireface/ff-protocol-ff400.c | 9 +-
sound/firewire/fireworks/fireworks.c | 2
sound/firewire/oxfw/oxfw.c | 10 ++
sound/firewire/tascam/tascam.c | 1
sound/pci/emu10k1/emufx.c | 2
sound/soc/codecs/cs4265.c | 4
sound/soc/codecs/tas6424.c | 12 ++
sound/soc/codecs/wm9712.c | 2
sound/soc/sh/rcar/core.c | 11 ++
sound/soc/sh/rcar/rsnd.h | 7 +
sound/soc/sh/rcar/ssi.c | 16 ++-
93 files changed, 713 insertions(+), 402 deletions(-)
Alex Deucher (1):
drm/amdgpu: add new polaris pci id
Alexei Starovoitov (1):
bpf/verifier: disallow pointer subtraction
Andrew F. Davis (1):
ASoC: tas6424: Save last fault register even when clear
Andrew Lunn (1):
net: dsa: mv88e6xxx: Fix ATU Miss Violation
Antoine Tenart (1):
net: mvpp2: let phylink manage the carrier state
Bjørn Mork (1):
qmi_wwan: set DTR for modems in forced USB2 mode
Boris Brezillon (2):
mtd: devices: m25p80: Make sure the buffer passed in op is DMA-able
drm/vc4: Fix the "no scaling" case on multi-planar YUV formats
Boris Ostrovsky (1):
xen/x86/vpmu: Zero struct pt_regs before calling into sample handling code
Colin Ian King (1):
net: hp100: fix always-true check for link up state
Daniel Borkmann (1):
tls: fix currently broken MSG_PEEK behavior
Davide Caratti (1):
net/sched: act_sample: fix NULL dereference in the data path
Dmitry V. Levin (1):
ASoC: uapi: fix sound/skl-tplg-interface.h userspace compilation errors
Emil Lundmark (1):
drm: udl: Destroy framebuffer only if it was initialized
Eric Biggers (1):
ext4: show test_dummy_encryption mount option in /proc/mounts
Eric Dumazet (1):
ipv6: fix possible use-after-free in ip6_xmit()
Geert Uytterhoeven (1):
spi: Fix double IDR allocation with DT aliases
Greg Kroah-Hartman (2):
Revert "rpmsg: core: add support to power domains for devices"
Linux 4.18.11
Guillaume Nault (1):
pppoe: fix reception of frames with no mac header
Gustavo A. R. Silva (1):
tty: vt_ioctl: fix potential Spectre v1
Imre Deak (1):
drm/i915/bdw: Increase IPS disable timeout to 100ms
Jens Axboe (1):
libata: mask swap internal and hardware tag
Jiada Wang (1):
ASoC: rsnd: fixup not to call clk_get/set under non-atomic
Joel Fernandes (Google) (1):
mm: shmem.c: Correctly annotate new inodes for lockdep
Johannes Berg (1):
socket: fix struct ifreq size in compat ioctl
Juergen Gross (1):
xen/netfront: don't bug in case of too many frags
Junxiao Bi (1):
ocfs2: fix ocfs2 read block panic
KJ Tsanaktsidis (1):
fork: report pid exhaustion correctly
Kirill Kapranov (1):
spi: fix IDR collision on systems with both fixed and dynamic SPI bus numbers
Li Dongyang (1):
ext4: don't mark mmp buffer head dirty
Lubomir Rintel (1):
Revert "uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member name"
Lyude Paul (9):
drm/nouveau: Reset MST branching unit before enabling
drm/nouveau: Only write DP_MSTM_CTRL when needed
drm/nouveau: Remove duplicate poll_enable() in pmops_runtime_suspend()
drm/nouveau: Fix deadlocks in nouveau_connector_detect()
drm/nouveau/drm/nouveau: Don't forget to cancel hpd_work on suspend/unload
drm/nouveau/drm/nouveau: Fix bogus drm_kms_helper_poll_enable() placement
drm/nouveau/drm/nouveau: Fix deadlock with fb_helper with async RPM requests
drm/nouveau/drm/nouveau: Use pm_runtime_get_noresume() in connector_detect()
drm/nouveau/drm/nouveau: Prevent handling ACPI HPD events too early
Marcel Ziswiler (1):
ASoC: wm9712: fix replace codec to component
Mario Limonciello (2):
platform/x86: dell-smbios-wmi: Correct a memory leak
platform/x86: alienware-wmi: Correct a memory leak
Masahiro Yamada (1):
mtd: rawnand: denali: fix a race condition when DMA is kicked
Michael Chan (1):
bnxt_en: Fix VF mac address regression.
Mika Westerberg (1):
Revert "PCI: Add ACS quirk for Intel 300 series"
Nadav Amit (1):
vmw_balloon: include asm/io.h
Ondrej Mosnacek (1):
crypto: x86/aegis,morus - Do not require OSXSAVE for SSE2
Paolo Abeni (2):
udp4: fix IP_CMSG_CHECKSUM for connected sockets
udp6: add missing checks on edumux packet processing
Pasha Tatashin (1):
mm: disable deferred struct page for 32-bit arches
Peter Oskolkov (1):
net/ipv6: do not copy dst flags on rt init
Richard Weinberger (1):
Revert "ubifs: xattr: Don't operate on deleted inodes"
Roopa Prabhu (1):
net: rtnl_configure_link: fix dev flags changes arg to __dev_notify_flags
Sabrina Dubroca (3):
tls: don't copy the key out of tls12_crypto_info_aes_gcm_128
tls: zero the crypto information from tls_context before freeing
tls: clear key material from kernel memory when do_tls_setsockopt_conf fails
Stephen Hemminger (1):
hv_netvsc: fix schedule in RCU context
Steve Muckle (1):
sched/fair: Fix vruntime_normalized() for remote non-migration wakeup
Steve Wise (1):
iw_cxgb4: only allow 1 flush on user qps
Suren Baghdasaryan (2):
NFC: Fix possible memory corruption when handling SHDLC I-Frame commands
NFC: Fix the number of pipes
Sébastien Szymanski (1):
ASoC: cs4265: fix MMTLR Data switch control
Takashi Sakamoto (9):
ALSA: bebob: fix memory leak for M-Audio FW1814 and ProjectMix I/O at error path
ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping
ALSA: fireface: fix memory leak in ff400_switch_fetching_mode()
ALSA: firewire-digi00x: fix memory leak of private data
ALSA: firewire-tascam: fix memory leak of private data
ALSA: fireworks: fix memory leak of response buffer at error path
ALSA: oxfw: fix memory leak for model-dependent data at error path
ALSA: oxfw: fix memory leak of discovered stream formats at error path
ALSA: oxfw: fix memory leak of private data
Theodore Ts'o (6):
ext4: check to make sure the rename(2)'s destination is not freed
ext4: avoid divide by zero fault when deleting corrupted inline directories
ext4: avoid arithemetic overflow that can trigger a BUG
ext4: recalucate superblock checksum after updating free blocks/inodes
ext4: fix online resize's handling of a too-small final block group
ext4: fix online resizing for bigalloc file systems with a 1k block size
Toke Høiland-Jørgensen (1):
gso_segment: Reset skb->mac_len after modifying network header
Toshi Kani (2):
ext4, dax: add ext4_bmap to ext4_dax_aops
ext4, dax: set ext4_dax_aops for dax files
Vaibhav Nagarnaik (1):
ring-buffer: Allow for rescheduling when removing pages
Vasily Khoruzhick (1):
neighbour: confirm neigh entries when ARP packet is received
Vincent Pelletier (2):
scsi: target: iscsi: Use hex2bin instead of a re-implementation
scsi: target: iscsi: Use bin2hex instead of a re-implementation
Willy Tarreau (2):
net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT
ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO
Xin Long (1):
ipv6: use rt6_info members when dst is set in rt6_fill_node
The CONFIG_CMDLINE-related logic in early_init_dt_scan_chosen() falls
back to copying CONFIG_CMDLINE into boot_command_line/data if the DT has
a /chosen node but that node has no bootargs property or a bootargs
property of length zero.
This is problematic for the MIPS architecture because we support
concatenating arguments from either the DT or the bootloader with those
from CONFIG_CMDLINE, but the behaviour of early_init_dt_scan_chosen()
gives us no way of knowing whether boot_command_line contains arguments
from DT or already contains CONFIG_CMDLINE. This can lead to us
concatenating CONFIG_CMDLINE with itself, duplicating command line
arguments which can be problematic (eg. for earlycon which will attempt
to register the same console twice & warn about it).
Move the CONFIG_CMDLINE-related logic to a weak function that
architectures can provide their own version of, such that we continue to
use the existing logic for architectures where it's suitable but also
allow MIPS to override this behaviour such that the architecture code
knows when CONFIG_CMDLINE is used.
Signed-off-by: Paul Burton <paul.burton(a)mips.com>
References: https://patchwork.linux-mips.org/patch/18804/
Cc: Frank Rowand <frowand.list(a)gmail.com>
Cc: Jaedon Shin <jaedon.shin(a)gmail.com>
Cc: Mathieu Malaterre <malat(a)debian.org>
Cc: Rob Herring <robh+dt(a)kernel.org>
Cc: devicetree(a)vger.kernel.org
Cc: linux-kernel(a)vger.kernel.org
Cc: linux-mips(a)linux-mips.org
Cc: stable(a)vger.kernel.org # v4.16+
---
Marked for stable as a prerequisite of the following patch.
DT maintainers: if you're OK with this it'd be great to get an ack so
this can go through the mips-fixes tree.
---
drivers/of/fdt.c | 55 +++++++++++++++++++++++++++++-------------
include/linux/of_fdt.h | 1 +
2 files changed, 39 insertions(+), 17 deletions(-)
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 800ad252cf9c..94c474315cff 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -1072,6 +1072,43 @@ int __init early_init_dt_scan_memory(unsigned long node, const char *uname,
return 0;
}
+/**
+ * early_init_dt_fixup_cmdline_arch() - Modify a command line taken from DT
+ * @data: A pointer to the command line
+ *
+ * This function provides an opportunity to make modifications to command line
+ * arguments taken from a device tree before use, for example to concatenate
+ * them with arguments from other sources or replace them entirely.
+ *
+ * Modifications should be made directly to the string pointed at by @data,
+ * which is COMMAND_LINE_SIZE bytes in size.
+ *
+ * The default implementation supports extending or overriding the DT command
+ * line arguments using CONFIG_CMDLINE. Since other sources of command line
+ * arguments are platform-specific, architectures can provide their own
+ * implementation of this function to obtain their desired behaviour.
+ */
+void __init __weak early_init_dt_fixup_cmdline_arch(char *data)
+{
+ /*
+ * CONFIG_CMDLINE is meant to be a default in case nothing else
+ * managed to set the command line, unless CONFIG_CMDLINE_FORCE
+ * is set in which case we override whatever was found earlier.
+ */
+#ifdef CONFIG_CMDLINE
+#if defined(CONFIG_CMDLINE_EXTEND)
+ strlcat(data, " ", COMMAND_LINE_SIZE);
+ strlcat(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
+#elif defined(CONFIG_CMDLINE_FORCE)
+ strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
+#else
+ /* No arguments from boot loader, use kernel's cmdl */
+ if (!data[0])
+ strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
+#endif
+#endif /* CONFIG_CMDLINE */
+}
+
int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
int depth, void *data)
{
@@ -1091,23 +1128,7 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
if (p != NULL && l > 0)
strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE));
- /*
- * CONFIG_CMDLINE is meant to be a default in case nothing else
- * managed to set the command line, unless CONFIG_CMDLINE_FORCE
- * is set in which case we override whatever was found earlier.
- */
-#ifdef CONFIG_CMDLINE
-#if defined(CONFIG_CMDLINE_EXTEND)
- strlcat(data, " ", COMMAND_LINE_SIZE);
- strlcat(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
-#elif defined(CONFIG_CMDLINE_FORCE)
- strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
-#else
- /* No arguments from boot loader, use kernel's cmdl*/
- if (!((char *)data)[0])
- strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
-#endif
-#endif /* CONFIG_CMDLINE */
+ early_init_dt_fixup_cmdline_arch(data);
pr_debug("Command line is: %s\n", (char*)data);
diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h
index b9cd9ebdf9b9..98935695f49d 100644
--- a/include/linux/of_fdt.h
+++ b/include/linux/of_fdt.h
@@ -80,6 +80,7 @@ extern void early_init_dt_add_memory_arch(u64 base, u64 size);
extern int early_init_dt_mark_hotplug_memory_arch(u64 base, u64 size);
extern int early_init_dt_reserve_memory_arch(phys_addr_t base, phys_addr_t size,
bool no_map);
+extern void early_init_dt_fixup_cmdline_arch(char *data);
extern u64 dt_mem_next_cell(int s, const __be32 **cellp);
/* Early flat tree scan hooks */
--
2.18.0