This is the start of the stable review cycle for the 3.18.105 release.
There are 121 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 Fri Apr 13 18:34:28 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/v3.x/stable-review/patch-3.18.105-r…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-3.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 3.18.105-rc1
Paolo Abeni <pabeni(a)redhat.com>
ipv6: the entire IPv6 header chain must fit the first fragment
Craig Dillabaugh <cdillaba(a)mojatatu.com>
net sched actions: fix dumping which requires several messages to user space
Heiner Kallweit <hkallweit1(a)gmail.com>
r8169: fix setting driver_data after register_netdev
Eric Dumazet <edumazet(a)google.com>
ip6_tunnel: better validate user provided tunnel names
Eric Dumazet <edumazet(a)google.com>
vti6: better validate user provided tunnel names
Eric Dumazet <edumazet(a)google.com>
ip6_gre: better validate user provided tunnel names
Eric Dumazet <edumazet(a)google.com>
ipv6: sit: better validate user provided tunnel names
Eric Dumazet <edumazet(a)google.com>
ip_tunnel: better validate user provided tunnel names
Eric Dumazet <edumazet(a)google.com>
net: fool proof dev_valid_name()
Xin Long <lucien.xin(a)gmail.com>
bonding: process the err returned by dev_set_allmulti properly in bond_enslave
Xin Long <lucien.xin(a)gmail.com>
bonding: move dev_mc_sync after master_upper_dev_link in bond_enslave
Xin Long <lucien.xin(a)gmail.com>
bonding: fix the err path for dev hwaddr sync in bond_enslave
Jason Wang <jasowang(a)redhat.com>
vhost: correctly remove wait queue during poll failure
Kai-Heng Feng <kai.heng.feng(a)canonical.com>
sky2: Increase D3 delay to sky2 stops working after suspend
Eric Dumazet <edumazet(a)google.com>
sctp: sctp_sockaddr_af must check minimal addr length for AF_INET6
Eric Dumazet <edumazet(a)google.com>
sctp: do not leak kernel memory to user space
Eric Dumazet <edumazet(a)google.com>
pptp: remove a buggy dst release in pptp_connect()
Alexander Potapenko <glider(a)google.com>
netlink: make sure nladdr has correct size in netlink_connect()
Eric Dumazet <edumazet(a)google.com>
net: fix possible out-of-bound read in skb_network_protocol()
Mel Gorman <mgorman(a)suse.de>
futex: Remove requirement for lock_page() in get_futex_key()
Theodore Ts'o <tytso(a)mit.edu>
random: use lockless method of accessing and updating f->reg_idx
Nathan Chancellor <natechancellor(a)gmail.com>
virtio_net: check return value of skb_to_sgvec in one more location
Jason A. Donenfeld <Jason(a)zx2c4.com>
virtio_net: check return value of skb_to_sgvec always
Jason A. Donenfeld <Jason(a)zx2c4.com>
rxrpc: check return value of skb_to_sgvec always
Jason A. Donenfeld <Jason(a)zx2c4.com>
ipsec: check return value of skb_to_sgvec always
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
EDAC, mv64x60: Fix an error handling path
Tony Lindgren <tony(a)atomide.com>
tty: n_gsm: Allow ADM response in addition to UA for control dlci
chenxiang <chenxiang66(a)hisilicon.com>
scsi: libsas: initialize sas_phy status according to response of DISCOVER
Jason Yan <yanaijie(a)huawei.com>
scsi: libsas: fix error when getting phy events
Jason Yan <yanaijie(a)huawei.com>
scsi: libsas: fix memory leak in sas_smp_get_phy_events()
Tang Junhui <tang.junhui(a)zte.com.cn>
bcache: segregate flash only volume write streams
Tang Junhui <tang.junhui(a)zte.com.cn>
bcache: stop writeback thread after detaching
Roopa Prabhu <roopa(a)cumulusnetworks.com>
vxlan: dont migrate permanent fdb entries during learn
Bob Moore <robert.moore(a)intel.com>
ACPICA: Disassembler: Abort on an invalid/unknown AML opcode
Lv Zheng <lv.zheng(a)intel.com>
ACPICA: Events: Add runtime stub support for event APIs
Marcel Holtmann <marcel(a)holtmann.org>
Bluetooth: Send HCI Set Event Mask Page 2 command only when needed
Lorenzo Bianconi <lorenzo.bianconi83(a)gmail.com>
iio: magnetometer: st_magn_spi: fix spi_device_id table
Jag Raman <jag.raman(a)oracle.com>
sparc64: ldc abort during vds iso boot
Xin Long <lucien.xin(a)gmail.com>
sctp: fix recursive locking warning in sctp_do_peeloff
Mintz, Yuval <Yuval.Mintz(a)cavium.com>
bnx2x: Allow vfs to disable txvlan offload
Arnd Bergmann <arnd(a)arndb.de>
xen: avoid type warning in xchg_xen_ulong
Namhyung Kim <namhyung(a)kernel.org>
perf tests: Decompress kernel module before objdump
Christian Lamparter <chunkeey(a)googlemail.com>
net: emac: fix reset timeout with AR8035 phy
Marcin Nowakowski <marcin.nowakowski(a)imgtec.com>
MIPS: kprobes: flush_insn_slot should flush only if probe initialised
Marcin Nowakowski <marcin.nowakowski(a)imgtec.com>
MIPS: mm: fixed mappings: correct initialisation
Peter Zijlstra <peterz(a)infradead.org>
perf/core: Correct event creation with PERF_FORMAT_GROUP
Chris Wilson <chris(a)chris-wilson.co.uk>
e1000e: Undo e1000e_pm_freeze if __e1000_shutdown fails
Russell King <rmk+kernel(a)armlinux.org.uk>
net: phy: avoid genphy_aneg_done() for PHYs without clause 22 support
A Sun <as1033x(a)comcast.net>
mceusb: sporadic RX truncation corruption fix
Pan Bian <bianpan2016(a)163.com>
cx25840: fix unchecked return values
Jacob Keller <jacob.e.keller(a)intel.com>
e1000e: fix race condition around skb_tstamp_tx()
Robert Jarzmik <robert.jarzmik(a)free.fr>
tags: honor COMPILED_SOURCE with apart output directory
Milian Wolff <milian.wolff(a)kdab.com>
perf report: Ensure the perf DSO mapping matches what libdw sees
Talat Batheesh <talatb(a)mellanox.com>
net/mlx4: Fix the check in attaching steering rules
Jason A. Donenfeld <Jason(a)zx2c4.com>
skbuff: return -EMSGSIZE in skb_to_sgvec to prevent overflow
Dmitry Monakhov <dmonakhov(a)openvz.org>
bio-integrity: Do not allocate integrity context for bio w/o data
Thomas Bogendoerfer <tsbogend(a)alpha.franken.de>
Fix serial console on SNI RM400 machines
Tomi Valkeinen <tomi.valkeinen(a)ti.com>
drm/omap: fix tiled buffer stride calculations
Jia-Ju Bai <baijiaju1990(a)163.com>
mISDN: Fix a sleep-in-atomic bug
Jia-Ju Bai <baijiaju1990(a)163.com>
qlcnic: Fix a sleep-in-atomic bug in qlcnic_82xx_hw_write_wx_2M and qlcnic_82xx_hw_read_wx_2M
Jiri Olsa <jolsa(a)kernel.org>
perf trace: Add mmap alias for s390
Michael Ellerman <mpe(a)ellerman.id.au>
powerpc/spufs: Fix coredump of SPU contexts
Roman Pen <roman.penyaev(a)profitbricks.com>
KVM: SVM: do not zero out segment attributes if segment is unusable or not present
Gustavo A. R. Silva <garsilva(a)embeddedor.com>
net: freescale: fix potential null pointer dereference
Vaibhav Jain <vaibhav(a)linux.vnet.ibm.com>
rtc: interface: Validate alarm-time before handling rollover
Will Deacon <will.deacon(a)arm.com>
arm64: futex: Fix undefined behaviour with FUTEX_OP_OPARG_SHIFT usage
Ivan Mikhaylov <ivan(a)de.ibm.com>
powerpc/[booke|4xx]: Don't clobber TCR[WP] when setting TCR[DIE]
Miklos Szeredi <mszeredi(a)redhat.com>
ovl: filter trusted xattr for non-admin
Firo Yang <firogm(a)gmail.com>
hdlcdrv: Fix divide by zero in hdlcdrv_ioctl
Colin Ian King <colin.king(a)canonical.com>
wl1251: check return from call to wl1251_acx_arp_ip_filter
Pieter \"PoroCYon\" Sluys <pcy(a)national.shitposting.agency>
vfb: fix video mode and line_length being set when loaded
Rafael David Tinoco <rafael.tinoco(a)canonical.com>
scsi: libiscsi: Allow sd_shutdown on bad transport
Hangbin Liu <liuhangbin(a)gmail.com>
l2tp: fix missing print session offset info
linzhang <xiaolou4617(a)gmail.com>
net: llc: add lock_sock in llc_ui_bind to avoid a race condition
Jan H. Schönherr <jschoenh(a)amazon.de>
KVM: nVMX: Fix handling of lmsw instruction
Nithin Sujir <nsujir(a)tintri.com>
bonding: Don't update slave->link until ready to commit
Roman Kapl <roman.kapl(a)sysgo.com>
net: move somaxconn init from sysctl code
Eryu Guan <eguan(a)redhat.com>
ext4: fix off-by-one on max nr_pages in ext4_find_unwritten_pgoff()
Michael Schmitz <schmitzmic(a)gmail.com>
fix race in drivers/char/random.c:get_reg()
Maurizio Lombardi <mlombard(a)redhat.com>
scsi: bnx2fc: fix race condition in bnx2fc_get_host_stats()
Liping Zhang <zlpnobody(a)gmail.com>
netfilter: ctnetlink: fix incorrect nf_ct_put during hash resize
Dan Carpenter <dan.carpenter(a)oracle.com>
libceph: NULL deref on crush_decode() error path
Dan Carpenter <dan.carpenter(a)oracle.com>
block: fix an error code in add_partition()
Tin Huynh <tnhuynh(a)apm.com>
leds: pca955x: Correct I2C Functionality
Kees Cook <keescook(a)chromium.org>
ray_cs: Avoid reading past end of buffer
Suman Anna <s-anna(a)ti.com>
ARM: davinci: da8xx: Create DSP device only when assigned memory
Antony Antony <antony(a)phenome.org>
xfrm: fix state migration copy replay sequence numbers
Michael Ellerman <mpe(a)ellerman.id.au>
selftests/powerpc: Fix TM resched DSCR test with some compilers
Colin Ian King <colin.king(a)canonical.com>
ath5k: fix memory leak on buf on failed eeprom read
Geert Uytterhoeven <geert+renesas(a)glider.be>
sh_eth: Use platform device for printing before register_netdev()
Alan Stern <stern(a)rowland.harvard.edu>
USB: ene_usb6250: fix SCSI residue overwriting
linzhang <xiaolou4617(a)gmail.com>
net: x25: fix one potential use-after-free issue
Alan Stern <stern(a)rowland.harvard.edu>
USB: ene_usb6250: fix first command execution
Jisheng Zhang <jszhang(a)marvell.com>
usb: chipidea: properly handle host or gadget initialization failure
Ihar Hrachyshka <ihrachys(a)redhat.com>
neighbour: update neigh timestamps iff update is effective
Thomas Petazzoni <thomas.petazzoni(a)free-electrons.com>
ata: libahci: properly propagate return value of platform_get_irq()
Colin Ian King <colin.king(a)canonical.com>
btrfs: fix incorrect error return ret being passed to mapping_set_error
Pan Bian <bianpan2016(a)163.com>
usb: dwc3: keystone: check return value
Anup Patel <anup.patel(a)broadcom.com>
async_tx: Fix DMA_PREP_FENCE usage in do_async_gen_syndrome()
Mahesh Bandewar <maheshb(a)google.com>
ipv6: avoid dad-failures for addresses with NODAD
Fabio Estevam <fabio.estevam(a)nxp.com>
ARM: dts: imx6qdl-wandboard: Fix audio channel swap
Peter Zijlstra <peterz(a)infradead.org>
x86/tsc: Provide 'tsc=unstable' boot parameter
Andrea della Porta <sfaragnaus(a)gmail.com>
staging: wlan-ng: prism2mgmt.c: fixed a double endian conversion before calling hfa384x_drvr_setconfig16, also fixes relative sparse warning
Dan Carpenter <dan.carpenter(a)oracle.com>
PowerCap: Fix an error code in powercap_register_zone()
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
SMB2: Fix share type handling
Neil Horman <nhorman(a)tuxdriver.com>
vmxnet3: ensure that adapter is in proper state during force_close
Paul Mackerras <paulus(a)ozlabs.org>
KVM: PPC: Book3S PR: Check copy_to/from_user return values
Colin Ian King <colin.king(a)canonical.com>
netxen_nic: set rcode to the return status from the call to netxen_issue_cmd
Stefan Wahren <stefan.wahren(a)i2se.com>
net: qca_spi: Fix alignment issues in rx path
Rabin Vincent <rabinv(a)axis.com>
CIFS: silence lockdep splat in cifs_relock_file()
Talat Batheesh <talatb(a)mellanox.com>
net/mlx4_en: Avoid adding steering rules with invalid ring
Heiko Carstens <heiko.carstens(a)de.ibm.com>
s390: move _text symbol to address higher than zero
Kirill Tkhai <ktkhai(a)virtuozzo.com>
pidns: disable pid allocation if pid_ns_prepare_proc() is failed in alloc_pid()
J. Bruce Fields <bfields(a)redhat.com>
lockd: fix lockd shutdown race
Grygorii Strashko <grygorii.strashko(a)ti.com>
net: ethernet: ti: cpsw: adjust cpsw fifos depth for fullduplex flow control
Kees Cook <keescook(a)chromium.org>
qlge: Avoid reading past end of buffer
Kees Cook <keescook(a)chromium.org>
bna: Avoid reading past end of buffer
Luca Coelho <luciano.coelho(a)intel.com>
mac80211: bail out from prep_connection() if a reconfig is ongoing
Steffen Klassert <steffen.klassert(a)secunet.com>
af_key: Fix slab-out-of-bounds in pfkey_compile_policy.
Bart Van Assche <bart.vanassche(a)sandisk.com>
IB/srpt: Fix abort handling
Trond Myklebust <trond.myklebust(a)primarydata.com>
NFSv4.1: RECLAIM_COMPLETE must handle NFS4ERR_CONN_NOT_BOUND_TO_SESSION
-------------
Diffstat:
Makefile | 4 +-
arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 1 +
arch/arm/include/asm/xen/events.h | 2 +-
arch/arm/mach-davinci/devices-da8xx.c | 10 +++
arch/arm64/include/asm/futex.h | 8 +-
arch/mips/include/asm/kprobes.h | 3 +-
arch/mips/mm/pgtable-32.c | 6 +-
arch/powerpc/kernel/time.c | 14 +++-
arch/powerpc/kvm/book3s_pr_papr.c | 34 ++++++--
arch/powerpc/platforms/cell/spufs/coredump.c | 2 +
arch/s390/kernel/vmlinux.lds.S | 8 +-
arch/sparc/kernel/ldc.c | 7 +-
arch/x86/kernel/tsc.c | 2 +
arch/x86/kvm/svm.c | 24 +++---
arch/x86/kvm/vmx.c | 7 +-
block/bio-integrity.c | 3 +
block/partition-generic.c | 4 +-
crypto/async_tx/async_pq.c | 5 +-
drivers/acpi/acpica/evxfevnt.c | 18 ++++
drivers/acpi/acpica/psobject.c | 14 ++++
drivers/ata/libahci_platform.c | 5 +-
drivers/char/random.c | 10 ++-
drivers/edac/mv64x60_edac.c | 2 +-
drivers/gpu/drm/omapdrm/omap_gem.c | 4 +-
drivers/iio/magnetometer/st_magn_spi.c | 2 -
drivers/infiniband/ulp/srpt/ib_srpt.c | 6 +-
drivers/isdn/mISDN/stack.c | 2 +-
drivers/leds/leds-pca955x.c | 2 +-
drivers/md/bcache/alloc.c | 19 +++--
drivers/md/bcache/super.c | 6 ++
drivers/media/i2c/cx25840/cx25840-core.c | 36 ++++----
drivers/media/rc/mceusb.c | 9 +-
drivers/net/bonding/bond_main.c | 84 ++++++++++---------
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 19 ++++-
drivers/net/ethernet/brocade/bna/bfa_ioc.c | 2 +-
drivers/net/ethernet/freescale/fsl_pq_mdio.c | 9 +-
drivers/net/ethernet/ibm/emac/core.c | 26 +++++-
drivers/net/ethernet/intel/e1000e/netdev.c | 17 +++-
drivers/net/ethernet/marvell/sky2.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/mcg.c | 15 +++-
drivers/net/ethernet/mellanox/mlx4/qp.c | 13 +++
.../net/ethernet/qlogic/netxen/netxen_nic_ctx.c | 2 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c | 2 +-
drivers/net/ethernet/qlogic/qlge/qlge_dbg.c | 4 +-
drivers/net/ethernet/qualcomm/qca_spi.c | 10 ++-
drivers/net/ethernet/realtek/r8169.c | 4 +-
drivers/net/ethernet/renesas/sh_eth.c | 2 +-
drivers/net/ethernet/ti/cpsw.c | 16 ++++
drivers/net/hamradio/hdlcdrv.c | 2 +
drivers/net/phy/phy.c | 6 ++
drivers/net/ppp/pptp.c | 1 -
drivers/net/virtio_net.c | 16 +++-
drivers/net/vmxnet3/vmxnet3_drv.c | 5 ++
drivers/net/vxlan.c | 2 +-
drivers/net/wireless/ath/ath5k/debug.c | 5 +-
drivers/net/wireless/ray_cs.c | 7 +-
drivers/net/wireless/ti/wl1251/main.c | 3 +-
drivers/powercap/powercap_sys.c | 1 +
drivers/rtc/interface.c | 9 +-
drivers/scsi/bnx2fc/bnx2fc.h | 1 +
drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 10 ++-
drivers/scsi/libiscsi.c | 24 +++++-
drivers/scsi/libsas/sas_expander.c | 4 +-
drivers/staging/wlan-ng/prism2mgmt.c | 2 +-
drivers/tty/n_gsm.c | 17 +++-
drivers/tty/serial/sccnxp.c | 15 ++--
drivers/usb/chipidea/core.c | 29 +++++--
drivers/usb/dwc3/dwc3-keystone.c | 4 +
drivers/usb/storage/ene_ub6250.c | 11 ++-
drivers/vhost/vhost.c | 3 +-
drivers/video/fbdev/vfb.c | 17 ++++
fs/btrfs/extent_io.c | 2 +-
fs/cifs/file.c | 2 +-
fs/cifs/smb2pdu.c | 14 ++--
fs/ext4/file.c | 2 +-
fs/lockd/svc.c | 6 +-
fs/nfs/nfs4proc.c | 7 +-
fs/nfs/nfs4state.c | 10 ++-
fs/overlayfs/inode.c | 12 ++-
include/linux/mlx4/qp.h | 1 +
include/linux/skbuff.h | 8 +-
include/net/x25.h | 4 +-
kernel/events/core.c | 15 ++--
kernel/futex.c | 98 ++++++++++++++++++++--
kernel/pid.c | 4 +-
net/bluetooth/hci_core.c | 17 +++-
net/ceph/osdmap.c | 1 +
net/core/dev.c | 4 +-
net/core/neighbour.c | 14 +++-
net/core/net_namespace.c | 19 +++++
net/core/skbuff.c | 65 +++++++++-----
net/core/sysctl_net_core.c | 2 -
net/ipv4/ah4.c | 8 +-
net/ipv4/esp4.c | 12 ++-
net/ipv4/ip_tunnel.c | 11 +--
net/ipv6/addrconf.c | 5 +-
net/ipv6/ah6.c | 8 +-
net/ipv6/esp6.c | 12 ++-
net/ipv6/ip6_gre.c | 8 +-
net/ipv6/ip6_output.c | 13 ++-
net/ipv6/ip6_tunnel.c | 7 +-
net/ipv6/ip6_vti.c | 7 +-
net/ipv6/sit.c | 8 +-
net/key/af_key.c | 2 +-
net/l2tp/l2tp_netlink.c | 2 +
net/llc/af_llc.c | 3 +
net/mac80211/mlme.c | 4 +
net/netfilter/nf_conntrack_netlink.c | 7 +-
net/netlink/af_netlink.c | 3 +
net/rxrpc/rxkad.c | 21 +++--
net/sched/act_api.c | 4 +-
net/sctp/ipv6.c | 4 +-
net/sctp/socket.c | 17 ++--
net/x25/af_x25.c | 24 ++++--
net/x25/sysctl_net_x25.c | 5 +-
net/xfrm/xfrm_state.c | 2 +
scripts/tags.sh | 1 +
tools/perf/builtin-trace.c | 4 +
tools/perf/tests/code-reading.c | 20 ++++-
tools/perf/util/unwind-libdw.c | 8 ++
.../testing/selftests/powerpc/tm/tm-resched-dscr.c | 2 +-
121 files changed, 925 insertions(+), 314 deletions(-)
Hi,
[This is an automated email]
This commit has been processed because it contains a "Fixes:" tag,
fixing commit: c71bf099abdd Btrfs: Avoid orphan inodes cleanup while replaying log.
The bot has also determined it's probably a bug fixing patch. (score: 6.2138)
The bot has tested the following trees: v4.16.1, v4.15.16, v4.14.33, v4.9.93, v4.4.127.
v4.16.1: Build OK!
v4.15.16: Build OK!
v4.14.33: Build OK!
v4.9.93: Build failed! Errors:
tree-log.c:2367:24: error: ‘struct btrfs_fs_info’ has no member named ‘sectorsize’
tree-log.c:2367:24: error: ‘struct btrfs_fs_info’ has no member named ‘sectorsize’
tree-log.c:4224:13: error: ‘struct inode’ has no member named ‘flags’; did you mean ‘i_flags’?
tree-log.c:4229:38: error: ‘struct inode’ has no member named ‘vfs_inode’
tree-log.c:4239:4: error: implicit declaration of function ‘refcount_inc’; did you mean ‘i_readcount_inc’? [-Werror=implicit-function-declaration]
v4.4.127: Failed to apply! Possible dependencies:
0132761017e0 ("btrfs: fix string and comment grammatical issues and typos")
--
Thanks,
Sasha
The patch
ASoC: fsl_esai: Fix divisor calculation failure at lower ratio
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
>From c656941df9bc80f7ec65b92ca73c42f8b0b62628 Mon Sep 17 00:00:00 2001
From: Nicolin Chen <nicoleotsuka(a)gmail.com>
Date: Sun, 8 Apr 2018 16:57:35 -0700
Subject: [PATCH] ASoC: fsl_esai: Fix divisor calculation failure at lower
ratio
When the desired ratio is less than 256, the savesub (tolerance)
in the calculation would become 0. This will then fail the loop-
search immediately without reporting any errors.
But if the ratio is smaller enough, there is no need to calculate
the tolerance because PM divisor alone is enough to get the ratio.
So a simple fix could be just to set PM directly instead of going
into the loop-search.
Reported-by: Marek Vasut <marex(a)denx.de>
Signed-off-by: Nicolin Chen <nicoleotsuka(a)gmail.com>
Tested-by: Marek Vasut <marex(a)denx.de>
Reviewed-by: Fabio Estevam <fabio.estevam(a)nxp.com>
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Cc: stable(a)vger.kernel.org
---
sound/soc/fsl/fsl_esai.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/sound/soc/fsl/fsl_esai.c b/sound/soc/fsl/fsl_esai.c
index 40a700493f4c..da8fd98c7f51 100644
--- a/sound/soc/fsl/fsl_esai.c
+++ b/sound/soc/fsl/fsl_esai.c
@@ -144,6 +144,13 @@ static int fsl_esai_divisor_cal(struct snd_soc_dai *dai, bool tx, u32 ratio,
psr = ratio <= 256 * maxfp ? ESAI_xCCR_xPSR_BYPASS : ESAI_xCCR_xPSR_DIV8;
+ /* Do not loop-search if PM (1 ~ 256) alone can serve the ratio */
+ if (ratio <= 256) {
+ pm = ratio;
+ fp = 1;
+ goto out;
+ }
+
/* Set the max fluctuation -- 0.1% of the max devisor */
savesub = (psr ? 1 : 8) * 256 * maxfp / 1000;
--
2.17.0
Hi,
Did you get a chance to review my below email? Kindly let me know your
requirements and I will get back with detailed information on the same.
Warm Regards,
Annette Ryan
I'm announcing the release of the 4.16.2 kernel.
All users of the 4.16 kernel series must upgrade.
The updated 4.16.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.16.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 +-
drivers/net/ethernet/marvell/sky2.c | 2 +-
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c | 9 +++++----
drivers/net/ppp/pptp.c | 1 -
drivers/sbus/char/Kconfig | 3 ++-
net/8021q/vlan_dev.c | 6 +++++-
net/core/dev.c | 2 +-
net/dsa/dsa_priv.h | 8 +++++++-
net/ipv4/arp.c | 2 +-
net/ipv4/ip_tunnel.c | 11 ++++++-----
net/ipv6/ip6_gre.c | 8 +++++---
net/ipv6/ip6_output.c | 7 +++++--
net/ipv6/ip6_tunnel.c | 11 +++++++----
net/ipv6/ip6_vti.c | 7 +++++--
net/ipv6/sit.c | 8 +++++---
net/sched/act_bpf.c | 12 ++++++++----
net/sched/cls_u32.c | 1 +
net/sctp/ipv6.c | 4 +++-
net/sctp/socket.c | 13 ++++++++-----
19 files changed, 76 insertions(+), 41 deletions(-)
Andrew Lunn (1):
net: dsa: Discard frames from unused ports
Cong Wang (1):
net_sched: fix a missing idr_remove() in u32_delete_key()
Davide Caratti (1):
net/sched: fix NULL dereference in the error path of tcf_bpf_init()
Dirk van der Merwe (1):
nfp: use full 40 bits of the NSP buffer address
Eric Dumazet (9):
pptp: remove a buggy dst release in pptp_connect()
sctp: do not leak kernel memory to user space
sctp: sctp_sockaddr_af must check minimal addr length for AF_INET6
net: fool proof dev_valid_name()
ip_tunnel: better validate user provided tunnel names
ipv6: sit: better validate user provided tunnel names
ip6_gre: better validate user provided tunnel names
ip6_tunnel: better validate user provided tunnel names
vti6: better validate user provided tunnel names
Greg Kroah-Hartman (1):
Linux 4.16.2
Guenter Roeck (1):
sparc64: Oracle DAX driver depends on SPARC64
Hangbin Liu (1):
vlan: also check phy_driver ts_info for vlan's real device
Jeff Barnhill (1):
net/ipv6: Increment OUTxxx counters after netfilter hook
Kai-Heng Feng (1):
sky2: Increase D3 delay to sky2 stops working after suspend
Miguel Fadon Perlines (1):
arp: fix arp_filter on l3slave devices
This is the start of the stable review cycle for the 4.16.2 release.
There are 18 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 Thu Apr 12 21:27:41 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.16.2-rc1…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.16.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.16.2-rc1
Dirk van der Merwe <dirk.vandermerwe(a)netronome.com>
nfp: use full 40 bits of the NSP buffer address
Cong Wang <xiyou.wangcong(a)gmail.com>
net_sched: fix a missing idr_remove() in u32_delete_key()
Eric Dumazet <edumazet(a)google.com>
vti6: better validate user provided tunnel names
Eric Dumazet <edumazet(a)google.com>
ip6_tunnel: better validate user provided tunnel names
Eric Dumazet <edumazet(a)google.com>
ip6_gre: better validate user provided tunnel names
Eric Dumazet <edumazet(a)google.com>
ipv6: sit: better validate user provided tunnel names
Eric Dumazet <edumazet(a)google.com>
ip_tunnel: better validate user provided tunnel names
Eric Dumazet <edumazet(a)google.com>
net: fool proof dev_valid_name()
Hangbin Liu <liuhangbin(a)gmail.com>
vlan: also check phy_driver ts_info for vlan's real device
Kai-Heng Feng <kai.heng.feng(a)canonical.com>
sky2: Increase D3 delay to sky2 stops working after suspend
Eric Dumazet <edumazet(a)google.com>
sctp: sctp_sockaddr_af must check minimal addr length for AF_INET6
Eric Dumazet <edumazet(a)google.com>
sctp: do not leak kernel memory to user space
Eric Dumazet <edumazet(a)google.com>
pptp: remove a buggy dst release in pptp_connect()
Davide Caratti <dcaratti(a)redhat.com>
net/sched: fix NULL dereference in the error path of tcf_bpf_init()
Jeff Barnhill <0xeffeff(a)gmail.com>
net/ipv6: Increment OUTxxx counters after netfilter hook
Andrew Lunn <andrew(a)lunn.ch>
net: dsa: Discard frames from unused ports
Miguel Fadon Perlines <mfadon(a)teldat.com>
arp: fix arp_filter on l3slave devices
Guenter Roeck <linux(a)roeck-us.net>
sparc64: Oracle DAX driver depends on SPARC64
-------------
Diffstat:
Makefile | 4 ++--
drivers/net/ethernet/marvell/sky2.c | 2 +-
drivers/net/ethernet/netronome/nfp/nfpcore/nfp_nsp.c | 9 +++++----
drivers/net/ppp/pptp.c | 1 -
drivers/sbus/char/Kconfig | 3 ++-
net/8021q/vlan_dev.c | 6 +++++-
net/core/dev.c | 2 +-
net/dsa/dsa_priv.h | 8 +++++++-
net/ipv4/arp.c | 2 +-
net/ipv4/ip_tunnel.c | 11 ++++++-----
net/ipv6/ip6_gre.c | 8 +++++---
net/ipv6/ip6_output.c | 7 +++++--
net/ipv6/ip6_tunnel.c | 11 +++++++----
net/ipv6/ip6_vti.c | 7 +++++--
net/ipv6/sit.c | 8 +++++---
net/sched/act_bpf.c | 12 ++++++++----
net/sched/cls_u32.c | 1 +
net/sctp/ipv6.c | 4 +++-
net/sctp/socket.c | 13 ++++++++-----
19 files changed, 77 insertions(+), 42 deletions(-)
From: Andy Lutomirski <luto(a)kernel.org>
commit: 9d05041679904b12c12421cbcf9cb5f4860a8d7b upstream
32-bit kernels handle nested NMIs in C. Enable the exact same
handling on 64-bit kernels as well. This isn't currently
necessary, but it will become necessary once the asm code starts
allowing limited nesting.
Signed-off-by: Andy Lutomirski <luto(a)kernel.org>
Reviewed-by: Steven Rostedt <rostedt(a)goodmis.org>
Cc: Borislav Petkov <bp(a)suse.de>
Cc: Linus Torvalds <torvalds(a)linux-foundation.org>
Cc: Peter Zijlstra <peterz(a)infradead.org>
Cc: Thomas Gleixner <tglx(a)linutronix.de>
Cc: stable(a)vger.kernel.org
Signed-off-by: Ingo Molnar <mingo(a)kernel.org>
Backported-by: Chenggang <chenggang.qin(a)linux.alibaba.com>
---
7u/arch/x86/kernel/nmi.c | 122 ++++++++++++++++++++---------------------------
1 file changed, 51 insertions(+), 71 deletions(-)
diff --git a/7u/arch/x86/kernel/nmi.c b/7u/arch/x86/kernel/nmi.c
index 6030805..a735412 100644
--- a/7u/arch/x86/kernel/nmi.c
+++ b/7u/arch/x86/kernel/nmi.c
@@ -359,15 +359,15 @@ static __kprobes void default_do_nmi(struct pt_regs *regs)
}
/*
- * NMIs can hit breakpoints which will cause it to lose its
- * NMI context with the CPU when the breakpoint does an iret.
- */
-#ifdef CONFIG_X86_32
-/*
- * For i386, NMIs use the same stack as the kernel, and we can
- * add a workaround to the iret problem in C (preventing nested
- * NMIs if an NMI takes a trap). Simply have 3 states the NMI
- * can be in:
+ * NMIs can hit breakpoints which will cause it to lose its NMI context
+ * with the CPU when the breakpoint or page fault does an IRET.
+ *
+ * As a result, NMIs can nest if NMIs get unmasked due an IRET during
+ * NMI processing. On x86_64, the asm glue protects us from nested NMIs
+ * if the outer NMI came from kernel mode, but we can still nest if the
+ * outer NMI came from user mode.
+ *
+ * To handle these nested NMIs, we have three states:
*
* 1) not running
* 2) executing
@@ -381,15 +381,14 @@ static __kprobes void default_do_nmi(struct pt_regs *regs)
* (Note, the latch is binary, thus multiple NMIs triggering,
* when one is running, are ignored. Only one NMI is restarted.)
*
- * If an NMI hits a breakpoint that executes an iret, another
- * NMI can preempt it. We do not want to allow this new NMI
- * to run, but we want to execute it when the first one finishes.
- * We set the state to "latched", and the exit of the first NMI will
- * perform a dec_return, if the result is zero (NOT_RUNNING), then
- * it will simply exit the NMI handler. If not, the dec_return
- * would have set the state to NMI_EXECUTING (what we want it to
- * be when we are running). In this case, we simply jump back
- * to rerun the NMI handler again, and restart the 'latched' NMI.
+ * If an NMI executes an iret, another NMI can preempt it. We do not
+ * want to allow this new NMI to run, but we want to execute it when the
+ * first one finishes. We set the state to "latched", and the exit of
+ * the first NMI will perform a dec_return, if the result is zero
+ * (NOT_RUNNING), then it will simply exit the NMI handler. If not, the
+ * dec_return would have set the state to NMI_EXECUTING (what we want it
+ * to be when we are running). In this case, we simply jump back to
+ * rerun the NMI handler again, and restart the 'latched' NMI.
*
* No trap (breakpoint or page fault) should be hit before nmi_restart,
* thus there is no race between the first check of state for NOT_RUNNING
@@ -412,49 +411,36 @@ enum nmi_states {
static DEFINE_PER_CPU(enum nmi_states, nmi_state);
static DEFINE_PER_CPU(unsigned long, nmi_cr2);
-#define nmi_nesting_preprocess(regs) \
- do { \
- if (this_cpu_read(nmi_state) != NMI_NOT_RUNNING) { \
- this_cpu_write(nmi_state, NMI_LATCHED); \
- return; \
- } \
- this_cpu_write(nmi_state, NMI_EXECUTING); \
- this_cpu_write(nmi_cr2, read_cr2()); \
- } while (0); \
- nmi_restart:
-
-#define nmi_nesting_postprocess() \
- do { \
- if (unlikely(this_cpu_read(nmi_cr2) != read_cr2())) \
- write_cr2(this_cpu_read(nmi_cr2)); \
- if (this_cpu_dec_return(nmi_state)) \
- goto nmi_restart; \
- } while (0)
-#else /* x86_64 */
+#ifdef CONFIG_X86_64
/*
- * In x86_64 things are a bit more difficult. This has the same problem
- * where an NMI hitting a breakpoint that calls iret will remove the
- * NMI context, allowing a nested NMI to enter. What makes this more
- * difficult is that both NMIs and breakpoints have their own stack.
- * When a new NMI or breakpoint is executed, the stack is set to a fixed
- * point. If an NMI is nested, it will have its stack set at that same
- * fixed address that the first NMI had, and will start corrupting the
- * stack. This is handled in entry_64.S, but the same problem exists with
- * the breakpoint stack.
+ * In x86_64, we need to handle breakpoint -> NMI -> breakpoint. Without
+ * some care, the inner breakpoint will clobber the outer breakpoint's
+ * stack.
*
- * If a breakpoint is being processed, and the debug stack is being used,
- * if an NMI comes in and also hits a breakpoint, the stack pointer
- * will be set to the same fixed address as the breakpoint that was
- * interrupted, causing that stack to be corrupted. To handle this case,
- * check if the stack that was interrupted is the debug stack, and if
- * so, change the IDT so that new breakpoints will use the current stack
- * and not switch to the fixed address. On return of the NMI, switch back
- * to the original IDT.
+ * If a breakpoint is being processed, and the debug stack is being
+ * used, if an NMI comes in and also hits a breakpoint, the stack
+ * pointer will be set to the same fixed address as the breakpoint that
+ * was interrupted, causing that stack to be corrupted. To handle this
+ * case, check if the stack that was interrupted is the debug stack, and
+ * if so, change the IDT so that new breakpoints will use the current
+ * stack and not switch to the fixed address. On return of the NMI,
+ * switch back to the original IDT.
*/
static DEFINE_PER_CPU(int, update_debug_stack);
+#endif
-static inline void nmi_nesting_preprocess(struct pt_regs *regs)
+dotraplinkage notrace void
+do_nmi(struct pt_regs *regs, long error_code)
{
+ if (this_cpu_read(nmi_state) != NMI_NOT_RUNNING) {
+ this_cpu_write(nmi_state, NMI_LATCHED);
+ return;
+ }
+ this_cpu_write(nmi_state, NMI_EXECUTING);
+ this_cpu_write(nmi_cr2, read_cr2());
+nmi_restart:
+
+#ifdef CONFIG_X86_64
/*
* If we interrupted a breakpoint, it is possible that
* the nmi handler will have breakpoints too. We need to
@@ -465,22 +451,8 @@ static inline void nmi_nesting_preprocess(struct pt_regs *regs)
debug_stack_set_zero();
this_cpu_write(update_debug_stack, 1);
}
-}
-
-static inline void nmi_nesting_postprocess(void)
-{
- if (unlikely(this_cpu_read(update_debug_stack))) {
- debug_stack_reset();
- this_cpu_write(update_debug_stack, 0);
- }
-}
#endif
-dotraplinkage notrace __kprobes void
-do_nmi(struct pt_regs *regs, long error_code)
-{
- nmi_nesting_preprocess(regs);
-
nmi_enter();
inc_irq_stat(__nmi_count);
@@ -489,9 +461,17 @@ do_nmi(struct pt_regs *regs, long error_code)
default_do_nmi(regs);
nmi_exit();
+#ifdef CONFIG_X86_64
+ if (unlikely(this_cpu_read(update_debug_stack))) {
+ debug_stack_reset();
+ this_cpu_write(update_debug_stack, 0);
+ }
+#endif
- /* On i386, may loop back to preprocess */
- nmi_nesting_postprocess();
+ if (unlikely(this_cpu_read(nmi_cr2) != read_cr2()))
+ write_cr2(this_cpu_read(nmi_cr2));
+ if (this_cpu_dec_return(nmi_state))
+ goto nmi_restart;
}
void stop_nmi(void)
--
1.8.3.1
Tree/Branch: v4.15.17
Git describe: v4.15.17
Commit: b22a1fa1b3 Linux 4.15.17
Build Time: 0 min 27 sec
Passed: 0 / 11 ( 0.00 %)
Failed: 11 / 11 (100.00 %)
Errors: 8
Warnings: 0
Section Mismatches: 0
Failed defconfigs:
arm64-allnoconfig
arm64-allmodconfig
arm-multi_v5_defconfig
arm-multi_v7_defconfig
x86_64-defconfig
arm-allmodconfig
arm-allnoconfig
arm-multi_v4t_defconfig
x86_64-allmodconfig
arm64-defconfig
Errors:
arm64-allnoconfig
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_match_flags' undeclared (first use in this function)
../scripts/mod/file2alias.c:103:45: error: 'OFF_tb_service_id_protocol_key' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_id' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_version' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_revision' undeclared (first use in this function)
../scripts/mod/file2alias.c:111:3: error: 'SIZE_tb_service_id' undeclared here (not in a function)
arm64-allmodconfig
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_match_flags' undeclared (first use in this function)
../scripts/mod/file2alias.c:103:45: error: 'OFF_tb_service_id_protocol_key' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_id' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_version' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_revision' undeclared (first use in this function)
../scripts/mod/file2alias.c:111:3: error: 'SIZE_tb_service_id' undeclared here (not in a function)
arm-multi_v5_defconfig
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
arm-multi_v7_defconfig
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
x86_64-defconfig
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_match_flags' undeclared (first use in this function)
../scripts/mod/file2alias.c:103:45: error: 'OFF_tb_service_id_protocol_key' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_id' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_version' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_revision' undeclared (first use in this function)
../scripts/mod/file2alias.c:111:3: error: 'SIZE_tb_service_id' undeclared here (not in a function)
arm-allmodconfig
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
arm-allnoconfig
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
arm-multi_v4t_defconfig
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
x86_64-allmodconfig
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_match_flags' undeclared (first use in this function)
../scripts/mod/file2alias.c:103:45: error: 'OFF_tb_service_id_protocol_key' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_id' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_version' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_revision' undeclared (first use in this function)
../scripts/mod/file2alias.c:111:3: error: 'SIZE_tb_service_id' undeclared here (not in a function)
arm64-defconfig
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
-------------------------------------------------------------------------------
Errors summary: 8
5 orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
4 ../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_version' undeclared (first use in this function)
4 ../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_revision' undeclared (first use in this function)
4 ../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_id' undeclared (first use in this function)
4 ../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_match_flags' undeclared (first use in this function)
4 ../scripts/mod/file2alias.c:111:3: error: 'SIZE_tb_service_id' undeclared here (not in a function)
4 ../scripts/mod/file2alias.c:103:45: error: 'OFF_tb_service_id_protocol_key' undeclared (first use in this function)
4 ../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allnoconfig : FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_match_flags' undeclared (first use in this function)
../scripts/mod/file2alias.c:103:45: error: 'OFF_tb_service_id_protocol_key' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_id' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_version' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_revision' undeclared (first use in this function)
../scripts/mod/file2alias.c:111:3: error: 'SIZE_tb_service_id' undeclared here (not in a function)
-------------------------------------------------------------------------------
arm64-allmodconfig : FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_match_flags' undeclared (first use in this function)
../scripts/mod/file2alias.c:103:45: error: 'OFF_tb_service_id_protocol_key' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_id' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_version' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_revision' undeclared (first use in this function)
../scripts/mod/file2alias.c:111:3: error: 'SIZE_tb_service_id' undeclared here (not in a function)
-------------------------------------------------------------------------------
arm-multi_v5_defconfig : FAIL, 1 errors, 0 warnings, 0 section mismatches
Errors:
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
-------------------------------------------------------------------------------
arm-multi_v7_defconfig : FAIL, 1 errors, 0 warnings, 0 section mismatches
Errors:
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
-------------------------------------------------------------------------------
x86_64-defconfig : FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_match_flags' undeclared (first use in this function)
../scripts/mod/file2alias.c:103:45: error: 'OFF_tb_service_id_protocol_key' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_id' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_version' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_revision' undeclared (first use in this function)
../scripts/mod/file2alias.c:111:3: error: 'SIZE_tb_service_id' undeclared here (not in a function)
-------------------------------------------------------------------------------
arm-allmodconfig : FAIL, 1 errors, 0 warnings, 0 section mismatches
Errors:
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
-------------------------------------------------------------------------------
arm-allnoconfig : FAIL, 2 errors, 0 warnings, 0 section mismatches
Errors:
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
-------------------------------------------------------------------------------
arm-multi_v4t_defconfig : FAIL, 1 errors, 0 warnings, 0 section mismatches
Errors:
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
-------------------------------------------------------------------------------
x86_64-allmodconfig : FAIL, 6 errors, 0 warnings, 0 section mismatches
Errors:
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_match_flags' undeclared (first use in this function)
../scripts/mod/file2alias.c:103:45: error: 'OFF_tb_service_id_protocol_key' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_id' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_version' undeclared (first use in this function)
../scripts/mod/file2alias.c:97:68: error: 'OFF_tb_service_id_protocol_revision' undeclared (first use in this function)
../scripts/mod/file2alias.c:111:3: error: 'SIZE_tb_service_id' undeclared here (not in a function)
-------------------------------------------------------------------------------
arm64-defconfig : FAIL, 3 errors, 0 warnings, 0 section mismatches
Errors:
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
x86_64-allnoconfig
Tree/Branch: v4.14.34
Git describe: v4.14.34
Commit: ffebeb0d7c Linux 4.14.34
Build Time: 0 min 29 sec
Passed: 0 / 11 ( 0.00 %)
Failed: 11 / 11 (100.00 %)
Errors: 2
Warnings: 4
Section Mismatches: 0
Failed defconfigs:
arm-multi_v5_defconfig
arm-multi_v7_defconfig
arm-allmodconfig
arm-multi_v4t_defconfig
arm-allnoconfig
arm64-defconfig
Errors:
arm-multi_v5_defconfig
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
arm-multi_v7_defconfig
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
arm-allmodconfig
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
arm-multi_v4t_defconfig
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
arm-allnoconfig
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
arm64-defconfig
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
4 warnings 0 mismatches : arm-allnoconfig
-------------------------------------------------------------------------------
Errors summary: 2
6 orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
5 ../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
Warnings Summary: 4
1 ../arch/arm/include/asm/barrier.h:9:5: warning: "__LINUX_ARM_ARCH__" is not defined [-Wundef]
1 ../arch/arm/include/asm/barrier.h:20:35: warning: "__LINUX_ARM_ARCH__" is not defined [-Wundef]
1 ../arch/arm/include/asm/barrier.h:16:5: warning: "__LINUX_ARM_ARCH__" is not defined [-Wundef]
1 ../arch/arm/include/asm/barrier.h:10:3: warning: "__LINUX_ARM_ARCH__" is not defined [-Wundef]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm-multi_v5_defconfig : FAIL, 1 errors, 0 warnings, 0 section mismatches
Errors:
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
-------------------------------------------------------------------------------
arm-multi_v7_defconfig : FAIL, 1 errors, 0 warnings, 0 section mismatches
Errors:
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
-------------------------------------------------------------------------------
arm-allmodconfig : FAIL, 1 errors, 0 warnings, 0 section mismatches
Errors:
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
-------------------------------------------------------------------------------
arm-multi_v4t_defconfig : FAIL, 1 errors, 0 warnings, 0 section mismatches
Errors:
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
-------------------------------------------------------------------------------
arm-allnoconfig : FAIL, 4 errors, 4 warnings, 0 section mismatches
Errors:
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
../arch/arm/include/asm/string.h:45:3: error: expected identifier or '(' before '{' token
Warnings:
../arch/arm/include/asm/barrier.h:9:5: warning: "__LINUX_ARM_ARCH__" is not defined [-Wundef]
../arch/arm/include/asm/barrier.h:10:3: warning: "__LINUX_ARM_ARCH__" is not defined [-Wundef]
../arch/arm/include/asm/barrier.h:16:5: warning: "__LINUX_ARM_ARCH__" is not defined [-Wundef]
../arch/arm/include/asm/barrier.h:20:35: warning: "__LINUX_ARM_ARCH__" is not defined [-Wundef]
-------------------------------------------------------------------------------
arm64-defconfig : FAIL, 3 errors, 0 warnings, 0 section mismatches
Errors:
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
orc.h:21:27: fatal error: asm/orc_types.h: No such file or directory
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
x86_64-allnoconfig
arm64-allnoconfig
arm64-allmodconfig
x86_64-allmodconfig
x86_64-defconfig
The normal request completion can be done before or during handling
BLK_EH_RESET_TIMER, and this race may cause the request to never
be completed since driver's .timeout() may always return
BLK_EH_RESET_TIMER.
This issue can't be fixed completely by driver, since the normal
completion can be done between returning .timeout() and handing
BLK_EH_RESET_TIMER.
This patch fixes this race by introducing rq state of MQ_RQ_COMPLETE_IN_RESET,
and reading/writing rq's state by holding queue lock, which can be
per-request actually, but just not necessary to introduce one lock for
so unusual event.
Cc: Bart Van Assche <bart.vanassche(a)wdc.com>
Cc: Tejun Heo <tj(a)kernel.org>
Cc: Christoph Hellwig <hch(a)lst.de>
Cc: Ming Lei <ming.lei(a)redhat.com>
Cc: Sagi Grimberg <sagi(a)grimberg.me>
Cc: Israel Rukshin <israelr(a)mellanox.com>,
Cc: Max Gurtovoy <maxg(a)mellanox.com>
Cc: stable(a)vger.kernel.org
Signed-off-by: Ming Lei <ming.lei(a)redhat.com>
---
V2:
- rename the new flag as MQ_RQ_COMPLETE_IN_TIMEOUT
- fix lock uses in blk_mq_rq_timed_out
- document re-order between blk_add_timer() and
blk_mq_rq_update_aborted_gstate(req, 0)
block/blk-mq.c | 49 ++++++++++++++++++++++++++++++++++++++++++++-----
block/blk-mq.h | 1 +
2 files changed, 45 insertions(+), 5 deletions(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 0dc9e341c2a7..db1c84b2bb5e 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -630,10 +630,27 @@ void blk_mq_complete_request(struct request *rq)
* However, that would complicate paths which want to synchronize
* against us. Let stay in sync with the issue path so that
* hctx_lock() covers both issue and completion paths.
+ *
+ * Cover complete vs BLK_EH_RESET_TIMER race in slow path with
+ * helding queue lock.
*/
hctx_lock(hctx, &srcu_idx);
if (blk_mq_rq_aborted_gstate(rq) != rq->gstate)
__blk_mq_complete_request(rq);
+ else {
+ unsigned long flags;
+ bool need_complete = false;
+
+ spin_lock_irqsave(q->queue_lock, flags);
+ if (!blk_mq_rq_aborted_gstate(rq))
+ need_complete = true;
+ else
+ blk_mq_rq_update_state(rq, MQ_RQ_COMPLETE_IN_TIMEOUT);
+ spin_unlock_irqrestore(q->queue_lock, flags);
+
+ if (need_complete)
+ __blk_mq_complete_request(rq);
+ }
hctx_unlock(hctx, srcu_idx);
}
EXPORT_SYMBOL(blk_mq_complete_request);
@@ -814,6 +831,7 @@ static void blk_mq_rq_timed_out(struct request *req, bool reserved)
{
const struct blk_mq_ops *ops = req->q->mq_ops;
enum blk_eh_timer_return ret = BLK_EH_RESET_TIMER;
+ unsigned long flags;
req->rq_flags |= RQF_MQ_TIMEOUT_EXPIRED;
@@ -826,12 +844,33 @@ static void blk_mq_rq_timed_out(struct request *req, bool reserved)
break;
case BLK_EH_RESET_TIMER:
/*
- * As nothing prevents from completion happening while
- * ->aborted_gstate is set, this may lead to ignored
- * completions and further spurious timeouts.
+ * The normal completion may happen during handling the
+ * timeout, or even after returning from .timeout(), so
+ * once the request has been completed, we can't reset
+ * timer any more since this request may be handled as
+ * BLK_EH_RESET_TIMER in next timeout handling too, and
+ * it has to be completed in this situation.
+ *
+ * Holding the queue lock to cover read/write rq's
+ * aborted_gstate and normal state, so the race can be
+ * avoided completely.
+ *
+ * blk_add_timer() may be re-ordered with resetting
+ * aborted_gstate, and the only side-effec is that if this
+ * request is recycled after aborted_gstate is cleared, it
+ * may be timed out a bit late, that is what we can survive
+ * given timeout event is so unusual.
*/
- blk_mq_rq_update_aborted_gstate(req, 0);
- blk_add_timer(req);
+ spin_lock_irqsave(req->q->queue_lock, flags);
+ if (blk_mq_rq_state(req) != MQ_RQ_COMPLETE_IN_TIMEOUT) {
+ blk_add_timer(req);
+ blk_mq_rq_update_aborted_gstate(req, 0);
+ spin_unlock_irqrestore(req->q->queue_lock, flags);
+ } else {
+ blk_mq_rq_update_state(req, MQ_RQ_IN_FLIGHT);
+ spin_unlock_irqrestore(req->q->queue_lock, flags);
+ __blk_mq_complete_request(req);
+ }
break;
case BLK_EH_NOT_HANDLED:
break;
diff --git a/block/blk-mq.h b/block/blk-mq.h
index 88c558f71819..0426d048743d 100644
--- a/block/blk-mq.h
+++ b/block/blk-mq.h
@@ -35,6 +35,7 @@ enum mq_rq_state {
MQ_RQ_IDLE = 0,
MQ_RQ_IN_FLIGHT = 1,
MQ_RQ_COMPLETE = 2,
+ MQ_RQ_COMPLETE_IN_TIMEOUT = 3,
MQ_RQ_STATE_BITS = 2,
MQ_RQ_STATE_MASK = (1 << MQ_RQ_STATE_BITS) - 1,
--
2.9.5
On 14/03/18 09:48, Jan Beulich wrote:
>>>> On 26.02.18 at 15:08, <jgross(a)suse.com> wrote:
>> @@ -35,6 +40,9 @@ void xen_arch_post_suspend(int cancelled)
>>
>> static void xen_vcpu_notify_restore(void *data)
>> {
>> + if (xen_pv_domain() && boot_cpu_has(X86_FEATURE_SPEC_CTRL))
>> + wrmsrl(MSR_IA32_SPEC_CTRL, this_cpu_read(spec_ctrl));
>> +
>> /* Boot processor notified via generic timekeeping_resume() */
>> if (smp_processor_id() == 0)
>> return;
>> @@ -44,7 +52,15 @@ static void xen_vcpu_notify_restore(void *data)
>>
>> static void xen_vcpu_notify_suspend(void *data)
>> {
>> + u64 tmp;
>> +
>> tick_suspend_local();
>> +
>> + if (xen_pv_domain() && boot_cpu_has(X86_FEATURE_SPEC_CTRL)) {
>> + rdmsrl(MSR_IA32_SPEC_CTRL, tmp);
>> + this_cpu_write(spec_ctrl, tmp);
>> + wrmsrl(MSR_IA32_SPEC_CTRL, 0);
>> + }
>> }
>
> While investigating ways how to do something similar on our old,
> non-pvops kernels I've started wondering if this solution is actually
> correct in all cases. Of course discussing this is complicated by the
> fact that the change there might be a conflict with hasn't landed
> in Linus'es tree yet (see e.g.
> https://patchwork.kernel.org/patch/10153843/ for an upstream
> submission; I haven't been able to find any discussion on that
> patch or why it isn't upstream yet), but we have it in our various
> branches. The potential problem I'm seeing is with the clearing
> and re-setting of SPEC_CTRL around CPUs going idle. While the
> active CPU could have preemption disabled (if that isn't the case
> already), the passive CPUs are - afaict - neither under full control
> of drivers/xen/manage.c:do_suspend() nor excluded yet from
> any further scheduling activity. Hence with code like this (taken
> from one of our branches)
>
> static void mwait_idle(void)
> {
> if (!current_set_polling_and_test()) {
> trace_cpu_idle_rcuidle(1, smp_processor_id());
> if (this_cpu_has(X86_BUG_CLFLUSH_MONITOR)) {
> smp_mb(); /* quirk */
> clflush((void *)¤t_thread_info()->flags);
> smp_mb(); /* quirk */
> }
>
> x86_disable_ibrs();
>
> __monitor((void *)¤t_thread_info()->flags, 0, 0);
> if (!need_resched())
> __sti_mwait(0, 0);
> else
> local_irq_enable();
>
> x86_enable_ibrs();
> ...
>
> the MSR might get set to non-zero again after having been
> cleared by the code your patch adds. I therefore think that the
> only race free solution would be to do the clearing from
> stop-machine context. But maybe I'm overlooking something.
Currently and with the above mentioned patch there is no problem: Xen pv
guests always use default_idle(), so mwait_idle() eventually playing
with MSR_IA32_SPEC_CTRL won't affect us.
In order to ensure that won't change in future default_idle() should
never modify MSR_IA32_SPEC_CTRL. In case something like that would be
required we should rather add another idle function doing that.
Juergen
If building a kernel without FTRACE but with TRACING,
ucsi.ko fails to link due to missing trace events. Fix this
by using the correct Kconfig symbol on Makefile.
Reported-by: Tobias Regnery <tobias.regnery(a)gmail.com>
Fixes: c1b0bc2dabfa ("usb: typec: Add support for UCSI interface")
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Heikki Krogerus <heikki.krogerus(a)linux.intel.com>
---
drivers/usb/typec/ucsi/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/typec/ucsi/Makefile b/drivers/usb/typec/ucsi/Makefile
index b57891c1fd31..7afbea512207 100644
--- a/drivers/usb/typec/ucsi/Makefile
+++ b/drivers/usb/typec/ucsi/Makefile
@@ -5,6 +5,6 @@ obj-$(CONFIG_TYPEC_UCSI) += typec_ucsi.o
typec_ucsi-y := ucsi.o
-typec_ucsi-$(CONFIG_FTRACE) += trace.o
+typec_ucsi-$(CONFIG_TRACING) += trace.o
obj-$(CONFIG_UCSI_ACPI) += ucsi_acpi.o
--
2.16.3
Commit fe014d4e6b55 (staging: wilc1000: free memory allocated for general info
message from firmware) introduced bug by using wrong source address in
kmemdup(). 'conn_info.req_ies' is used for source address in kempdup()
instead of 'hif_drv->usr_conn_req.ies'.
This commit fixes the NULL pointer dereference issue in
host_int_parse_assoc_resp_info() by using the correct source address in
kmemdup().
Fixes: fe014d4e6b55 (staging: wilc1000: free memory allocated for
general info message from firmware)
Cc: stable(a)vger.kernel.org
Signed-off-by: Ajay Singh <ajay.kathat(a)microchip.com>
Tested-by: Ajay Singh <ajay.kathat(a)microchip.com>
---
drivers/staging/wilc1000/host_interface.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c
index 316d73c..302e3cb 100644
--- a/drivers/staging/wilc1000/host_interface.c
+++ b/drivers/staging/wilc1000/host_interface.c
@@ -1387,7 +1387,7 @@ static inline void host_int_parse_assoc_resp_info(struct wilc_vif *vif,
}
if (hif_drv->usr_conn_req.ies) {
- conn_info.req_ies = kmemdup(conn_info.req_ies,
+ conn_info.req_ies = kmemdup(hif_drv->usr_conn_req.ies,
hif_drv->usr_conn_req.ies_len,
GFP_KERNEL);
if (conn_info.req_ies)
--
2.7.4
The patch titled
Subject: fs/reiserfs/journal.c: add missing resierfs_warning() arg
has been removed from the -mm tree. Its filename was
fs-reiserfs-journalc-add-missing-resierfs_warning-arg.patch
This patch was dropped because it was merged into mainline or a subsystem tree
------------------------------------------------------
From: Andrew Morton <akpm(a)linux-foundation.org>
Subject: fs/reiserfs/journal.c: add missing resierfs_warning() arg
One use of the reiserfs_warning() macro in journal_init_dev() is missing a
parameter, causing the following warning:
REISERFS warning (device loop0): journal_init_dev: Cannot open '%s': %i journal_init_dev:
This also causes a WARN_ONCE() warning in the vsprintf code, and then a
panic if panic_on_warn is set.
Please remove unsupported %/ in format string
WARNING: CPU: 1 PID: 4480 at lib/vsprintf.c:2138 format_decode+0x77f/0x830 lib/vsprintf.c:2138
Kernel panic - not syncing: panic_on_warn set ...
Just add another string argument to the macro invocation.
Addresses https://syzkaller.appspot.com/bug?id=0627d4551fdc39bf1ef5d82cd9eef587047f77…
Link: http://lkml.kernel.org/r/d678ebe1-6f54-8090-df4c-b9affad62293@infradead.org
Signed-off-by: Randy Dunlap <rdunlap(a)infradead.org>
Reported-by: <syzbot+6bd77b88c1977c03f584(a)syzkaller.appspotmail.com>
Tested-by: Randy Dunlap <rdunlap(a)infradead.org>
Acked-by: Jeff Mahoney <jeffm(a)suse.com>
Cc: Alexander Viro <viro(a)zeniv.linux.org.uk>
Cc: Jan Kara <jack(a)suse.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
fs/reiserfs/journal.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff -puN fs/reiserfs/journal.c~fs-reiserfs-journalc-add-missing-resierfs_warning-arg fs/reiserfs/journal.c
--- a/fs/reiserfs/journal.c~fs-reiserfs-journalc-add-missing-resierfs_warning-arg
+++ a/fs/reiserfs/journal.c
@@ -2643,7 +2643,7 @@ static int journal_init_dev(struct super
if (IS_ERR(journal->j_dev_bd)) {
result = PTR_ERR(journal->j_dev_bd);
journal->j_dev_bd = NULL;
- reiserfs_warning(super,
+ reiserfs_warning(super, "sh-457",
"journal_init_dev: Cannot open '%s': %i",
jdev_name, result);
return result;
_
Patches currently in -mm which might be from akpm(a)linux-foundation.org are
i-need-old-gcc.patch
mm-gup_benchmark-handle-gup-failures-fix.patch
mm-pagemap-fix-swap-offset-value-for-pmd-migration-entry-fix.patch
writeback-safer-lock-nesting-fix.patch
arm-arch-arm-include-asm-pageh-needs-personalityh.patch
ocfs2-without-quota-support-try-to-avoid-calling-quota-recovery-checkpatch-fixes.patch
mm.patch
list_lru-prefetch-neighboring-list-entries-before-acquiring-lock-fix.patch
mm-oom-cgroup-aware-oom-killer-fix.patch
mm-oom-docs-describe-the-cgroup-aware-oom-killer-fix-2-fix.patch
fs-fsnotify-account-fsnotify-metadata-to-kmemcg-fix.patch
kernel-forkc-export-kernel_thread-to-modules.patch
slab-leaks3-default-y.patch
The patch titled
Subject: task_struct: only use anon struct under randstruct plugin
has been removed from the -mm tree. Its filename was
task_struct-only-use-anon-struct-under-randstruct-plugin.patch
This patch was dropped because it was merged into mainline or a subsystem tree
------------------------------------------------------
From: Kees Cook <keescook(a)chromium.org>
Subject: task_struct: only use anon struct under randstruct plugin
The original intent for always adding the anonymous struct in task_struct
was to make sure we had compiler coverage. However, this caused
pathological padding of 40 bytes at the start of task_struct. Instead,
move the anonymous struct to being only used when struct layout
randomization is enabled.
Link: http://lkml.kernel.org/r/20180327213609.GA2964@beast
Fixes: 29e48ce87f1e ("task_struct: Allow randomized")
Signed-off-by: Kees Cook <keescook(a)chromium.org>
Reported-by: Peter Zijlstra <peterz(a)infradead.org>
Cc: Peter Zijlstra <peterz(a)infradead.org>
Cc: Ingo Molnar <mingo(a)kernel.org>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
include/linux/compiler-clang.h | 3 ---
include/linux/compiler-gcc.h | 12 +++---------
2 files changed, 3 insertions(+), 12 deletions(-)
diff -puN include/linux/compiler-clang.h~task_struct-only-use-anon-struct-under-randstruct-plugin include/linux/compiler-clang.h
--- a/include/linux/compiler-clang.h~task_struct-only-use-anon-struct-under-randstruct-plugin
+++ a/include/linux/compiler-clang.h
@@ -17,9 +17,6 @@
*/
#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
-#define randomized_struct_fields_start struct {
-#define randomized_struct_fields_end };
-
/* all clang versions usable with the kernel support KASAN ABI version 5 */
#define KASAN_ABI_VERSION 5
diff -puN include/linux/compiler-gcc.h~task_struct-only-use-anon-struct-under-randstruct-plugin include/linux/compiler-gcc.h
--- a/include/linux/compiler-gcc.h~task_struct-only-use-anon-struct-under-randstruct-plugin
+++ a/include/linux/compiler-gcc.h
@@ -242,6 +242,9 @@
#if defined(RANDSTRUCT_PLUGIN) && !defined(__CHECKER__)
#define __randomize_layout __attribute__((randomize_layout))
#define __no_randomize_layout __attribute__((no_randomize_layout))
+/* This anon struct can add padding, so only enable it under randstruct. */
+#define randomized_struct_fields_start struct {
+#define randomized_struct_fields_end } __randomize_layout;
#endif
#endif /* GCC_VERSION >= 40500 */
@@ -256,15 +259,6 @@
*/
#define __visible __attribute__((externally_visible))
-/*
- * RANDSTRUCT_PLUGIN wants to use an anonymous struct, but it is only
- * possible since GCC 4.6. To provide as much build testing coverage
- * as possible, this is used for all GCC 4.6+ builds, and not just on
- * RANDSTRUCT_PLUGIN builds.
- */
-#define randomized_struct_fields_start struct {
-#define randomized_struct_fields_end } __randomize_layout;
-
#endif /* GCC_VERSION >= 40600 */
_
Patches currently in -mm which might be from keescook(a)chromium.org are
rslib-remove-vlas-by-setting-upper-bound-on-nroots.patch
fork-unconditionally-clear-stack-on-fork.patch
exofs-avoid-vla-in-structures.patch
The patch titled
Subject: mm/ksm.c: fix inconsistent accounting of zero pages
has been removed from the -mm tree. Its filename was
mm-ksm-fix-inconsistent-accounting-of-zero-pages.patch
This patch was dropped because it was merged into mainline or a subsystem tree
------------------------------------------------------
From: Claudio Imbrenda <imbrenda(a)linux.vnet.ibm.com>
Subject: mm/ksm.c: fix inconsistent accounting of zero pages
When using KSM with use_zero_pages, we replace anonymous pages containing
only zeroes with actual zero pages, which are not anonymous. We need to
do proper accounting of the mm counters, otherwise we will get wrong
values in /proc and a BUG message in dmesg when tearing down the mm.
Link: http://lkml.kernel.org/r/1522931274-15552-1-git-send-email-imbrenda@linux.v…
Fixes: e86c59b1b1 ("mm/ksm: improve deduplication of zero pages with colouring")
Signed-off-by: Claudio Imbrenda <imbrenda(a)linux.vnet.ibm.com>
Reviewed-by: Andrew Morton <akpm(a)linux-foundation.org>
Cc: Andrea Arcangeli <aarcange(a)redhat.com>
Cc: Minchan Kim <minchan(a)kernel.org>
Cc: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Hugh Dickins <hughd(a)google.com>
Cc: Christian Borntraeger <borntraeger(a)de.ibm.com>
Cc: Gerald Schaefer <gerald.schaefer(a)de.ibm.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/ksm.c | 7 +++++++
1 file changed, 7 insertions(+)
diff -puN mm/ksm.c~mm-ksm-fix-inconsistent-accounting-of-zero-pages mm/ksm.c
--- a/mm/ksm.c~mm-ksm-fix-inconsistent-accounting-of-zero-pages
+++ a/mm/ksm.c
@@ -1131,6 +1131,13 @@ static int replace_page(struct vm_area_s
} else {
newpte = pte_mkspecial(pfn_pte(page_to_pfn(kpage),
vma->vm_page_prot));
+ /*
+ * We're replacing an anonymous page with a zero page, which is
+ * not anonymous. We need to do proper accounting otherwise we
+ * will get wrong values in /proc, and a BUG message in dmesg
+ * when tearing down the mm.
+ */
+ dec_mm_counter(mm, MM_ANONPAGES);
}
flush_cache_page(vma, addr, pte_pfn(*ptep));
_
Patches currently in -mm which might be from imbrenda(a)linux.vnet.ibm.com are