This is the start of the stable review cycle for the 4.9.142 release.
There are 92 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 Sat Dec 1 14:00:37 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.9.142-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.9.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.9.142-rc1
Mimi Zohar <zohar(a)linux.vnet.ibm.com>
ima: re-initialize iint->atomic_flags
Dmitry Kasatkin <dmitry.kasatkin(a)gmail.com>
ima: re-introduce own integrity cache lock
Matthew Garrett <mjg59(a)google.com>
EVM: Add support for portable signature format
Mimi Zohar <zohar(a)linux.vnet.ibm.com>
ima: always measure and audit files in policy
Eric W. Biederman <ebiederm(a)xmission.com>
Revert "evm: Translate user/group ids relative to s_user_ns when computing HMAC"
Alexander Aring <aring(a)mojatatu.com>
net: ieee802154: 6lowpan: fix frag reassembly
Janosch Frank <frankja(a)linux.ibm.com>
s390/mm: Check for valid vma before zapping in gmap_discard
Phil Elwell <phil(a)raspberrypi.org>
lan78xx: Read MAC address from DT if present
Salvatore Mesoraca <s.mesoraca16(a)gmail.com>
namei: allow restricted O_CREAT of FIFOs and regular files
Steven Rostedt (VMware) <rostedt(a)goodmis.org>
sched/core: Allow __sched_setscheduler() in interrupts when PI is not used
Aaron Ma <aaron.ma(a)canonical.com>
usb: xhci: fix uninitialized completion when USB3 port got wrong status
Greg Kroah-Hartman <greg(a)kroah.com>
tty: wipe buffer if not echoing data
Linus Torvalds <torvalds(a)linux-foundation.org>
tty: wipe buffer.
Sebastien Boisvert <sebhtml(a)videotron.qc.ca>
include/linux/pfn_t.h: force '~' to be parsed as an unary operator
Subhash Jadavani <subhashj(a)codeaurora.org>
scsi: ufshcd: release resources if probe fails
Subhash Jadavani <subhashj(a)codeaurora.org>
scsi: ufs: fix race between clock gating and devfreq scaling work
Venkat Gopalakrishnan <venkatg(a)codeaurora.org>
scsi: ufshcd: Fix race between clk scaling and ungate work
Yaniv Gardi <ygardi(a)codeaurora.org>
scsi: ufs: fix bugs related to null pointer access and array size
Karthik D A <karthida(a)marvell.com>
mwifiex: fix p2p device doesn't find in scan problem
Amitkumar Karwar <akarwar(a)marvell.com>
mwifiex: Fix NULL pointer dereference in skb_dequeue()
Amitkumar Karwar <akarwar(a)marvell.com>
mwifiex: report error to PCIe for suspend failure
Amitkumar Karwar <akarwar(a)marvell.com>
mwifiex: prevent register accesses after host is sleeping
Johannes Thumshirn <jthumshirn(a)suse.de>
cw1200: Don't leak memory if krealloc failes
Ramses Ramírez <ramzeto(a)gmail.com>
Input: xpad - add support for Xbox1 PDP Camo series gamepad
Enno Boland <gottox(a)voidlinux.eu>
Input: xpad - fix GPD Win 2 controller name
Ethan Lee <flibitijibibo(a)gmail.com>
Input: xpad - add GPD Win 2 Controller USB IDs
Marcus Folkesson <marcus.folkesson(a)gmail.com>
Input: xpad - avoid using __set_bit() for capabilities
Leo Sperling <leosperling97(a)gmail.com>
Input: xpad - fix some coding style issues
Francis Therien <frtherien(a)gmail.com>
Input: xpad - add PDP device id 0x02a4
Mark Furneaux <mark(a)furneaux.ca>
Input: xpad - add support for PDP Xbox One controllers
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - validate USB endpoint type during probe
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - fix PowerA init quirk for some gamepad models
Arvind Yadav <arvind.yadav.cs(a)gmail.com>
Input: xpad - constify usb_device_id
Benjamin Valentin <benpicco(a)googlemail.com>
Input: xpad - sync supported devices with XBCD
Benjamin Valentin <benpicco(a)googlemail.com>
Input: xpad - sync supported devices with 360Controller
Benjamin Valentin <benpicco(a)googlemail.com>
Input: xpad - add USB IDs for Mad Catz Brawlstick and Razer Sabertooth
Benjamin Valentin <benpicco(a)googlemail.com>
Input: xpad - sync supported devices with xboxdrv
Benjamin Valentin <benpicco(a)googlemail.com>
Input: xpad - sort supported devices by USB ID
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - support some quirky Xbox One pads
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - restore LED state after device resume
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - fix stuck mode button on Xbox One S pad
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - don't depend on endpoint order
Pavel Rojtberg <rojtberg(a)gmail.com>
Input: xpad - simplify error condition in init_output
Daniel Tobias <dan.g.tob(a)gmail.com>
Input: xpad - move reporting xbox one home button to common function
Daniel Tobias <dan.g.tob(a)gmail.com>
Input: xpad - correctly sort vendor id's
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - fix Xbox One rumble stopping after 2.5 secs
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - add product ID for Xbox One S pad
Vasanthakumar Thiagarajan <vthiagar(a)qti.qualcomm.com>
ath10k: fix kernel panic due to race in accessing arvif list
Greg Hackmann <ghackmann(a)android.com>
arm64: remove no-op -p linker flag
Johan Hovold <johan(a)kernel.org>
net: bcmgenet: fix OF child-node lookup
Johan Hovold <johan(a)kernel.org>
NFC: nfcmrvl_uart: fix OF child-node lookup
Johan Hovold <johan(a)kernel.org>
of: add helper to lookup compatible child node
Yufen Yu <yuyufen(a)huawei.com>
tmpfs: make lseek(SEEK_DATA/SEK_HOLE) return ENXIO with a negative offset
Ard Biesheuvel <ard.biesheuvel(a)linaro.org>
efi/arm: Revert deferred unmap of early memmap mapping
Satheesh Rajendran <sathnaga(a)linux.vnet.ibm.com>
powerpc/numa: Suppress "VPHN is not supported" messages
Prarit Bhargava <prarit(a)redhat.com>
kdb: Use strscpy with destination buffer size
Trond Myklebust <trond.myklebust(a)hammerspace.com>
SUNRPC: Fix a bogus get/put in generic_key_to_expire()
Russell King <rmk+kernel(a)armlinux.org.uk>
ARM: make lookup_processor_type() non-__init
Kan Liang <kan.liang(a)linux.intel.com>
perf/x86/intel/uncore: Add more IMC PCI IDs for KabyLake and CoffeeLake CPUs
Michael Ellerman <mpe(a)ellerman.id.au>
powerpc/io: Fix the IO workarounds code to work with Radix
Jens Axboe <axboe(a)kernel.dk>
floppy: fix race condition in __floppy_read_block_0()
Xulin Sun <xulin.sun(a)windriver.com>
rtc: pcf2127: fix a kmemleak caused in pcf2127_i2c_gather_write
Anson Huang <anson.huang(a)nxp.com>
cpufreq: imx6q: add return value check for voltage scale
Scott Wood <oss(a)buserror.net>
KVM: PPC: Move and undef TRACE_INCLUDE_PATH/FILE
Jerome Brunet <jbrunet(a)baylibre.com>
pinctrl: meson: fix pinconf bias disable
Mathias Nyman <mathias.nyman(a)linux.intel.com>
usb: xhci: Prevent bus suspend if a port connect change or polling state is detected
Michael J. Ruhl <michael.j.ruhl(a)intel.com>
IB/hfi1: Eliminate races in the SDMA send error path
Alex Estrin <alex.estrin(a)intel.com>
IB/core: Fix for core panic
Erik Schmauss <erik.schmauss(a)intel.com>
ACPICA: AML interpreter: add region addresses in global list during initialization
Marc Kleine-Budde <mkl(a)pengutronix.de>
can: dev: __can_get_echo_skb(): print error message, if trying to echo non existing skb
Marc Kleine-Budde <mkl(a)pengutronix.de>
can: dev: __can_get_echo_skb(): Don't crash the kernel if can_priv::echo_skb is accessed out of bounds
Marc Kleine-Budde <mkl(a)pengutronix.de>
can: dev: __can_get_echo_skb(): replace struct can_frame by canfd_frame to access frame length
Marc Kleine-Budde <mkl(a)pengutronix.de>
can: dev: can_get_echo_skb(): factor out non sending code to __can_get_echo_skb()
Thomas Zimmermann <tzimmermann(a)suse.de>
drm/ast: Remove existing framebuffers before loading driver
Y.C. Chen <yc_chen(a)aspeedtech.com>
drm/ast: fixed cursor may disappear sometimes
Y.C. Chen <yc_chen(a)aspeedtech.com>
drm/ast: change resolution may cause screen blurred
Dmitry Vyukov <dvyukov(a)google.com>
mm: don't warn about large allocations for slab
Eric Dumazet <edumazet(a)google.com>
llc: do not use sk_eat_skb()
Andrew Price <anprice(a)redhat.com>
gfs2: Don't leave s_fs_info pointing to freed memory in init_sbd
Xin Long <lucien.xin(a)gmail.com>
sctp: clear the transport of some out_chunk_list chunks in sctp_assoc_rm_peer
Tetsuo Handa <penguin-kernel(a)I-love.SAKURA.ne.jp>
bfs: add sanity check at bfs_fill_super()
Tetsuo Handa <penguin-kernel(a)i-love.sakura.ne.jp>
selinux: Add __GFP_NOWARN to allocation at str_read()
Dominique Martinet <dominique.martinet(a)cea.fr>
v9fs_dir_readdir: fix double-free on p9stat_read error
Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
tools/power/cpupower: fix compilation with STATIC=true
Rafał Miłecki <rafal(a)milecki.pl>
brcmfmac: fix reporting support for 160 MHz channels
Emmanuel Grumbach <emmanuel.grumbach(a)intel.com>
iwlwifi: mvm: fix regulatory domain update when the firmware starts
Emmanuel Grumbach <emmanuel.grumbach(a)intel.com>
iwlwifi: mvm: support sta_statistics() even on older firmware
Vladimir Zapolskiy <vz(a)mleia.com>
gpio: don't free unallocated ida on gpiochip_add_data_with_key() error path
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
MAINTAINERS: Add Sasha as a stable branch maintainer
Aaron Ma <aaron.ma(a)canonical.com>
usb: xhci: fix timeout for transition from RExit to U0
Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
usb: dwc3: core: Clean up ULPI device
Dennis Wassenberg <dennis.wassenberg(a)secunet.com>
usb: core: Fix hub port connection events lost
-------------
Diffstat:
Documentation/sysctl/fs.txt | 36 ++
MAINTAINERS | 1 +
Makefile | 4 +-
arch/arm/kernel/head-common.S | 6 +-
arch/arm64/Makefile | 2 +-
arch/powerpc/include/asm/io.h | 20 +-
arch/powerpc/kvm/trace.h | 8 +-
arch/powerpc/kvm/trace_booke.h | 9 +-
arch/powerpc/kvm/trace_hv.h | 9 +-
arch/powerpc/kvm/trace_pr.h | 9 +-
arch/powerpc/mm/numa.c | 2 +-
arch/s390/mm/gmap.c | 2 +
arch/x86/events/intel/uncore_snb.c | 115 ++++-
drivers/acpi/acpica/dsopcode.c | 4 +
drivers/block/floppy.c | 3 +-
drivers/cpufreq/imx6q-cpufreq.c | 7 +-
drivers/firmware/efi/arm-init.c | 4 +
drivers/firmware/efi/arm-runtime.c | 2 +-
drivers/firmware/efi/memmap.c | 3 +
drivers/gpio/gpiolib.c | 5 +-
drivers/gpu/drm/ast/ast_drv.c | 21 +
drivers/gpu/drm/ast/ast_mode.c | 3 +-
drivers/infiniband/core/verbs.c | 4 +-
drivers/infiniband/hw/hfi1/user_sdma.c | 106 ++---
drivers/input/joystick/xpad.c | 471 ++++++++++++++++-----
drivers/net/can/dev.c | 48 ++-
drivers/net/ethernet/broadcom/genet/bcmmii.c | 2 +-
drivers/net/usb/lan78xx.c | 42 +-
drivers/net/wireless/ath/ath10k/mac.c | 6 +
.../broadcom/brcm80211/brcmfmac/cfg80211.c | 3 +-
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 12 +-
drivers/net/wireless/intel/iwlwifi/mvm/nvm.c | 5 +-
drivers/net/wireless/marvell/mwifiex/cfg80211.c | 10 +-
drivers/net/wireless/marvell/mwifiex/pcie.c | 19 +-
drivers/net/wireless/marvell/mwifiex/wmm.c | 12 +-
drivers/net/wireless/st/cw1200/wsm.c | 16 +-
drivers/nfc/nfcmrvl/uart.c | 5 +-
drivers/of/base.c | 25 ++
drivers/pinctrl/meson/pinctrl-meson.c | 2 +-
drivers/rtc/rtc-pcf2127.c | 3 +
drivers/scsi/ufs/ufs.h | 3 +-
drivers/scsi/ufs/ufshcd-pci.c | 2 +
drivers/scsi/ufs/ufshcd-pltfrm.c | 5 +-
drivers/scsi/ufs/ufshcd.c | 75 +++-
drivers/tty/n_tty.c | 20 +-
drivers/tty/tty_buffer.c | 2 +
drivers/usb/core/hub.c | 4 +-
drivers/usb/dwc3/core.c | 1 +
drivers/usb/host/xhci-hub.c | 66 ++-
drivers/usb/host/xhci-ring.c | 2 +-
drivers/usb/host/xhci.h | 2 +-
fs/9p/vfs_dir.c | 11 -
fs/bfs/inode.c | 9 +-
fs/gfs2/ops_fstype.c | 2 +-
fs/namei.c | 53 ++-
include/linux/can/dev.h | 1 +
include/linux/fs.h | 2 +
include/linux/integrity.h | 1 +
include/linux/of.h | 8 +
include/linux/pfn_t.h | 2 +-
kernel/debug/kdb/kdb_io.c | 15 +-
kernel/debug/kdb/kdb_private.h | 2 +-
kernel/debug/kdb/kdb_support.c | 10 +-
kernel/sched/core.c | 4 +-
kernel/sysctl.c | 18 +
mm/shmem.c | 4 +-
mm/slab.c | 4 +
mm/slab_common.c | 12 +-
net/ieee802154/6lowpan/6lowpan_i.h | 4 +-
net/ieee802154/6lowpan/reassembly.c | 14 +-
net/llc/af_llc.c | 11 +-
net/sctp/associola.c | 10 +-
net/sunrpc/auth_generic.c | 8 +-
security/integrity/evm/evm.h | 2 +-
security/integrity/evm/evm_crypto.c | 87 +++-
security/integrity/evm/evm_main.c | 29 +-
security/integrity/iint.c | 3 +
security/integrity/ima/ima_api.c | 67 +--
security/integrity/ima/ima_appraise.c | 31 +-
security/integrity/ima/ima_crypto.c | 10 +
security/integrity/ima/ima_main.c | 77 ++--
security/integrity/integrity.h | 18 +-
security/selinux/ss/policydb.c | 2 +-
tools/power/cpupower/bench/Makefile | 2 +-
tools/power/cpupower/lib/cpufreq.c | 2 +-
tools/power/cpupower/lib/cpuidle.c | 2 +-
tools/power/cpupower/lib/cpupower.c | 4 +-
tools/power/cpupower/lib/cpupower_intern.h | 2 +-
88 files changed, 1325 insertions(+), 466 deletions(-)
This is the start of the stable review cycle for the 4.4.166 release.
There are 86 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 Sat Dec 1 14:00:43 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.4.166-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.4.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.4.166-rc1
Thomas Zimmermann <tzimmermann(a)suse.de>
drm/ast: Remove existing framebuffers before loading driver
Janosch Frank <frankja(a)linux.ibm.com>
s390/mm: Check for valid vma before zapping in gmap_discard
Salvatore Mesoraca <s.mesoraca16(a)gmail.com>
namei: allow restricted O_CREAT of FIFOs and regular files
Steven Rostedt (VMware) <rostedt(a)goodmis.org>
sched/core: Allow __sched_setscheduler() in interrupts when PI is not used
Qu Wenruo <wqu(a)suse.com>
btrfs: Ensure btrfs_trim_fs can trim the whole filesystem
Aaron Ma <aaron.ma(a)canonical.com>
usb: xhci: fix uninitialized completion when USB3 port got wrong status
Greg Kroah-Hartman <greg(a)kroah.com>
tty: wipe buffer if not echoing data
Linus Torvalds <torvalds(a)linux-foundation.org>
tty: wipe buffer.
Emmanuel Grumbach <emmanuel.grumbach(a)intel.com>
iwlwifi: mvm: fix regulatory domain update when the firmware starts
Mauricio Faria de Oliveira <mauricfo(a)linux.vnet.ibm.com>
scsi: qla2xxx: do not queue commands when unloading
Subhash Jadavani <subhashj(a)codeaurora.org>
scsi: ufshcd: release resources if probe fails
Subhash Jadavani <subhashj(a)codeaurora.org>
scsi: ufs: fix race between clock gating and devfreq scaling work
Venkat Gopalakrishnan <venkatg(a)codeaurora.org>
scsi: ufshcd: Fix race between clk scaling and ungate work
Yaniv Gardi <ygardi(a)codeaurora.org>
scsi: ufs: fix bugs related to null pointer access and array size
Liping Zhang <zlpnobody(a)gmail.com>
netfilter: nf_tables: fix oops when inserting an element into a verdict map
Karthik D A <karthida(a)marvell.com>
mwifiex: fix p2p device doesn't find in scan problem
Amitkumar Karwar <akarwar(a)marvell.com>
mwifiex: Fix NULL pointer dereference in skb_dequeue()
Johannes Thumshirn <jthumshirn(a)suse.de>
cw1200: Don't leak memory if krealloc failes
Ramses Ramírez <ramzeto(a)gmail.com>
Input: xpad - add support for Xbox1 PDP Camo series gamepad
Enno Boland <gottox(a)voidlinux.eu>
Input: xpad - fix GPD Win 2 controller name
Ethan Lee <flibitijibibo(a)gmail.com>
Input: xpad - add GPD Win 2 Controller USB IDs
Marcus Folkesson <marcus.folkesson(a)gmail.com>
Input: xpad - avoid using __set_bit() for capabilities
Leo Sperling <leosperling97(a)gmail.com>
Input: xpad - fix some coding style issues
Francis Therien <frtherien(a)gmail.com>
Input: xpad - add PDP device id 0x02a4
Mark Furneaux <mark(a)furneaux.ca>
Input: xpad - add support for PDP Xbox One controllers
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - validate USB endpoint type during probe
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - fix PowerA init quirk for some gamepad models
Arvind Yadav <arvind.yadav.cs(a)gmail.com>
Input: xpad - constify usb_device_id
Benjamin Valentin <benpicco(a)googlemail.com>
Input: xpad - sync supported devices with XBCD
Benjamin Valentin <benpicco(a)googlemail.com>
Input: xpad - sync supported devices with 360Controller
Benjamin Valentin <benpicco(a)googlemail.com>
Input: xpad - add USB IDs for Mad Catz Brawlstick and Razer Sabertooth
Benjamin Valentin <benpicco(a)googlemail.com>
Input: xpad - sync supported devices with xboxdrv
Benjamin Valentin <benpicco(a)googlemail.com>
Input: xpad - sort supported devices by USB ID
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - support some quirky Xbox One pads
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - restore LED state after device resume
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - fix stuck mode button on Xbox One S pad
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - don't depend on endpoint order
Pavel Rojtberg <rojtberg(a)gmail.com>
Input: xpad - simplify error condition in init_output
Daniel Tobias <dan.g.tob(a)gmail.com>
Input: xpad - move reporting xbox one home button to common function
Daniel Tobias <dan.g.tob(a)gmail.com>
Input: xpad - correctly sort vendor id's
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - fix Xbox One rumble stopping after 2.5 secs
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - add product ID for Xbox One S pad
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - power off wireless 360 controllers on suspend
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - fix rumble on Xbox One controllers with 2015 firmware
Pavel Rojtberg <rojtberg(a)gmail.com>
Input: xpad - xbox one elite controller support
Pavel Rojtberg <rojtberg(a)gmail.com>
Input: xpad - add more third-party controllers
Cameron Gutman <aicommander(a)gmail.com>
Input: xpad - prevent spurious input from wired Xbox 360 controllers
Silvan Jegen <s.jegen(a)gmail.com>
Input: xpad - add Mad Catz FightStick TE 2 VID/PID
Arnd Bergmann <arnd(a)arndb.de>
Input: xpad - remove unused function
Pavel Rojtberg <rojtberg(a)gmail.com>
Input: xpad - correct xbox one pad device name
Dmitry Torokhov <dmitry.torokhov(a)gmail.com>
Input: xpad - use LED API when identifying wireless controllers
Pavel Rojtberg <rojtberg(a)gmail.com>
Input: xpad - workaround dead irq_out after suspend/ resume
Pierre-Loup A. Griffais <githubpublic(a)plagman.net>
Input: xpad - update Xbox One Force Feedback Support
Pierre-Loup A. Griffais <pgriffais(a)valvesoftware.com>
Input: xpad - handle "present" and "gone" correctly
Clement Calmels <clement.calmels(a)free.fr>
Input: xpad - remove spurious events of wireless xpad 360 controller
Vasanthakumar Thiagarajan <vthiagar(a)qti.qualcomm.com>
ath10k: fix kernel panic due to race in accessing arvif list
Greg Hackmann <ghackmann(a)android.com>
arm64: remove no-op -p linker flag
Andy Lutomirski <luto(a)kernel.org>
x86/entry/64: Remove %ebx handling from error_entry/exit
Nicolas Iooss <nicolas.iooss_linux(a)m4x.org>
x86/entry: spell EBX register correctly in documentation
Johan Hovold <johan(a)kernel.org>
net: bcmgenet: fix OF child-node lookup
Johan Hovold <johan(a)kernel.org>
NFC: nfcmrvl_uart: fix OF child-node lookup
Johan Hovold <johan(a)kernel.org>
of: add helper to lookup compatible child node
Yufen Yu <yuyufen(a)huawei.com>
tmpfs: make lseek(SEEK_DATA/SEK_HOLE) return ENXIO with a negative offset
Satheesh Rajendran <sathnaga(a)linux.vnet.ibm.com>
powerpc/numa: Suppress "VPHN is not supported" messages
Prarit Bhargava <prarit(a)redhat.com>
kdb: Use strscpy with destination buffer size
Trond Myklebust <trond.myklebust(a)hammerspace.com>
SUNRPC: Fix a bogus get/put in generic_key_to_expire()
Russell King <rmk+kernel(a)armlinux.org.uk>
ARM: make lookup_processor_type() non-__init
Anson Huang <anson.huang(a)nxp.com>
cpufreq: imx6q: add return value check for voltage scale
Scott Wood <oss(a)buserror.net>
KVM: PPC: Move and undef TRACE_INCLUDE_PATH/FILE
Mathias Nyman <mathias.nyman(a)linux.intel.com>
usb: xhci: Prevent bus suspend if a port connect change or polling state is detected
Erik Schmauss <erik.schmauss(a)intel.com>
ACPICA: AML interpreter: add region addresses in global list during initialization
Marc Kleine-Budde <mkl(a)pengutronix.de>
can: dev: __can_get_echo_skb(): print error message, if trying to echo non existing skb
Marc Kleine-Budde <mkl(a)pengutronix.de>
can: dev: __can_get_echo_skb(): Don't crash the kernel if can_priv::echo_skb is accessed out of bounds
Marc Kleine-Budde <mkl(a)pengutronix.de>
can: dev: __can_get_echo_skb(): replace struct can_frame by canfd_frame to access frame length
Marc Kleine-Budde <mkl(a)pengutronix.de>
can: dev: can_get_echo_skb(): factor out non sending code to __can_get_echo_skb()
Y.C. Chen <yc_chen(a)aspeedtech.com>
drm/ast: fixed cursor may disappear sometimes
Y.C. Chen <yc_chen(a)aspeedtech.com>
drm/ast: change resolution may cause screen blurred
Eric Dumazet <edumazet(a)google.com>
llc: do not use sk_eat_skb()
Andrew Price <anprice(a)redhat.com>
gfs2: Don't leave s_fs_info pointing to freed memory in init_sbd
Xin Long <lucien.xin(a)gmail.com>
sctp: clear the transport of some out_chunk_list chunks in sctp_assoc_rm_peer
Tetsuo Handa <penguin-kernel(a)I-love.SAKURA.ne.jp>
bfs: add sanity check at bfs_fill_super()
Dominique Martinet <dominique.martinet(a)cea.fr>
v9fs_dir_readdir: fix double-free on p9stat_read error
Emmanuel Grumbach <emmanuel.grumbach(a)intel.com>
iwlwifi: mvm: support sta_statistics() even on older firmware
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
MAINTAINERS: Add Sasha as a stable branch maintainer
Aaron Ma <aaron.ma(a)canonical.com>
usb: xhci: fix timeout for transition from RExit to U0
Dennis Wassenberg <dennis.wassenberg(a)secunet.com>
usb: core: Fix hub port connection events lost
-------------
Diffstat:
Documentation/sysctl/fs.txt | 36 ++
MAINTAINERS | 1 +
Makefile | 4 +-
arch/arm/kernel/head-common.S | 6 +-
arch/arm64/Makefile | 2 +-
arch/powerpc/kvm/trace.h | 8 +-
arch/powerpc/kvm/trace_booke.h | 9 +-
arch/powerpc/kvm/trace_hv.h | 9 +-
arch/powerpc/kvm/trace_pr.h | 9 +-
arch/powerpc/mm/numa.c | 2 +-
arch/s390/mm/pgtable.c | 2 +
arch/x86/entry/entry_64.S | 20 +-
drivers/acpi/acpica/dsopcode.c | 4 +
drivers/cpufreq/imx6q-cpufreq.c | 7 +-
drivers/gpu/drm/ast/ast_drv.c | 21 +
drivers/gpu/drm/ast/ast_mode.c | 3 +-
drivers/input/joystick/xpad.c | 810 +++++++++++++++++++++------
drivers/net/can/dev.c | 48 +-
drivers/net/ethernet/broadcom/genet/bcmmii.c | 2 +-
drivers/net/wireless/ath/ath10k/mac.c | 6 +
drivers/net/wireless/cw1200/wsm.c | 16 +-
drivers/net/wireless/iwlwifi/mvm/mac80211.c | 12 +-
drivers/net/wireless/iwlwifi/mvm/nvm.c | 5 +-
drivers/net/wireless/mwifiex/cfg80211.c | 10 +-
drivers/net/wireless/mwifiex/wmm.c | 12 +-
drivers/nfc/nfcmrvl/uart.c | 5 +-
drivers/of/base.c | 25 +
drivers/scsi/qla2xxx/qla_os.c | 5 +
drivers/scsi/ufs/ufs.h | 3 +-
drivers/scsi/ufs/ufshcd-pci.c | 2 +
drivers/scsi/ufs/ufshcd-pltfrm.c | 5 +-
drivers/scsi/ufs/ufshcd.c | 75 ++-
drivers/tty/n_tty.c | 19 +-
drivers/tty/tty_buffer.c | 2 +
drivers/usb/core/hub.c | 4 +-
drivers/usb/host/xhci-hub.c | 66 ++-
drivers/usb/host/xhci-ring.c | 2 +-
drivers/usb/host/xhci.h | 2 +-
fs/9p/vfs_dir.c | 11 -
fs/bfs/inode.c | 9 +-
fs/btrfs/extent-tree.c | 10 +-
fs/btrfs/ioctl.c | 11 +-
fs/gfs2/ops_fstype.c | 2 +-
fs/namei.c | 53 +-
include/linux/can/dev.h | 1 +
include/linux/fs.h | 2 +
include/linux/of.h | 8 +
kernel/debug/kdb/kdb_io.c | 15 +-
kernel/debug/kdb/kdb_private.h | 2 +-
kernel/debug/kdb/kdb_support.c | 10 +-
kernel/sched/core.c | 4 +-
kernel/sysctl.c | 18 +
mm/shmem.c | 4 +-
net/llc/af_llc.c | 11 +-
net/netfilter/nf_tables_api.c | 1 +
net/sctp/associola.c | 10 +-
net/sunrpc/auth_generic.c | 8 +-
57 files changed, 1126 insertions(+), 343 deletions(-)
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/khugepaged: collapse_shmem() do not crash on Compound
collapse_shmem()'s VM_BUG_ON_PAGE(PageTransCompound) was unsafe: before it
holds page lock of the first page, racing truncation then extension might
conceivably have inserted a hugepage there already. Fail with the
SCAN_PAGE_COMPOUND result, instead of crashing (CONFIG_DEBUG_VM=y) or
otherwise mishandling the unexpected hugepage - though later we might code
up a more constructive way of handling it, with SCAN_SUCCESS.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261529310.2275@eggly.anvils
Fixes: f3f0e1d2150b2 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Cc: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/khugepaged.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
--- a/mm/khugepaged.c~mm-khugepaged-collapse_shmem-do-not-crash-on-compound
+++ a/mm/khugepaged.c
@@ -1399,7 +1399,15 @@ static void collapse_shmem(struct mm_str
*/
VM_BUG_ON_PAGE(!PageLocked(page), page);
VM_BUG_ON_PAGE(!PageUptodate(page), page);
- VM_BUG_ON_PAGE(PageTransCompound(page), page);
+
+ /*
+ * If file was truncated then extended, or hole-punched, before
+ * we locked the first page, then a THP might be there already.
+ */
+ if (PageTransCompound(page)) {
+ result = SCAN_PAGE_COMPOUND;
+ goto out_unlock;
+ }
if (page_mapping(page) != mapping) {
result = SCAN_TRUNCATED;
_
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/khugepaged: collapse_shmem() without freezing new_page
khugepaged's collapse_shmem() does almost all of its work, to assemble the
huge new_page from 512 scattered old pages, with the new_page's refcount
frozen to 0 (and refcounts of all old pages so far also frozen to 0).
Including shmem_getpage() to read in any which were out on swap, memory
reclaim if necessary to allocate their intermediate pages, and copying
over all the data from old to new.
Imagine the frozen refcount as a spinlock held, but without any lock
debugging to highlight the abuse: it's not good, and under serious load
heads into lockups - speculative getters of the page are not expecting to
spin while khugepaged is rescheduled.
One can get a little further under load by hacking around elsewhere; but
fortunately, freezing the new_page turns out to have been entirely
unnecessary, with no hacks needed elsewhere.
The huge new_page lock is already held throughout, and guards all its
subpages as they are brought one by one into the page cache tree; and
anything reading the data in that page, without the lock, before it has
been marked PageUptodate, would already be in the wrong. So simply
eliminate the freezing of the new_page.
Each of the old pages remains frozen with refcount 0 after it has been
replaced by a new_page subpage in the page cache tree, until they are all
unfrozen on success or failure: just as before. They could be unfrozen
sooner, but cause no problem once no longer visible to find_get_entry(),
filemap_map_pages() and other speculative lookups.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261527570.2275@eggly.anvils
Fixes: f3f0e1d2150b2 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/khugepaged.c | 19 +++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)
--- a/mm/khugepaged.c~mm-khugepaged-collapse_shmem-without-freezing-new_page
+++ a/mm/khugepaged.c
@@ -1287,7 +1287,7 @@ static void retract_page_tables(struct a
* collapse_shmem - collapse small tmpfs/shmem pages into huge one.
*
* Basic scheme is simple, details are more complex:
- * - allocate and freeze a new huge page;
+ * - allocate and lock a new huge page;
* - scan page cache replacing old pages with the new one
* + swap in pages if necessary;
* + fill in gaps;
@@ -1295,11 +1295,11 @@ static void retract_page_tables(struct a
* - if replacing succeeds:
* + copy data over;
* + free old pages;
- * + unfreeze huge page;
+ * + unlock huge page;
* - if replacing failed;
* + put all pages back and unfreeze them;
* + restore gaps in the page cache;
- * + free huge page;
+ * + unlock and free huge page;
*/
static void collapse_shmem(struct mm_struct *mm,
struct address_space *mapping, pgoff_t start,
@@ -1333,13 +1333,11 @@ static void collapse_shmem(struct mm_str
__SetPageSwapBacked(new_page);
new_page->index = start;
new_page->mapping = mapping;
- BUG_ON(!page_ref_freeze(new_page, 1));
/*
- * At this point the new_page is 'frozen' (page_count() is zero),
- * locked and not up-to-date. It's safe to insert it into the page
- * cache, because nobody would be able to map it or use it in other
- * way until we unfreeze it.
+ * At this point the new_page is locked and not up-to-date.
+ * It's safe to insert it into the page cache, because nobody would
+ * be able to map it or use it in another way until we unlock it.
*/
/* This will be less messy when we use multi-index entries */
@@ -1491,9 +1489,8 @@ xa_unlocked:
index++;
}
- /* Everything is ready, let's unfreeze the new_page */
SetPageUptodate(new_page);
- page_ref_unfreeze(new_page, HPAGE_PMD_NR);
+ page_ref_add(new_page, HPAGE_PMD_NR - 1);
set_page_dirty(new_page);
mem_cgroup_commit_charge(new_page, memcg, false, true);
lru_cache_add_anon(new_page);
@@ -1541,8 +1538,6 @@ xa_unlocked:
VM_BUG_ON(nr_none);
xas_unlock_irq(&xas);
- /* Unfreeze new_page, caller would take care about freeing it */
- page_ref_unfreeze(new_page, 1);
mem_cgroup_cancel_charge(new_page, memcg, true);
new_page->mapping = NULL;
}
_
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/khugepaged: collapse_shmem() remember to clear holes
Huge tmpfs testing reminds us that there is no __GFP_ZERO in the gfp flags
khugepaged uses to allocate a huge page - in all common cases it would
just be a waste of effort - so collapse_shmem() must remember to clear out
any holes that it instantiates.
The obvious place to do so, where they are put into the page cache tree,
is not a good choice: because interrupts are disabled there. Leave it
until further down, once success is assured, where the other pages are
copied (before setting PageUptodate).
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261525080.2275@eggly.anvils
Fixes: f3f0e1d2150b2 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/khugepaged.c | 10 ++++++++++
1 file changed, 10 insertions(+)
--- a/mm/khugepaged.c~mm-khugepaged-collapse_shmem-remember-to-clear-holes
+++ a/mm/khugepaged.c
@@ -1467,7 +1467,12 @@ xa_unlocked:
* Replacing old pages with new one has succeeded, now we
* need to copy the content and free the old pages.
*/
+ index = start;
list_for_each_entry_safe(page, tmp, &pagelist, lru) {
+ while (index < page->index) {
+ clear_highpage(new_page + (index % HPAGE_PMD_NR));
+ index++;
+ }
copy_highpage(new_page + (page->index % HPAGE_PMD_NR),
page);
list_del(&page->lru);
@@ -1477,6 +1482,11 @@ xa_unlocked:
ClearPageActive(page);
ClearPageUnevictable(page);
put_page(page);
+ index++;
+ }
+ while (index < end) {
+ clear_highpage(new_page + (index % HPAGE_PMD_NR));
+ index++;
}
local_irq_disable();
_
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/khugepaged: fix crashes due to misaccounted holes
Huge tmpfs testing on a shortish file mapped into a pmd-rounded extent hit
shmem_evict_inode()'s WARN_ON(inode->i_blocks) followed by clear_inode()'s
BUG_ON(inode->i_data.nrpages) when the file was later closed and unlinked.
khugepaged's collapse_shmem() was forgetting to update mapping->nrpages on
the rollback path, after it had added but then needs to undo some holes.
There is indeed an irritating asymmetry between shmem_charge(), whose
callers want it to increment nrpages after successfully accounting blocks,
and shmem_uncharge(), when __delete_from_page_cache() already decremented
nrpages itself: oh well, just add a comment on that to them both.
And shmem_recalc_inode() is supposed to be called when the accounting is
expected to be in balance (so it can deduce from imbalance that reclaim
discarded some pages): so change shmem_charge() to update nrpages earlier
(though it's rare for the difference to matter at all).
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261523450.2275@eggly.anvils
Fixes: 800d8c63b2e98 ("shmem: add huge pages support")
Fixes: f3f0e1d2150b2 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/khugepaged.c | 5 ++++-
mm/shmem.c | 6 +++++-
2 files changed, 9 insertions(+), 2 deletions(-)
--- a/mm/khugepaged.c~mm-khugepaged-fix-crashes-due-to-misaccounted-holes
+++ a/mm/khugepaged.c
@@ -1506,9 +1506,12 @@ xa_unlocked:
khugepaged_pages_collapsed++;
} else {
struct page *page;
+
/* Something went wrong: roll back page cache changes */
- shmem_uncharge(mapping->host, nr_none);
xas_lock_irq(&xas);
+ mapping->nrpages -= nr_none;
+ shmem_uncharge(mapping->host, nr_none);
+
xas_set(&xas, start);
xas_for_each(&xas, page, end - 1) {
page = list_first_entry_or_null(&pagelist,
--- a/mm/shmem.c~mm-khugepaged-fix-crashes-due-to-misaccounted-holes
+++ a/mm/shmem.c
@@ -297,12 +297,14 @@ bool shmem_charge(struct inode *inode, l
if (!shmem_inode_acct_block(inode, pages))
return false;
+ /* nrpages adjustment first, then shmem_recalc_inode() when balanced */
+ inode->i_mapping->nrpages += pages;
+
spin_lock_irqsave(&info->lock, flags);
info->alloced += pages;
inode->i_blocks += pages * BLOCKS_PER_PAGE;
shmem_recalc_inode(inode);
spin_unlock_irqrestore(&info->lock, flags);
- inode->i_mapping->nrpages += pages;
return true;
}
@@ -312,6 +314,8 @@ void shmem_uncharge(struct inode *inode,
struct shmem_inode_info *info = SHMEM_I(inode);
unsigned long flags;
+ /* nrpages adjustment done by __delete_from_page_cache() or caller */
+
spin_lock_irqsave(&info->lock, flags);
info->alloced -= pages;
inode->i_blocks -= pages * BLOCKS_PER_PAGE;
_
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/huge_memory: fix lockdep complaint on 32-bit i_size_read()
Huge tmpfs testing, on 32-bit kernel with lockdep enabled, showed that
__split_huge_page() was using i_size_read() while holding the irq-safe
lru_lock and page tree lock, but the 32-bit i_size_read() uses an
irq-unsafe seqlock which should not be nested inside them.
Instead, read the i_size earlier in split_huge_page_to_list(), and pass
the end offset down to __split_huge_page(): all while holding head page
lock, which is enough to prevent truncation of that extent before the page
tree lock has been taken.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261520070.2275@eggly.anvils
Fixes: baa355fd33142 ("thp: file pages support for split_huge_page()")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/huge_memory.c | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
--- a/mm/huge_memory.c~mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read
+++ a/mm/huge_memory.c
@@ -2439,12 +2439,11 @@ static void __split_huge_page_tail(struc
}
static void __split_huge_page(struct page *page, struct list_head *list,
- unsigned long flags)
+ pgoff_t end, unsigned long flags)
{
struct page *head = compound_head(page);
struct zone *zone = page_zone(head);
struct lruvec *lruvec;
- pgoff_t end = -1;
int i;
lruvec = mem_cgroup_page_lruvec(head, zone->zone_pgdat);
@@ -2452,9 +2451,6 @@ static void __split_huge_page(struct pag
/* complete memcg works before add pages to LRU */
mem_cgroup_split_huge_fixup(head);
- if (!PageAnon(page))
- end = DIV_ROUND_UP(i_size_read(head->mapping->host), PAGE_SIZE);
-
for (i = HPAGE_PMD_NR - 1; i >= 1; i--) {
__split_huge_page_tail(head, i, lruvec, list);
/* Some pages can be beyond i_size: drop them from page cache */
@@ -2626,6 +2622,7 @@ int split_huge_page_to_list(struct page
int count, mapcount, extra_pins, ret;
bool mlocked;
unsigned long flags;
+ pgoff_t end;
VM_BUG_ON_PAGE(is_huge_zero_page(page), page);
VM_BUG_ON_PAGE(!PageLocked(page), page);
@@ -2648,6 +2645,7 @@ int split_huge_page_to_list(struct page
ret = -EBUSY;
goto out;
}
+ end = -1;
mapping = NULL;
anon_vma_lock_write(anon_vma);
} else {
@@ -2661,6 +2659,15 @@ int split_huge_page_to_list(struct page
anon_vma = NULL;
i_mmap_lock_read(mapping);
+
+ /*
+ *__split_huge_page() may need to trim off pages beyond EOF:
+ * but on 32-bit, i_size_read() takes an irq-unsafe seqlock,
+ * which cannot be nested inside the page tree lock. So note
+ * end now: i_size itself may be changed at any moment, but
+ * head page lock is good enough to serialize the trimming.
+ */
+ end = DIV_ROUND_UP(i_size_read(mapping->host), PAGE_SIZE);
}
/*
@@ -2707,7 +2714,7 @@ int split_huge_page_to_list(struct page
if (mapping)
__dec_node_page_state(page, NR_SHMEM_THPS);
spin_unlock(&pgdata->split_queue_lock);
- __split_huge_page(page, list, flags);
+ __split_huge_page(page, list, end, flags);
if (PageSwapCache(head)) {
swp_entry_t entry = { .val = page_private(head) };
_
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/huge_memory: splitting set mapping+index before unfreeze
Huge tmpfs stress testing has occasionally hit shmem_undo_range()'s
VM_BUG_ON_PAGE(page_to_pgoff(page) != index, page).
Move the setting of mapping and index up before the page_ref_unfreeze() in
__split_huge_page_tail() to fix this: so that a page cache lookup cannot
get a reference while the tail's mapping and index are unstable.
In fact, might as well move them up before the smp_wmb(): I don't see an
actual need for that, but if I'm missing something, this way round is
safer than the other, and no less efficient.
You might argue that VM_BUG_ON_PAGE(page_to_pgoff(page) != index, page) is
misplaced, and should be left until after the trylock_page(); but left as
is has not crashed since, and gives more stringent assurance.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261516380.2275@eggly.anvils
Fixes: e9b61f19858a5 ("thp: reintroduce split_huge_page()")
Requires: 605ca5ede764 ("mm/huge_memory.c: reorder operations in __split_huge_page_tail()")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/huge_memory.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
--- a/mm/huge_memory.c~mm-huge_memory-splitting-set-mappingindex-before-unfreeze
+++ a/mm/huge_memory.c
@@ -2402,6 +2402,12 @@ static void __split_huge_page_tail(struc
(1L << PG_unevictable) |
(1L << PG_dirty)));
+ /* ->mapping in first tail page is compound_mapcount */
+ VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING,
+ page_tail);
+ page_tail->mapping = head->mapping;
+ page_tail->index = head->index + tail;
+
/* Page flags must be visible before we make the page non-compound. */
smp_wmb();
@@ -2422,12 +2428,6 @@ static void __split_huge_page_tail(struc
if (page_is_idle(head))
set_page_idle(page_tail);
- /* ->mapping in first tail page is compound_mapcount */
- VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING,
- page_tail);
- page_tail->mapping = head->mapping;
-
- page_tail->index = head->index + tail;
page_cpupid_xchg_last(page_tail, page_cpupid_last(head));
/*
_
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/huge_memory: rename freeze_page() to unmap_page()
The term "freeze" is used in several ways in the kernel, and in mm it has
the particular meaning of forcing page refcount temporarily to 0.
freeze_page() is just too confusing a name for a function that unmaps a
page: rename it unmap_page(), and rename unfreeze_page() remap_page().
Went to change the mention of freeze_page() added later in mm/rmap.c, but
found it to be incorrect: ordinary page reclaim reaches there too; but the
substance of the comment still seems correct, so edit it down.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261514080.2275@eggly.anvils
Fixes: e9b61f19858a5 ("thp: reintroduce split_huge_page()")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/huge_memory.c | 12 ++++++------
mm/rmap.c | 13 +++----------
2 files changed, 9 insertions(+), 16 deletions(-)
--- a/mm/huge_memory.c~mm-huge_memory-rename-freeze_page-to-unmap_page
+++ a/mm/huge_memory.c
@@ -2350,7 +2350,7 @@ void vma_adjust_trans_huge(struct vm_are
}
}
-static void freeze_page(struct page *page)
+static void unmap_page(struct page *page)
{
enum ttu_flags ttu_flags = TTU_IGNORE_MLOCK | TTU_IGNORE_ACCESS |
TTU_RMAP_LOCKED | TTU_SPLIT_HUGE_PMD;
@@ -2365,7 +2365,7 @@ static void freeze_page(struct page *pag
VM_BUG_ON_PAGE(!unmap_success, page);
}
-static void unfreeze_page(struct page *page)
+static void remap_page(struct page *page)
{
int i;
if (PageTransHuge(page)) {
@@ -2483,7 +2483,7 @@ static void __split_huge_page(struct pag
spin_unlock_irqrestore(zone_lru_lock(page_zone(head)), flags);
- unfreeze_page(head);
+ remap_page(head);
for (i = 0; i < HPAGE_PMD_NR; i++) {
struct page *subpage = head + i;
@@ -2664,7 +2664,7 @@ int split_huge_page_to_list(struct page
}
/*
- * Racy check if we can split the page, before freeze_page() will
+ * Racy check if we can split the page, before unmap_page() will
* split PMDs
*/
if (!can_split_huge_page(head, &extra_pins)) {
@@ -2673,7 +2673,7 @@ int split_huge_page_to_list(struct page
}
mlocked = PageMlocked(page);
- freeze_page(head);
+ unmap_page(head);
VM_BUG_ON_PAGE(compound_mapcount(head), head);
/* Make sure the page is not on per-CPU pagevec as it takes pin */
@@ -2727,7 +2727,7 @@ int split_huge_page_to_list(struct page
fail: if (mapping)
xa_unlock(&mapping->i_pages);
spin_unlock_irqrestore(zone_lru_lock(page_zone(head)), flags);
- unfreeze_page(head);
+ remap_page(head);
ret = -EBUSY;
}
--- a/mm/rmap.c~mm-huge_memory-rename-freeze_page-to-unmap_page
+++ a/mm/rmap.c
@@ -1627,16 +1627,9 @@ static bool try_to_unmap_one(struct page
address + PAGE_SIZE);
} else {
/*
- * We should not need to notify here as we reach this
- * case only from freeze_page() itself only call from
- * split_huge_page_to_list() so everything below must
- * be true:
- * - page is not anonymous
- * - page is locked
- *
- * So as it is a locked file back page thus it can not
- * be remove from the page cache and replace by a new
- * page before mmu_notifier_invalidate_range_end so no
+ * This is a locked file-backed page, thus it cannot
+ * be removed from the page cache and replaced by a new
+ * page before mmu_notifier_invalidate_range_end, so no
* concurrent thread might update its page table to
* point at new page while a device still is using this
* page.
_
From: Andrea Arcangeli <aarcange(a)redhat.com>
Subject: userfaultfd: shmem/hugetlbfs: only allow to register VM_MAYWRITE vmas
After the VMA to register the uffd onto is found, check that it has
VM_MAYWRITE set before allowing registration. This way we inherit all
common code checks before allowing to fill file holes in shmem and
hugetlbfs with UFFDIO_COPY.
The userfaultfd memory model is not applicable for readonly files unless
it's a MAP_PRIVATE.
Link: http://lkml.kernel.org/r/20181126173452.26955-4-aarcange@redhat.com
Fixes: ff62a3421044 ("hugetlb: implement memfd sealing")
Signed-off-by: Andrea Arcangeli <aarcange(a)redhat.com>
Reviewed-by: Mike Rapoport <rppt(a)linux.ibm.com>
Reviewed-by: Hugh Dickins <hughd(a)google.com>
Reported-by: Jann Horn <jannh(a)google.com>
Fixes: 4c27fe4c4c84 ("userfaultfd: shmem: add shmem_mcopy_atomic_pte for userfaultfd support")
Cc: <stable(a)vger.kernel.org>
Cc: "Dr. David Alan Gilbert" <dgilbert(a)redhat.com>
Cc: Mike Kravetz <mike.kravetz(a)oracle.com>
Cc: Peter Xu <peterx(a)redhat.com>
Cc: stable(a)vger.kernel.org
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
fs/userfaultfd.c | 15 +++++++++++++++
mm/userfaultfd.c | 15 ++++++---------
2 files changed, 21 insertions(+), 9 deletions(-)
--- a/fs/userfaultfd.c~userfaultfd-shmem-hugetlbfs-only-allow-to-register-vm_maywrite-vmas
+++ a/fs/userfaultfd.c
@@ -1361,6 +1361,19 @@ static int userfaultfd_register(struct u
ret = -EINVAL;
if (!vma_can_userfault(cur))
goto out_unlock;
+
+ /*
+ * UFFDIO_COPY will fill file holes even without
+ * PROT_WRITE. This check enforces that if this is a
+ * MAP_SHARED, the process has write permission to the backing
+ * file. If VM_MAYWRITE is set it also enforces that on a
+ * MAP_SHARED vma: there is no F_WRITE_SEAL and no further
+ * F_WRITE_SEAL can be taken until the vma is destroyed.
+ */
+ ret = -EPERM;
+ if (unlikely(!(cur->vm_flags & VM_MAYWRITE)))
+ goto out_unlock;
+
/*
* If this vma contains ending address, and huge pages
* check alignment.
@@ -1406,6 +1419,7 @@ static int userfaultfd_register(struct u
BUG_ON(!vma_can_userfault(vma));
BUG_ON(vma->vm_userfaultfd_ctx.ctx &&
vma->vm_userfaultfd_ctx.ctx != ctx);
+ WARN_ON(!(vma->vm_flags & VM_MAYWRITE));
/*
* Nothing to do: this vma is already registered into this
@@ -1552,6 +1566,7 @@ static int userfaultfd_unregister(struct
cond_resched();
BUG_ON(!vma_can_userfault(vma));
+ WARN_ON(!(vma->vm_flags & VM_MAYWRITE));
/*
* Nothing to do: this vma is already registered into this
--- a/mm/userfaultfd.c~userfaultfd-shmem-hugetlbfs-only-allow-to-register-vm_maywrite-vmas
+++ a/mm/userfaultfd.c
@@ -205,8 +205,9 @@ retry:
if (!dst_vma || !is_vm_hugetlb_page(dst_vma))
goto out_unlock;
/*
- * Only allow __mcopy_atomic_hugetlb on userfaultfd
- * registered ranges.
+ * Check the vma is registered in uffd, this is
+ * required to enforce the VM_MAYWRITE check done at
+ * uffd registration time.
*/
if (!dst_vma->vm_userfaultfd_ctx.ctx)
goto out_unlock;
@@ -459,13 +460,9 @@ retry:
if (!dst_vma)
goto out_unlock;
/*
- * Be strict and only allow __mcopy_atomic on userfaultfd
- * registered ranges to prevent userland errors going
- * unnoticed. As far as the VM consistency is concerned, it
- * would be perfectly safe to remove this check, but there's
- * no useful usage for __mcopy_atomic ouside of userfaultfd
- * registered ranges. This is after all why these are ioctls
- * belonging to the userfaultfd and not syscalls.
+ * Check the vma is registered in uffd, this is required to
+ * enforce the VM_MAYWRITE check done at uffd registration
+ * time.
*/
if (!dst_vma->vm_userfaultfd_ctx.ctx)
goto out_unlock;
_
From: Andrea Arcangeli <aarcange(a)redhat.com>
Subject: userfaultfd: shmem: allocate anonymous memory for MAP_PRIVATE shmem
Userfaultfd did not create private memory when UFFDIO_COPY was invoked on
a MAP_PRIVATE shmem mapping. Instead it wrote to the shmem file, even
when that had not been opened for writing. Though, fortunately, that
could only happen where there was a hole in the file.
Fix the shmem-backed implementation of UFFDIO_COPY to create private
memory for MAP_PRIVATE mappings. The hugetlbfs-backed implementation was
already correct.
This change is visible to userland, if userfaultfd has been used in
unintended ways: so it introduces a small risk of incompatibility, but is
necessary in order to respect file permissions.
An app that uses UFFDIO_COPY for anything like postcopy live migration
won't notice the difference, and in fact it'll run faster because there
will be no copy-on-write and memory waste in the tmpfs pagecache anymore.
Userfaults on MAP_PRIVATE shmem keep triggering only on file holes like
before.
The real zeropage can also be built on a MAP_PRIVATE shmem mapping through
UFFDIO_ZEROPAGE and that's safe because the zeropage pte is never dirty,
in turn even an mprotect upgrading the vma permission from PROT_READ to
PROT_READ|PROT_WRITE won't make the zeropage pte writable.
Link: http://lkml.kernel.org/r/20181126173452.26955-3-aarcange@redhat.com
Fixes: 4c27fe4c4c84 ("userfaultfd: shmem: add shmem_mcopy_atomic_pte for userfaultfd support")
Signed-off-by: Andrea Arcangeli <aarcange(a)redhat.com>
Reported-by: Mike Rapoport <rppt(a)linux.ibm.com>
Reviewed-by: Hugh Dickins <hughd(a)google.com>
Cc: <stable(a)vger.kernel.org>
Cc: "Dr. David Alan Gilbert" <dgilbert(a)redhat.com>
Cc: Jann Horn <jannh(a)google.com>
Cc: Mike Kravetz <mike.kravetz(a)oracle.com>
Cc: Peter Xu <peterx(a)redhat.com>
Cc: stable(a)vger.kernel.org
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/userfaultfd.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
--- a/mm/userfaultfd.c~userfaultfd-shmem-allocate-anonymous-memory-for-map_private-shmem
+++ a/mm/userfaultfd.c
@@ -380,7 +380,17 @@ static __always_inline ssize_t mfill_ato
{
ssize_t err;
- if (vma_is_anonymous(dst_vma)) {
+ /*
+ * The normal page fault path for a shmem will invoke the
+ * fault, fill the hole in the file and COW it right away. The
+ * result generates plain anonymous memory. So when we are
+ * asked to fill an hole in a MAP_PRIVATE shmem mapping, we'll
+ * generate anonymous memory directly without actually filling
+ * the hole. For the MAP_PRIVATE case the robustness check
+ * only happens in the pagetable (to verify it's still none)
+ * and not in the radix tree.
+ */
+ if (!(dst_vma->vm_flags & VM_SHARED)) {
if (!zeropage)
err = mcopy_atomic_pte(dst_mm, dst_pmd, dst_vma,
dst_addr, src_addr, page);
@@ -489,7 +499,8 @@ retry:
* dst_vma.
*/
err = -ENOMEM;
- if (vma_is_anonymous(dst_vma) && unlikely(anon_vma_prepare(dst_vma)))
+ if (!(dst_vma->vm_flags & VM_SHARED) &&
+ unlikely(anon_vma_prepare(dst_vma)))
goto out_unlock;
while (src_addr < src_start + len) {
_
From: Andrea Arcangeli <aarcange(a)redhat.com>
Subject: userfaultfd: use ENOENT instead of EFAULT if the atomic copy user fails
Patch series "userfaultfd shmem updates".
Jann found two bugs in the userfaultfd shmem MAP_SHARED backend: the lack
of the VM_MAYWRITE check and the lack of i_size checks.
Then looking into the above we also fixed the MAP_PRIVATE case.
Hugh by source review also found a data loss source if UFFDIO_COPY is used
on shmem MAP_SHARED PROT_READ mappings (the production usages incidentally
run with PROT_READ|PROT_WRITE, so the data loss couldn't happen in those
production usages like with QEMU).
The whole patchset is marked for stable.
We verified QEMU postcopy live migration with guest running on shmem
MAP_PRIVATE run as well as before after the fix of shmem MAP_PRIVATE.
Regardless if it's shmem or hugetlbfs or MAP_PRIVATE or MAP_SHARED, QEMU
unconditionally invokes a punch hole if the guest mapping is filebacked
and a MADV_DONTNEED too (needed to get rid of the MAP_PRIVATE COWs and for
the anon backend).
This patch (of 5):
We internally used EFAULT to communicate with the caller, switch to
ENOENT, so EFAULT can be used as a non internal retval.
Link: http://lkml.kernel.org/r/20181126173452.26955-2-aarcange@redhat.com
Fixes: 4c27fe4c4c84 ("userfaultfd: shmem: add shmem_mcopy_atomic_pte for userfaultfd support")
Signed-off-by: Andrea Arcangeli <aarcange(a)redhat.com>
Reviewed-by: Mike Rapoport <rppt(a)linux.ibm.com>
Reviewed-by: Hugh Dickins <hughd(a)google.com>
Cc: Mike Kravetz <mike.kravetz(a)oracle.com>
Cc: Jann Horn <jannh(a)google.com>
Cc: Peter Xu <peterx(a)redhat.com>
Cc: "Dr. David Alan Gilbert" <dgilbert(a)redhat.com>
Cc: <stable(a)vger.kernel.org>
Cc: stable(a)vger.kernel.org
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/hugetlb.c | 2 +-
mm/shmem.c | 2 +-
mm/userfaultfd.c | 6 +++---
3 files changed, 5 insertions(+), 5 deletions(-)
--- a/mm/hugetlb.c~userfaultfd-use-enoent-instead-of-efault-if-the-atomic-copy-user-fails
+++ a/mm/hugetlb.c
@@ -4080,7 +4080,7 @@ int hugetlb_mcopy_atomic_pte(struct mm_s
/* fallback to copy_from_user outside mmap_sem */
if (unlikely(ret)) {
- ret = -EFAULT;
+ ret = -ENOENT;
*pagep = page;
/* don't free the page */
goto out;
--- a/mm/shmem.c~userfaultfd-use-enoent-instead-of-efault-if-the-atomic-copy-user-fails
+++ a/mm/shmem.c
@@ -2238,7 +2238,7 @@ static int shmem_mfill_atomic_pte(struct
*pagep = page;
shmem_inode_unacct_blocks(inode, 1);
/* don't free the page */
- return -EFAULT;
+ return -ENOENT;
}
} else { /* mfill_zeropage_atomic */
clear_highpage(page);
--- a/mm/userfaultfd.c~userfaultfd-use-enoent-instead-of-efault-if-the-atomic-copy-user-fails
+++ a/mm/userfaultfd.c
@@ -48,7 +48,7 @@ static int mcopy_atomic_pte(struct mm_st
/* fallback to copy_from_user outside mmap_sem */
if (unlikely(ret)) {
- ret = -EFAULT;
+ ret = -ENOENT;
*pagep = page;
/* don't free the page */
goto out;
@@ -274,7 +274,7 @@ retry:
cond_resched();
- if (unlikely(err == -EFAULT)) {
+ if (unlikely(err == -ENOENT)) {
up_read(&dst_mm->mmap_sem);
BUG_ON(!page);
@@ -530,7 +530,7 @@ retry:
src_addr, &page, zeropage);
cond_resched();
- if (unlikely(err == -EFAULT)) {
+ if (unlikely(err == -ENOENT)) {
void *page_kaddr;
up_read(&dst_mm->mmap_sem);
_
From: Yu Zhao <yuzhao(a)google.com>
Subject: mm: use swp_offset as key in shmem_replace_page()
We changed the key of swap cache tree from swp_entry_t.val to swp_offset.
We need to do so in shmem_replace_page() as well.
Hugh said:
: shmem_replace_page() has been wrong since the day I wrote it: good
: enough to work on swap "type" 0, which is all most people ever use
: (especially those few who need shmem_replace_page() at all), but broken
: once there are any non-0 swp_type bits set in the higher order bits.
Link: http://lkml.kernel.org/r/20181121215442.138545-1-yuzhao@google.com
Fixes: f6ab1f7f6b2d ("mm, swap: use offset of swap entry as key of swap cache")
Signed-off-by: Yu Zhao <yuzhao(a)google.com>
Reviewed-by: Matthew Wilcox <willy(a)infradead.org>
Acked-by: Hugh Dickins <hughd(a)google.com>
Cc: <stable(a)vger.kernel.org> [4.9+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/shmem.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/mm/shmem.c~mm-use-swp_offset-as-key-in-shmem_replace_page
+++ a/mm/shmem.c
@@ -1509,11 +1509,13 @@ static int shmem_replace_page(struct pag
{
struct page *oldpage, *newpage;
struct address_space *swap_mapping;
+ swp_entry_t entry;
pgoff_t swap_index;
int error;
oldpage = *pagep;
- swap_index = page_private(oldpage);
+ entry.val = page_private(oldpage);
+ swap_index = swp_offset(entry);
swap_mapping = page_mapping(oldpage);
/*
@@ -1532,7 +1534,7 @@ static int shmem_replace_page(struct pag
__SetPageLocked(newpage);
__SetPageSwapBacked(newpage);
SetPageUptodate(newpage);
- set_page_private(newpage, swap_index);
+ set_page_private(newpage, entry.val);
SetPageSwapCache(newpage);
/*
_
From: Pavel Tikhomirov <ptikhomirov(a)virtuozzo.com>
Subject: mm: cleancache: fix corruption on missed inode invalidation
If all pages are deleted from the mapping by memory reclaim and also
moved to the cleancache:
__delete_from_page_cache
(no shadow case)
unaccount_page_cache_page
cleancache_put_page
page_cache_delete
mapping->nrpages -= nr
(nrpages becomes 0)
We don't clean the cleancache for an inode after final file truncation
(removal).
truncate_inode_pages_final
check (nrpages || nrexceptional) is false
no truncate_inode_pages
no cleancache_invalidate_inode(mapping)
These way when reading the new file created with same inode we may get
these trash leftover pages from cleancache and see wrong data instead of
the contents of the new file.
Fix it by always doing truncate_inode_pages which is already ready for
nrpages == 0 && nrexceptional == 0 case and just invalidates inode.
[akpm(a)linux-foundation.org: add comment, per Jan]
Link: http://lkml.kernel.org/r/20181112095734.17979-1-ptikhomirov@virtuozzo.com
Fixes: commit 91b0abe36a7b ("mm + fs: store shadow entries in page cache")
Signed-off-by: Pavel Tikhomirov <ptikhomirov(a)virtuozzo.com>
Reviewed-by: Vasily Averin <vvs(a)virtuozzo.com>
Reviewed-by: Andrey Ryabinin <aryabinin(a)virtuozzo.com>
Reviewed-by: Jan Kara <jack(a)suse.cz>
Cc: Johannes Weiner <hannes(a)cmpxchg.org>
Cc: Mel Gorman <mgorman(a)techsingularity.net>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: Andi Kleen <ak(a)linux.intel.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/truncate.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
--- a/mm/truncate.c~mm-cleancache-fix-corruption-on-missed-inode-invalidation
+++ a/mm/truncate.c
@@ -517,9 +517,13 @@ void truncate_inode_pages_final(struct a
*/
xa_lock_irq(&mapping->i_pages);
xa_unlock_irq(&mapping->i_pages);
-
- truncate_inode_pages(mapping, 0);
}
+
+ /*
+ * Cleancache needs notification even if there are no pages or shadow
+ * entries.
+ */
+ truncate_inode_pages(mapping, 0);
}
EXPORT_SYMBOL(truncate_inode_pages_final);
_
From: Kevin Hilman <khilman(a)baylibre.com>
Change the default defconfig (used with 'make defconfig') to the ARCv2
nsim_hs_defconfig, and also switch the default Kconfig ISA selection to
ARCv2.
This allows several default defconfigs (e.g. make defconfig, make
allnoconfig, make tinyconfig) to all work with ARCv2 by default.
Note since we change default architecture from ARCompact to ARCv2
it's required to explicitly mention architecture type in ARCompact
defconfigs otherwise ARCv2 will be implied and binaries will be
generated for ARCv2.
Signed-off-by: Kevin Hilman <khilman(a)baylibre.com>
Signed-off-by: Alexey Brodkin <abrodkin(a)synopsys.com>
Cc: <stable(a)vger.kernel.org> # 4.4.x
---
Changes v1 -> v2:
* Added CONFIG_ISA_ARCOMPACT to ARCompact defconfigs
arch/arc/Kconfig | 2 +-
arch/arc/Makefile | 2 +-
arch/arc/configs/axs101_defconfig | 1 +
arch/arc/configs/nps_defconfig | 1 +
arch/arc/configs/nsim_700_defconfig | 1 +
arch/arc/configs/nsimosci_defconfig | 1 +
arch/arc/configs/tb10x_defconfig | 1 +
7 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
index 5fcbda6b37cc..6dd783557330 100644
--- a/arch/arc/Kconfig
+++ b/arch/arc/Kconfig
@@ -109,7 +109,7 @@ endmenu
choice
prompt "ARC Instruction Set"
- default ISA_ARCOMPACT
+ default ISA_ARCV2
config ISA_ARCOMPACT
bool "ARCompact ISA"
diff --git a/arch/arc/Makefile b/arch/arc/Makefile
index c64c505d966c..df00578c279d 100644
--- a/arch/arc/Makefile
+++ b/arch/arc/Makefile
@@ -6,7 +6,7 @@
# published by the Free Software Foundation.
#
-KBUILD_DEFCONFIG := nsim_700_defconfig
+KBUILD_DEFCONFIG := nsim_hs_defconfig
cflags-y += -fno-common -pipe -fno-builtin -mmedium-calls -D__linux__
cflags-$(CONFIG_ISA_ARCOMPACT) += -mA7
diff --git a/arch/arc/configs/axs101_defconfig b/arch/arc/configs/axs101_defconfig
index 8c23bd086cd0..020d4493edfd 100644
--- a/arch/arc/configs/axs101_defconfig
+++ b/arch/arc/configs/axs101_defconfig
@@ -14,6 +14,7 @@ CONFIG_PERF_EVENTS=y
# CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set
+CONFIG_ISA_ARCOMPACT=y
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
diff --git a/arch/arc/configs/nps_defconfig b/arch/arc/configs/nps_defconfig
index ae7a0d8be98d..6e84060e7c90 100644
--- a/arch/arc/configs/nps_defconfig
+++ b/arch/arc/configs/nps_defconfig
@@ -15,6 +15,7 @@ CONFIG_SYSCTL_SYSCALL=y
CONFIG_EMBEDDED=y
CONFIG_PERF_EVENTS=y
# CONFIG_COMPAT_BRK is not set
+CONFIG_ISA_ARCOMPACT=y
CONFIG_KPROBES=y
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
diff --git a/arch/arc/configs/nsim_700_defconfig b/arch/arc/configs/nsim_700_defconfig
index 8e0b8b134cd9..219c2a65294b 100644
--- a/arch/arc/configs/nsim_700_defconfig
+++ b/arch/arc/configs/nsim_700_defconfig
@@ -15,6 +15,7 @@ CONFIG_EMBEDDED=y
CONFIG_PERF_EVENTS=y
# CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set
+CONFIG_ISA_ARCOMPACT=y
CONFIG_KPROBES=y
CONFIG_MODULES=y
# CONFIG_LBDAF is not set
diff --git a/arch/arc/configs/nsimosci_defconfig b/arch/arc/configs/nsimosci_defconfig
index ad77f20e5aa6..35dfc6491a09 100644
--- a/arch/arc/configs/nsimosci_defconfig
+++ b/arch/arc/configs/nsimosci_defconfig
@@ -15,6 +15,7 @@ CONFIG_EMBEDDED=y
CONFIG_PERF_EVENTS=y
# CONFIG_SLUB_DEBUG is not set
# CONFIG_COMPAT_BRK is not set
+CONFIG_ISA_ARCOMPACT=y
CONFIG_KPROBES=y
CONFIG_MODULES=y
# CONFIG_LBDAF is not set
diff --git a/arch/arc/configs/tb10x_defconfig b/arch/arc/configs/tb10x_defconfig
index a7f65313f84a..e71ade3cf9c8 100644
--- a/arch/arc/configs/tb10x_defconfig
+++ b/arch/arc/configs/tb10x_defconfig
@@ -19,6 +19,7 @@ CONFIG_KALLSYMS_ALL=y
# CONFIG_AIO is not set
CONFIG_EMBEDDED=y
# CONFIG_COMPAT_BRK is not set
+CONFIG_ISA_ARCOMPACT=y
CONFIG_SLAB=y
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
--
2.16.2
From: Josef Bacik <jbacik(a)fb.com>
With my delayed refs patches in place we started seeing a large amount
of aborts in __btrfs_free_extent
BTRFS error (device sdb1): unable to find ref byte nr 91947008 parent 0 root 35964 owner 1 offset 0
Call Trace:
? btrfs_merge_delayed_refs+0xaf/0x340
__btrfs_run_delayed_refs+0x6ea/0xfc0
? btrfs_set_path_blocking+0x31/0x60
btrfs_run_delayed_refs+0xeb/0x180
btrfs_commit_transaction+0x179/0x7f0
? btrfs_check_space_for_delayed_refs+0x30/0x50
? should_end_transaction.isra.19+0xe/0x40
btrfs_drop_snapshot+0x41c/0x7c0
btrfs_clean_one_deleted_snapshot+0xb5/0xd0
cleaner_kthread+0xf6/0x120
kthread+0xf8/0x130
? btree_invalidatepage+0x90/0x90
? kthread_bind+0x10/0x10
ret_from_fork+0x35/0x40
This was because btrfs_drop_snapshot depends on the root not being modified
while it's dropping the snapshot. It will unlock the root node (and really
every node) as it walks down the tree, only to re-lock it when it needs to do
something. This is a problem because if we modify the tree we could cow a block
in our path, which free's our reference to that block. Then once we get back to
that shared block we'll free our reference to it again, and get ENOENT when
trying to lookup our extent reference to that block in __btrfs_free_extent.
This is ultimately happening because we have delayed items left to be processed
for our deleted snapshot _after_ all of the inodes are closed for the snapshot.
We only run the delayed inode item if we're deleting the inode, and even then we
do not run the delayed insertions or delayed removals. These can be run at any
point after our final inode does it's last iput, which is what triggers the
snapshot deletion. We can end up with the snapshot deletion happening and then
have the delayed items run on that file system, resulting in the above problem.
This problem has existed forever, however my patches made it much easier to hit
as I wake up the cleaner much more often to deal with delayed iputs, which made
us more likely to start the snapshot dropping work before the transaction
commits, which is when the delayed items would generally be run. Before,
generally speaking, we would run the delayed items, commit the transaction, and
wakeup the cleaner thread to start deleting snapshots, which means we were less
likely to hit this problem. You could still hit it if you had multiple
snapshots to be deleted and ended up with lots of delayed items, but it was
definitely harder.
Fix for now by simply running all the delayed items before starting to drop the
snapshot. We could make this smarter in the future by making the delayed items
per-root, and then simply drop any delayed items for roots that we are going to
delete. But for now just a quick and easy solution is the safest.
Cc: stable(a)vger.kernel.org
Signed-off-by: Josef Bacik <josef(a)toxicpanda.com>
---
fs/btrfs/extent-tree.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index dcb699dd57f3..965702034b22 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -9330,6 +9330,8 @@ int btrfs_drop_snapshot(struct btrfs_root *root,
goto out_free;
}
+ btrfs_run_delayed_items(trans);
+
if (block_rsv)
trans->block_rsv = block_rsv;
--
2.14.3
Hello,
We ran automated tests on a recent commit from this kernel tree:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Commit: 048192fdfd84 Linux 4.19.6-rc2
The results of these automated tests are provided below.
Overall result: PASSED
Patch merge: OK
Compile: OK
Kernel tests: OK
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Compile testing
---------------
We compiled the kernel for 2 architectures:
x86_64:
make options: make INSTALL_MOD_STRIP=1 -j56 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/048192fdfd8468e130937cd697f…
aarch64:
make options: make INSTALL_MOD_STRIP=1 -j56 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/048192fdfd8468e130937cd697…
Hardware testing
----------------
We booted each kernel and ran the following tests:
x86_64:
/distribution/kpkginstall (boot test)
LTP lite - release 20180515
xfstests: ext4
xfstests: xfs
/kernel/misc/amtu
arm64:
/distribution/kpkginstall (boot test)
LTP lite - release 20180515
xfstests: ext4
xfstests: xfs
/kernel/misc/amtu
From: Adrian Hunter <adrian.hunter(a)intel.com>
thread__resolve() is used in the sample_addr_correlates_sym() cases
where 'addr' is a destination of a branch which does not necessarily
have the same cpumode as the 'ip'. Use the fallback function in that
case.
This patch depends on patch "perf tools: Add fallback functions for
cases where cpumode is insufficient".
Signed-off-by: Adrian Hunter <adrian.hunter(a)intel.com>
Cc: Andi Kleen <ak(a)linux.intel.com>
Cc: David S. Miller <davem(a)davemloft.net>
Cc: Jiri Olsa <jolsa(a)redhat.com>
Cc: Leo Yan <leo.yan(a)linaro.org>
Cc: Mathieu Poirier <mathieu.poirier(a)linaro.org>
Cc: stable(a)vger.kernel.org
Link: http://lkml.kernel.org/r/20181106210712.12098-3-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme(a)redhat.com>
---
tools/perf/util/event.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index 9431b20c1337..24493200cf80 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -1706,7 +1706,7 @@ bool sample_addr_correlates_sym(struct perf_event_attr *attr)
void thread__resolve(struct thread *thread, struct addr_location *al,
struct perf_sample *sample)
{
- thread__find_map(thread, sample->cpumode, sample->addr, al);
+ thread__find_map_fb(thread, sample->cpumode, sample->addr, al);
al->cpu = sample->cpu;
al->sym = NULL;
--
2.19.1
From: Adrian Hunter <adrian.hunter(a)intel.com>
Some architectures have a single address space for kernel and user
addresses, which makes it possible to determine if an address is in
kernel space or user space. Some don't, e.g.: sparc.
Cache that info in perf_env so that, for instance, code needing to
fallback failed symbol lookups at the kernel space in single address
space arches can lookup at userspace.
Signed-off-by: Adrian Hunter <adrian.hunter(a)intel.com>
Cc: Andi Kleen <ak(a)linux.intel.com>
Cc: David S. Miller <davem(a)davemloft.net>
Cc: Jiri Olsa <jolsa(a)redhat.com>
Cc: Leo Yan <leo.yan(a)linaro.org>
Cc: Mathieu Poirier <mathieu.poirier(a)linaro.org>
Cc: stable(a)vger.kernel.org
Link: http://lkml.kernel.org/r/20181106210712.12098-2-adrian.hunter@intel.com
[ split from a larger patch ]
Signed-off-by: Arnaldo Carvalho de Melo <acme(a)redhat.com>
---
tools/perf/arch/common.c | 10 ++++++++++
tools/perf/arch/common.h | 1 +
tools/perf/util/machine.h | 1 +
tools/perf/util/session.c | 4 ++++
4 files changed, 16 insertions(+)
diff --git a/tools/perf/arch/common.c b/tools/perf/arch/common.c
index 82657c01a3b8..5f69fd0b745a 100644
--- a/tools/perf/arch/common.c
+++ b/tools/perf/arch/common.c
@@ -200,3 +200,13 @@ int perf_env__lookup_objdump(struct perf_env *env, const char **path)
return perf_env__lookup_binutils_path(env, "objdump", path);
}
+
+/*
+ * Some architectures have a single address space for kernel and user addresses,
+ * which makes it possible to determine if an address is in kernel space or user
+ * space.
+ */
+bool perf_env__single_address_space(struct perf_env *env)
+{
+ return strcmp(perf_env__arch(env), "sparc");
+}
diff --git a/tools/perf/arch/common.h b/tools/perf/arch/common.h
index 2167001b18c5..c298a446d1f6 100644
--- a/tools/perf/arch/common.h
+++ b/tools/perf/arch/common.h
@@ -5,5 +5,6 @@
#include "../util/env.h"
int perf_env__lookup_objdump(struct perf_env *env, const char **path);
+bool perf_env__single_address_space(struct perf_env *env);
#endif /* ARCH_PERF_COMMON_H */
diff --git a/tools/perf/util/machine.h b/tools/perf/util/machine.h
index d856b85862e2..ca897a73014c 100644
--- a/tools/perf/util/machine.h
+++ b/tools/perf/util/machine.h
@@ -42,6 +42,7 @@ struct machine {
u16 id_hdr_size;
bool comm_exec;
bool kptr_restrict_warned;
+ bool single_address_space;
char *root_dir;
char *mmap_name;
struct threads threads[THREADS__TABLE_SIZE];
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 7d2c8ce6cfad..f8eab197f35c 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -24,6 +24,7 @@
#include "thread.h"
#include "thread-stack.h"
#include "stat.h"
+#include "arch/common.h"
static int perf_session__deliver_event(struct perf_session *session,
union perf_event *event,
@@ -150,6 +151,9 @@ struct perf_session *perf_session__new(struct perf_data *data,
session->machines.host.env = &perf_env;
}
+ session->machines.host.single_address_space =
+ perf_env__single_address_space(session->machines.host.env);
+
if (!data || perf_data__is_write(data)) {
/*
* In O_RDONLY mode this will be performed when reading the
--
2.19.1
From: Arnaldo Carvalho de Melo <acme(a)redhat.com>
We'll set a new machine field based on env->arch, which for live mode,
like with 'perf top' means we need to use uname() to figure the name of
the arch, fix perf_env__arch() to consider both (env == NULL) and
(env->arch == NULL) as local operation.
Cc: Adrian Hunter <adrian.hunter(a)intel.com>
Cc: Andi Kleen <ak(a)linux.intel.com>
Cc: David Ahern <dsahern(a)gmail.com>
Cc: David S. Miller <davem(a)davemloft.net>
Cc: Jiri Olsa <jolsa(a)redhat.com>
Cc: Leo Yan <leo.yan(a)linaro.org>
Cc: Mathieu Poirier <mathieu.poirier(a)linaro.org>
Cc: Namhyung Kim <namhyung(a)kernel.org>
Cc: Wang Nan <wangnan0(a)huawei.com>
Cc: stable(a)vger.kernel.org
Link: https://lkml.kernel.org/n/tip-vcz4ufzdon7cwy8dm2ua53xk@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme(a)redhat.com>
---
tools/perf/util/env.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/util/env.c b/tools/perf/util/env.c
index 59f38c7693f8..4c23779e271a 100644
--- a/tools/perf/util/env.c
+++ b/tools/perf/util/env.c
@@ -166,7 +166,7 @@ const char *perf_env__arch(struct perf_env *env)
struct utsname uts;
char *arch_name;
- if (!env) { /* Assume local operation */
+ if (!env || !env->arch) { /* Assume local operation */
if (uname(&uts) < 0)
return NULL;
arch_name = uts.machine;
--
2.19.1
stable-rc/linux-3.18.y build: 185 builds: 2 failed, 183 passed, 4 errors, 1621 warnings (v3.18.127-83-gc3953c334bf6)
Full Build Summary: https://kernelci.org/build/stable-rc/branch/linux-3.18.y/kernel/v3.18.127-8…
Tree: stable-rc
Branch: linux-3.18.y
Git Describe: v3.18.127-83-gc3953c334bf6
Git Commit: c3953c334bf69d55078523ec935831a28dee8134
Git URL: http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Built: 5 unique architectures
Build Failures Detected:
arc: gcc version 7.1.1 20170710 (ARCv2 ISA Linux uClibc toolchain 2017.09)
allnoconfig: FAIL
tinyconfig: FAIL
Errors and Warnings Detected:
arc: gcc version 7.1.1 20170710 (ARCv2 ISA Linux uClibc toolchain 2017.09)
allnoconfig: 2 errors, 666 warnings
tinyconfig: 2 errors, 664 warnings
arm64: gcc version 7.3.0 (Debian 7.3.0-28)
allnoconfig: 2 warnings
defconfig: 2 warnings
tinyconfig: 2 warnings
arm: gcc version 7.3.0 (Debian 7.3.0-28)
acs5k_defconfig: 2 warnings
acs5k_tiny_defconfig: 2 warnings
allnoconfig: 2 warnings
am200epdkit_defconfig: 2 warnings
ape6evm_defconfig: 2 warnings
armadillo800eva_defconfig: 2 warnings
assabet_defconfig: 2 warnings
at91_dt_defconfig: 2 warnings
at91rm9200_defconfig: 2 warnings
at91sam9260_9g20_defconfig: 2 warnings
at91sam9261_9g10_defconfig: 2 warnings
at91sam9263_defconfig: 2 warnings
at91sam9g45_defconfig: 2 warnings
at91sam9rl_defconfig: 2 warnings
at91x40_defconfig: 2 warnings
axm55xx_defconfig: 2 warnings
badge4_defconfig: 2 warnings
bcm2835_defconfig: 2 warnings
bcm_defconfig: 2 warnings
bockw_defconfig: 2 warnings
cerfcube_defconfig: 2 warnings
clps711x_defconfig: 2 warnings
cm_x2xx_defconfig: 2 warnings
cm_x300_defconfig: 2 warnings
cns3420vb_defconfig: 2 warnings
colibri_pxa270_defconfig: 2 warnings
colibri_pxa300_defconfig: 2 warnings
collie_defconfig: 2 warnings
corgi_defconfig: 2 warnings
davinci_all_defconfig: 2 warnings
dove_defconfig: 2 warnings
ebsa110_defconfig: 2 warnings
efm32_defconfig: 2 warnings
em_x270_defconfig: 2 warnings
ep93xx_defconfig: 2 warnings
eseries_pxa_defconfig: 2 warnings
exynos_defconfig: 2 warnings
ezx_defconfig: 2 warnings
footbridge_defconfig: 2 warnings
h3600_defconfig: 2 warnings
h5000_defconfig: 2 warnings
hackkit_defconfig: 2 warnings
hisi_defconfig: 2 warnings
imote2_defconfig: 2 warnings
imx_v4_v5_defconfig: 2 warnings
imx_v6_v7_defconfig: 2 warnings
integrator_defconfig: 2 warnings
iop13xx_defconfig: 2 warnings
iop32x_defconfig: 2 warnings
iop33x_defconfig: 2 warnings
ixp4xx_defconfig: 2 warnings
jornada720_defconfig: 2 warnings
keystone_defconfig: 2 warnings
koelsch_defconfig: 2 warnings
ks8695_defconfig: 2 warnings
kzm9g_defconfig: 2 warnings
lager_defconfig: 2 warnings
lart_defconfig: 2 warnings
lpc32xx_defconfig: 2 warnings
lpd270_defconfig: 2 warnings
lubbock_defconfig: 2 warnings
mackerel_defconfig: 2 warnings
magician_defconfig: 2 warnings
mainstone_defconfig: 2 warnings
marzen_defconfig: 2 warnings
mini2440_defconfig: 2 warnings
mmp2_defconfig: 2 warnings
moxart_defconfig: 2 warnings
msm_defconfig: 2 warnings
multi_v5_defconfig: 2 warnings
multi_v7_defconfig: 2 warnings
mv78xx0_defconfig: 2 warnings
mvebu_v5_defconfig: 2 warnings
mvebu_v7_defconfig: 2 warnings
mxs_defconfig: 2 warnings
neponset_defconfig: 2 warnings
netwinder_defconfig: 2 warnings
netx_defconfig: 2 warnings
nhk8815_defconfig: 2 warnings
nuc910_defconfig: 2 warnings
nuc950_defconfig: 2 warnings
nuc960_defconfig: 2 warnings
omap1_defconfig: 2 warnings
omap2plus_defconfig: 2 warnings
orion5x_defconfig: 2 warnings
palmz72_defconfig: 2 warnings
pcm027_defconfig: 2 warnings
pleb_defconfig: 2 warnings
prima2_defconfig: 2 warnings
pxa168_defconfig: 2 warnings
pxa255-idp_defconfig: 2 warnings
pxa3xx_defconfig: 2 warnings
pxa910_defconfig: 2 warnings
qcom_defconfig: 2 warnings
raumfeld_defconfig: 2 warnings
realview-smp_defconfig: 2 warnings
realview_defconfig: 2 warnings
rpc_defconfig: 2 warnings
s3c2410_defconfig: 2 warnings
s3c6400_defconfig: 2 warnings
s5pv210_defconfig: 2 warnings
sama5_defconfig: 2 warnings
shannon_defconfig: 2 warnings
shmobile_defconfig: 2 warnings
simpad_defconfig: 2 warnings
socfpga_defconfig: 2 warnings
spear13xx_defconfig: 2 warnings
spear3xx_defconfig: 2 warnings
spear6xx_defconfig: 2 warnings
spitz_defconfig: 2 warnings
sunxi_defconfig: 2 warnings
tct_hammer_defconfig: 2 warnings
tegra_defconfig: 2 warnings
tinyconfig: 2 warnings
trizeps4_defconfig: 2 warnings
u300_defconfig: 2 warnings
u8500_defconfig: 2 warnings
versatile_defconfig: 2 warnings
vexpress_defconfig: 2 warnings
viper_defconfig: 2 warnings
vt8500_v6_v7_defconfig: 2 warnings
xcep_defconfig: 2 warnings
zeus_defconfig: 2 warnings
x86: gcc version 7.3.0 (Debian 7.3.0-30)
allnoconfig: 3 warnings
i386_defconfig: 3 warnings
tinyconfig: 3 warnings
x86_64_defconfig: 30 warnings
Errors summary:
2 arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
2 arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
Warnings summary:
663 arc-linux-gcc: warning: '-mno-mpy' is deprecated
654 cc1: warning: '-mno-mpy' is deprecated
128 scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
128 scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
3 arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
3 arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
3 arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
2 mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
2 kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
2 include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
2 include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
1 net/sunrpc/clnt.c:527:46: warning: '%s' directive output may be truncated writing up to 107 bytes into a region of size 48 [-Wformat-truncation=]
1 mm/mmap.c:684:2: warning: 'rb_parent' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 mm/mmap.c:684:2: warning: 'rb_link' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 mm/mmap.c:683:2: warning: 'prev' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 lib/string_helpers.c:64:33: warning: '%03lld' directive output may be truncated writing between 3 and 13 bytes into a region of size 7 [-Wformat-truncation=]
1 kernel/relay.c:423:35: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
1 fs/nfs/client.c:1380:23: warning: '%u' directive output may be truncated writing between 1 and 7 bytes into a region of size between 3 and 6 [-Wformat-truncation=]
1 drivers/video/fbdev/core/../edid.h:74:72: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/usb/core/usb.c:471:9: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
1 drivers/usb/core/hcd.c:450:34: warning: '%s' directive output may be truncated writing up to 64 bytes into a region of size between 35 and 99 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11184:10: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11181:9: warning: '-rx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11178:9: warning: '-tx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11175:9: warning: '-txrx-' directive output may be truncated writing 6 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/input/mouse/psmouse-base.c:1466:52: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/mouse/lifebook.c:287:7: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/mouse/alps.c:2418:46: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/keyboard/atkbd.c:1069:7: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/ata/libata-core.c:2970:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2969:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2968:35: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2967:32: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2966:31: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2965:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2964:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2963:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2962:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2141:42: warning: '%d' directive output may be truncated writing between 1 and 2 bytes into a region of size between 1 and 11 [-Wformat-truncation=]
1 block/partition-generic.c:41:37: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
1 block/partition-generic.c:39:36: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 31 [-Wformat-truncation=]
1 block/elevator.c:841:14: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
================================================================================
Detailed per-defconfig build reports:
--------------------------------------------------------------------------------
acs5k_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
acs5k_tiny_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
allnoconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (arc) — FAIL, 2 errors, 666 warnings, 0 section mismatches
Errors:
arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
Warnings:
arc-linux-gcc: warning: '-mno-mpy' is deprecated
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/mmap.c:684:2: warning: 'rb_link' may be used uninitialized in this function [-Wmaybe-uninitialized]
mm/mmap.c:684:2: warning: 'rb_parent' may be used uninitialized in this function [-Wmaybe-uninitialized]
mm/mmap.c:683:2: warning: 'prev' may be used uninitialized in this function [-Wmaybe-uninitialized]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
--------------------------------------------------------------------------------
am200epdkit_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ape6evm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ar7_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
armadillo800eva_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
assabet_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91_dt_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91rm9200_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9260_9g20_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9261_9g10_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9263_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9g45_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9rl_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91x40_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ath79_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
axm55xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
badge4_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bcm2835_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bcm47xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm63xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bigsur_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bockw_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
capcella_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cavium_octeon_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cerfcube_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
clps711x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cm_x2xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cm_x300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cns3420vb_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cobalt_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
colibri_pxa270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
colibri_pxa300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
collie_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
corgi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
davinci_all_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
db1xxx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
decstation_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
defconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
dove_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
e55_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ebsa110_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
efm32_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
em_x270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ep93xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
eseries_pxa_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
exynos_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ezx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
footbridge_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
fuloong2e_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
gpr_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
h3600_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
h5000_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
hackkit_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
hisi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
i386_defconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
imote2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
imx_v4_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
imx_v6_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
integrator_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop13xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop32x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop33x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ip22_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip27_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip28_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip32_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ixp4xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
jazz_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jmr3927_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jornada720_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
keystone_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
koelsch_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ks8695_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
kzm9g_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lager_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lart_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lasat_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lemote2f_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
loongson3_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lpc32xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lpd270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ls1b_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lubbock_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mackerel_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
magician_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mainstone_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
malta_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_kvm_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_kvm_guest_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaaprp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_eva_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaup_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
markeins_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
marzen_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mini2440_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mips_paravirt_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mmp2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
moxart_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mpc30x_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
msm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
msp71xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mtx1_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
multi_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
multi_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mv78xx0_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mvebu_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mvebu_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mxs_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
neponset_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
netwinder_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
netx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nhk8815_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nlm_xlp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nlm_xlr_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nuc910_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nuc950_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nuc960_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
omap1_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
omap2plus_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
orion5x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
palmz72_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pcm027_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pleb_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pnx8335_stb225_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
prima2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa168_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa255-idp_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa3xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa910_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
qcom_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
qi_lb60_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
raumfeld_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rb532_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rbtx49xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
realview-smp_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
realview_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rm200_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rpc_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rt305x_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
s3c2410_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
s3c6400_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
s5pv210_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sama5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sb1250_swarm_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sead3_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sead3micro_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
shannon_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
shmobile_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
simpad_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
socfpga_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear13xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear3xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear6xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spitz_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sunxi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tb0219_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0226_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0287_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tct_hammer_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tegra_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
tinyconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (arc) — FAIL, 2 errors, 664 warnings, 0 section mismatches
Errors:
arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
Warnings:
arc-linux-gcc: warning: '-mno-mpy' is deprecated
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
--------------------------------------------------------------------------------
tinyconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
trizeps4_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
u300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
u8500_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
versatile_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
vexpress_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
viper_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
vt8500_v6_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
workpad_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
x86_64_defconfig (x86) — PASS, 0 errors, 30 warnings, 0 section mismatches
Warnings:
include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
kernel/relay.c:423:35: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
block/elevator.c:841:14: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
block/partition-generic.c:39:36: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 31 [-Wformat-truncation=]
block/partition-generic.c:41:37: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
fs/nfs/client.c:1380:23: warning: '%u' directive output may be truncated writing between 1 and 7 bytes into a region of size between 3 and 6 [-Wformat-truncation=]
drivers/ata/libata-core.c:2962:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2963:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2964:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2965:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2966:31: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2967:32: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2968:35: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2969:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2970:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2141:42: warning: '%d' directive output may be truncated writing between 1 and 2 bytes into a region of size between 1 and 11 [-Wformat-truncation=]
lib/string_helpers.c:64:33: warning: '%03lld' directive output may be truncated writing between 3 and 13 bytes into a region of size 7 [-Wformat-truncation=]
drivers/input/keyboard/atkbd.c:1069:7: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/psmouse-base.c:1466:52: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/alps.c:2418:46: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/lifebook.c:287:7: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11175:9: warning: '-txrx-' directive output may be truncated writing 6 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11178:9: warning: '-tx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11181:9: warning: '-rx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11184:10: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
net/sunrpc/clnt.c:527:46: warning: '%s' directive output may be truncated writing up to 107 bytes into a region of size 48 [-Wformat-truncation=]
drivers/usb/core/usb.c:471:9: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
drivers/usb/core/hcd.c:450:34: warning: '%s' directive output may be truncated writing up to 64 bytes into a region of size between 35 and 99 [-Wformat-truncation=]
drivers/video/fbdev/core/../edid.h:74:72: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
--------------------------------------------------------------------------------
xcep_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
xway_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
zeus_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
---
For more info write to <info(a)kernelci.org>
From: Lyude Paul <lyude(a)redhat.com>
This reverts commit:
c54c7374ff44 ("drm/dp_mst: Skip validating ports during destruction, just ref")
ugh.
In drm_dp_destroy_connector_work(), we have a pretty good chance of
freeing the actual struct drm_dp_mst_port. However, after destroying
things we send a hotplug through (*mgr->cbs->hotplug)(mgr) which is
where the problems start.
For i915, this calls all the way down to the fbcon probing helpers,
which start trying to access the port in a modeset.
[ 45.062001] ==================================================================
[ 45.062112] BUG: KASAN: use-after-free in ex_handler_refcount+0x146/0x180
[ 45.062196] Write of size 4 at addr ffff8882b4b70968 by task kworker/3:1/53
[ 45.062325] CPU: 3 PID: 53 Comm: kworker/3:1 Kdump: loaded Tainted: G O 4.20.0-rc4Lyude-Test+ #3
[ 45.062442] Hardware name: LENOVO 20BWS1KY00/20BWS1KY00, BIOS JBET71WW (1.35 ) 09/14/2018
[ 45.062554] Workqueue: events drm_dp_destroy_connector_work [drm_kms_helper]
[ 45.062641] Call Trace:
[ 45.062685] dump_stack+0xbd/0x15a
[ 45.062735] ? dump_stack_print_info.cold.0+0x1b/0x1b
[ 45.062801] ? printk+0x9f/0xc5
[ 45.062847] ? kmsg_dump_rewind_nolock+0xe4/0xe4
[ 45.062909] ? ex_handler_refcount+0x146/0x180
[ 45.062970] print_address_description+0x71/0x239
[ 45.063036] ? ex_handler_refcount+0x146/0x180
[ 45.063095] kasan_report.cold.5+0x242/0x30b
[ 45.063155] __asan_report_store4_noabort+0x1c/0x20
[ 45.063313] ex_handler_refcount+0x146/0x180
[ 45.063371] ? ex_handler_clear_fs+0xb0/0xb0
[ 45.063428] fixup_exception+0x98/0xd7
[ 45.063484] ? raw_notifier_call_chain+0x20/0x20
[ 45.063548] do_trap+0x6d/0x210
[ 45.063605] ? _GLOBAL__sub_I_65535_1_drm_dp_aux_unregister_devnode+0x2f/0x1c6 [drm_kms_helper]
[ 45.063732] do_error_trap+0xc0/0x170
[ 45.063802] ? _GLOBAL__sub_I_65535_1_drm_dp_aux_unregister_devnode+0x2f/0x1c6 [drm_kms_helper]
[ 45.063929] do_invalid_op+0x3b/0x50
[ 45.063997] ? _GLOBAL__sub_I_65535_1_drm_dp_aux_unregister_devnode+0x2f/0x1c6 [drm_kms_helper]
[ 45.064103] invalid_op+0x14/0x20
[ 45.064162] RIP: 0010:_GLOBAL__sub_I_65535_1_drm_dp_aux_unregister_devnode+0x2f/0x1c6 [drm_kms_helper]
[ 45.064274] Code: 00 48 c7 c7 80 fe 53 a0 48 89 e5 e8 5b 6f 26 e1 5d c3 48 8d 0e 0f 0b 48 8d 0b 0f 0b 48 8d 0f 0f 0b 48 8d 0f 0f 0b 49 8d 4d 00 <0f> 0b 49 8d 0e 0f 0b 48 8d 08 0f 0b 49 8d 4d 00 0f 0b 48 8d 0b 0f
[ 45.064569] RSP: 0018:ffff8882b789ee10 EFLAGS: 00010282
[ 45.064637] RAX: ffff8882af47ae70 RBX: ffff8882af47aa60 RCX: ffff8882b4b70968
[ 45.064723] RDX: ffff8882af47ae70 RSI: 0000000000000008 RDI: ffff8882b788bdb8
[ 45.064808] RBP: ffff8882b789ee28 R08: ffffed1056f13db4 R09: ffffed1056f13db3
[ 45.064894] R10: ffffed1056f13db3 R11: ffff8882b789ed9f R12: ffff8882af47ad28
[ 45.064980] R13: ffff8882b4b70968 R14: ffff8882acd86728 R15: ffff8882b4b75dc8
[ 45.065084] drm_dp_mst_reset_vcpi_slots+0x12/0x80 [drm_kms_helper]
[ 45.065225] intel_mst_disable_dp+0xda/0x180 [i915]
[ 45.065361] intel_encoders_disable.isra.107+0x197/0x310 [i915]
[ 45.065498] haswell_crtc_disable+0xbe/0x400 [i915]
[ 45.065622] ? i9xx_disable_plane+0x1c0/0x3e0 [i915]
[ 45.065750] intel_atomic_commit_tail+0x74e/0x3e60 [i915]
[ 45.065884] ? intel_pre_plane_update+0xbc0/0xbc0 [i915]
[ 45.065968] ? drm_atomic_helper_swap_state+0x88b/0x1d90 [drm_kms_helper]
[ 45.066054] ? kasan_check_write+0x14/0x20
[ 45.066165] ? i915_gem_track_fb+0x13a/0x330 [i915]
[ 45.066277] ? i915_sw_fence_complete+0xe9/0x140 [i915]
[ 45.066406] ? __i915_sw_fence_complete+0xc50/0xc50 [i915]
[ 45.066540] intel_atomic_commit+0x72e/0xef0 [i915]
[ 45.066635] ? drm_dev_dbg+0x200/0x200 [drm]
[ 45.066764] ? intel_atomic_commit_tail+0x3e60/0x3e60 [i915]
[ 45.066898] ? intel_atomic_commit_tail+0x3e60/0x3e60 [i915]
[ 45.067001] drm_atomic_commit+0xc4/0xf0 [drm]
[ 45.067074] restore_fbdev_mode_atomic+0x562/0x780 [drm_kms_helper]
[ 45.067166] ? drm_fb_helper_debug_leave+0x690/0x690 [drm_kms_helper]
[ 45.067249] ? kasan_check_read+0x11/0x20
[ 45.067324] restore_fbdev_mode+0x127/0x4b0 [drm_kms_helper]
[ 45.067364] ? kasan_check_read+0x11/0x20
[ 45.067406] drm_fb_helper_restore_fbdev_mode_unlocked+0x164/0x200 [drm_kms_helper]
[ 45.067462] ? drm_fb_helper_hotplug_event+0x30/0x30 [drm_kms_helper]
[ 45.067508] ? kasan_check_write+0x14/0x20
[ 45.070360] ? mutex_unlock+0x22/0x40
[ 45.073748] drm_fb_helper_set_par+0xb2/0xf0 [drm_kms_helper]
[ 45.075846] drm_fb_helper_hotplug_event.part.33+0x1cd/0x290 [drm_kms_helper]
[ 45.078088] drm_fb_helper_hotplug_event+0x1c/0x30 [drm_kms_helper]
[ 45.082614] intel_fbdev_output_poll_changed+0x9f/0x140 [i915]
[ 45.087069] drm_kms_helper_hotplug_event+0x67/0x90 [drm_kms_helper]
[ 45.089319] intel_dp_mst_hotplug+0x37/0x50 [i915]
[ 45.091496] drm_dp_destroy_connector_work+0x510/0x6f0 [drm_kms_helper]
[ 45.093675] ? drm_dp_update_payload_part1+0x1220/0x1220 [drm_kms_helper]
[ 45.095851] ? kasan_check_write+0x14/0x20
[ 45.098473] ? kasan_check_read+0x11/0x20
[ 45.101155] ? strscpy+0x17c/0x530
[ 45.103808] ? __switch_to_asm+0x34/0x70
[ 45.106456] ? syscall_return_via_sysret+0xf/0x7f
[ 45.109711] ? read_word_at_a_time+0x20/0x20
[ 45.113138] ? __switch_to_asm+0x40/0x70
[ 45.116529] ? __switch_to_asm+0x34/0x70
[ 45.119891] ? __switch_to_asm+0x40/0x70
[ 45.123224] ? __switch_to_asm+0x34/0x70
[ 45.126540] ? __switch_to_asm+0x34/0x70
[ 45.129824] process_one_work+0x88d/0x15d0
[ 45.133172] ? pool_mayday_timeout+0x850/0x850
[ 45.136459] ? pci_mmcfg_check_reserved+0x110/0x128
[ 45.139739] ? wake_q_add+0xb0/0xb0
[ 45.143010] ? check_preempt_wakeup+0x652/0x1050
[ 45.146304] ? worker_enter_idle+0x29e/0x740
[ 45.149589] ? __schedule+0x1ec0/0x1ec0
[ 45.152937] ? kasan_check_read+0x11/0x20
[ 45.156179] ? _raw_spin_lock_irq+0xa3/0x130
[ 45.159382] ? _raw_read_unlock_irqrestore+0x30/0x30
[ 45.162542] ? kasan_check_write+0x14/0x20
[ 45.165657] worker_thread+0x1a5/0x1470
[ 45.168725] ? set_load_weight+0x2e0/0x2e0
[ 45.171755] ? process_one_work+0x15d0/0x15d0
[ 45.174806] ? __switch_to_asm+0x34/0x70
[ 45.177645] ? __switch_to_asm+0x40/0x70
[ 45.180323] ? __switch_to_asm+0x34/0x70
[ 45.182936] ? __switch_to_asm+0x40/0x70
[ 45.185539] ? __switch_to_asm+0x34/0x70
[ 45.188100] ? __switch_to_asm+0x40/0x70
[ 45.190628] ? __schedule+0x7d4/0x1ec0
[ 45.193143] ? save_stack+0xa9/0xd0
[ 45.195632] ? kasan_check_write+0x10/0x20
[ 45.198162] ? kasan_kmalloc+0xc4/0xe0
[ 45.200609] ? kmem_cache_alloc_trace+0xdd/0x190
[ 45.203046] ? kthread+0x9f/0x3b0
[ 45.205470] ? ret_from_fork+0x35/0x40
[ 45.207876] ? unwind_next_frame+0x43/0x50
[ 45.210273] ? __save_stack_trace+0x82/0x100
[ 45.212658] ? deactivate_slab.isra.67+0x3d4/0x580
[ 45.215026] ? default_wake_function+0x35/0x50
[ 45.217399] ? kasan_check_read+0x11/0x20
[ 45.219825] ? _raw_spin_lock_irqsave+0xae/0x140
[ 45.222174] ? __lock_text_start+0x8/0x8
[ 45.224521] ? replenish_dl_entity.cold.62+0x4f/0x4f
[ 45.226868] ? __kthread_parkme+0x87/0xf0
[ 45.229200] kthread+0x2f7/0x3b0
[ 45.231557] ? process_one_work+0x15d0/0x15d0
[ 45.233923] ? kthread_park+0x120/0x120
[ 45.236249] ret_from_fork+0x35/0x40
[ 45.240875] Allocated by task 242:
[ 45.243136] save_stack+0x43/0xd0
[ 45.245385] kasan_kmalloc+0xc4/0xe0
[ 45.247597] kmem_cache_alloc_trace+0xdd/0x190
[ 45.249793] drm_dp_add_port+0x1e0/0x2170 [drm_kms_helper]
[ 45.252000] drm_dp_send_link_address+0x4a7/0x740 [drm_kms_helper]
[ 45.254389] drm_dp_check_and_send_link_address+0x1a7/0x210 [drm_kms_helper]
[ 45.256803] drm_dp_mst_link_probe_work+0x6f/0xb0 [drm_kms_helper]
[ 45.259200] process_one_work+0x88d/0x15d0
[ 45.261597] worker_thread+0x1a5/0x1470
[ 45.264038] kthread+0x2f7/0x3b0
[ 45.266371] ret_from_fork+0x35/0x40
[ 45.270937] Freed by task 53:
[ 45.273170] save_stack+0x43/0xd0
[ 45.275382] __kasan_slab_free+0x139/0x190
[ 45.277604] kasan_slab_free+0xe/0x10
[ 45.279826] kfree+0x99/0x1b0
[ 45.282044] drm_dp_free_mst_port+0x4a/0x60 [drm_kms_helper]
[ 45.284330] drm_dp_destroy_connector_work+0x43e/0x6f0 [drm_kms_helper]
[ 45.286660] process_one_work+0x88d/0x15d0
[ 45.288934] worker_thread+0x1a5/0x1470
[ 45.291231] kthread+0x2f7/0x3b0
[ 45.293547] ret_from_fork+0x35/0x40
[ 45.298206] The buggy address belongs to the object at ffff8882b4b70968
which belongs to the cache kmalloc-2k of size 2048
[ 45.303047] The buggy address is located 0 bytes inside of
2048-byte region [ffff8882b4b70968, ffff8882b4b71168)
[ 45.308010] The buggy address belongs to the page:
[ 45.310477] page:ffffea000ad2dc00 count:1 mapcount:0 mapping:ffff8882c080cf40 index:0x0 compound_mapcount: 0
[ 45.313051] flags: 0x8000000000010200(slab|head)
[ 45.315635] raw: 8000000000010200 ffffea000aac2808 ffffea000abe8608 ffff8882c080cf40
[ 45.318300] raw: 0000000000000000 00000000000d000d 00000001ffffffff 0000000000000000
[ 45.320966] page dumped because: kasan: bad access detected
[ 45.326312] Memory state around the buggy address:
[ 45.329085] ffff8882b4b70800: fb fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 45.331845] ffff8882b4b70880: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 45.334584] >ffff8882b4b70900: fc fc fc fc fc fc fc fc fc fc fc fc fc fb fb fb
[ 45.337302] ^
[ 45.340061] ffff8882b4b70980: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 45.342910] ffff8882b4b70a00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 45.345748] ==================================================================
So, this definitely isn't a fix that we want. This being said; there's
no real easy fix for this problem because of some of the catch-22's of
the MST helpers current design. For starters; we always need to validate
a port with drm_dp_get_validated_port_ref(), but validation relies on
the lifetime of the port in the actual topology. So once the port is
gone, it can't be validated again.
If we were to try to make the payload helpers not use port validation,
then we'd cause another problem: if the port isn't validated, it could
be freed and we'd just start causing more KASAN issues. There are
already hacks that attempt to workaround this in
drm_dp_mst_destroy_connector_work() by re-initializing the kref so that
it can be used again and it's memory can be freed once the VCPI helpers
finish removing the port's respective payloads. But none of these really
do anything helpful since the port still can't be validated since it's
gone from the topology. Also, that workaround is immensely confusing to
read through.
What really needs to be done in order to fix this is to teach DRM how to
track the lifetime of the structs for MST ports and branch devices
separately from their lifetime in the actual topology. Simply put; this
means having two different krefs-one that removes the port/branch device
from the topology, and one that finally calls kfree(). This would let us
simplify things, since we'd now be able to keep ports around without
having to keep them in the topology at the same time, which is exactly
what we need in order to teach our VCPI helpers to only validate ports
when it's actually necessary without running the risk of trying to use
unallocated memory.
Such a fix is on it's way, but for now let's play it safe and just
revert this. If this bug has been around for well over a year, we can
wait a little while to get an actual proper fix here.
Signed-off-by: Lyude Paul <lyude(a)redhat.com>
Fixes: c54c7374ff44 ("drm/dp_mst: Skip validating ports during destruction, just ref")
Cc: Daniel Vetter <daniel(a)ffwll.ch>
Cc: Sean Paul <sean(a)poorly.run>
Cc: Jerry Zuo <Jerry.Zuo(a)amd.com>
Cc: Harry Wentland <Harry.Wentland(a)amd.com>
Cc: stable(a)vger.kernel.org # v4.6+
Acked-by: Sean Paul <sean(a)poorly.run>
Link: https://patchwork.freedesktop.org/patch/msgid/20181128210005.24434-1-lyude@…
---
drivers/gpu/drm/drm_dp_mst_topology.c | 15 ++-------------
1 file changed, 2 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
index 250d716..0e0df39 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -1023,20 +1023,9 @@ static struct drm_dp_mst_port *drm_dp_mst_get_port_ref_locked(struct drm_dp_mst_
static struct drm_dp_mst_port *drm_dp_get_validated_port_ref(struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port)
{
struct drm_dp_mst_port *rport = NULL;
-
mutex_lock(&mgr->lock);
- /*
- * Port may or may not be 'valid' but we don't care about that when
- * destroying the port and we are guaranteed that the port pointer
- * will be valid until we've finished
- */
- if (current_work() == &mgr->destroy_connector_work) {
- kref_get(&port->kref);
- rport = port;
- } else if (mgr->mst_primary) {
- rport = drm_dp_mst_get_port_ref_locked(mgr->mst_primary,
- port);
- }
+ if (mgr->mst_primary)
+ rport = drm_dp_mst_get_port_ref_locked(mgr->mst_primary, port);
mutex_unlock(&mgr->lock);
return rport;
}
--
2.7.4
commit e259221763a40403d5bb232209998e8c45804ab8 ("fs: simplify the
generic_write_sync prototype") reworked callers of generic_write_sync(),
and ended up dropping the error return for the directio path. Prior to
that commit, in dio_complete(), an error would be bubbled up the stack,
but after that commit, errors passed on to dio_complete were eaten up.
This was reported on the list earlier, and a fix was proposed in
https://lore.kernel.org/lkml/20160921141539.GA17898@infradead.org/, but
never followed up with. We recently hit this bug in our testing where
fencing io errors, which were previously erroring out with EIO, were
being returned as success operations after this commit.
The fix proposed on the list earlier was a little short -- it would have
still called generic_write_sync() in case `ret` already contained an
error. This fix ensures generic_write_sync() is only called when there's
no pending error in the write. Additionally, transferred is replaced
with ret to bring this code in line with other callers.
Reported-by: Ravi Nankani <rnankani(a)amazon.com>
Signed-off-by: Maximilian Heyne <mheyne(a)amazon.de>
Reviewed-by: Christoph Hellwig <hch(a)lst.de>
CC: Torsten Mehlan <tomeh(a)amazon.de>
CC: Uwe Dannowski <uwed(a)amazon.de>
CC: Amit Shah <aams(a)amazon.de>
CC: David Woodhouse <dwmw(a)amazon.co.uk>
CC: stable(a)vger.kernel.org
---
v2: add description for s/transferred/ret/ change
fs/direct-io.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/direct-io.c b/fs/direct-io.c
index 722d17c88edb..41a0e97252ae 100644
--- a/fs/direct-io.c
+++ b/fs/direct-io.c
@@ -325,8 +325,8 @@ static ssize_t dio_complete(struct dio *dio, ssize_t ret, unsigned int flags)
*/
dio->iocb->ki_pos += transferred;
- if (dio->op == REQ_OP_WRITE)
- ret = generic_write_sync(dio->iocb, transferred);
+ if (ret > 0 && dio->op == REQ_OP_WRITE)
+ ret = generic_write_sync(dio->iocb, ret);
dio->iocb->ki_complete(dio->iocb, ret, 0);
}
--
2.16.5
Amazon Development Center Germany GmbH
Krausenstr. 38
10117 Berlin
Geschaeftsfuehrer: Christian Schlaeger, Ralf Herbrich
Ust-ID: DE 289 237 879
Eingetragen am Amtsgericht Charlottenburg HRB 149173 B
From: Geert Uytterhoeven <geert+renesas(a)glider.be>
[ Upstream commit 202dc3cc10b4d37e5251431acf8d5040a8876c7d ]
On SCIFA and SCIFB serial ports with DMA support (i.e. some ports on
R-Car Gen2 and RZ/G1 SoCs), receive DMA operations are submitted before
the DMA channel pointer is initialized. Hence this fails, and the
driver tries to fall back to PIO. However, at this early phase in the
initialization sequence, fallback to PIO does not work, leading to a
serial port that cannot receive any data.
Fix this by calling sci_submit_rx() after initialization of the DMA
channel pointer.
Reported-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh(a)renesas.com>
Fixes: 2c4ee23530ffc022 ("serial: sh-sci: Postpone DMA release when falling back to PIO")
Signed-off-by: Geert Uytterhoeven <geert+renesas(a)glider.be>
Reviewed-by: Wolfram Sang <wsa+renesas(a)sang-engineering.com>
Tested-by: Wolfram Sang <wsa+renesas(a)sang-engineering.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
drivers/tty/serial/sh-sci.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c
index ab3f6e91853d..e19bfbba8a01 100644
--- a/drivers/tty/serial/sh-sci.c
+++ b/drivers/tty/serial/sh-sci.c
@@ -1614,10 +1614,10 @@ static void sci_request_dma(struct uart_port *port)
hrtimer_init(&s->rx_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
s->rx_timer.function = rx_timer_fn;
+ s->chan_rx_saved = s->chan_rx = chan;
+
if (port->type == PORT_SCIFA || port->type == PORT_SCIFB)
sci_submit_rx(s);
-
- s->chan_rx_saved = s->chan_rx = chan;
}
}
--
2.17.1
The leak was found when opening/closing a serial port a great number of
time, increasing kmalloc-32 in slabinfo.
Each time the port was opened, dma_request_slave_channel() was called.
Then, in at_dma_xlate(), atslave was allocated with devm_kzalloc() and
never freed. (Well, it was free at module unload, but that's not what we
want).
So, here, kzalloc is more suited for the job since it has to be freed in
atc_free_chan_resources().
Cc: stable(a)vger.kernel.org
Fixes: bbe89c8e3d59 ("at_hdmac: move to generic DMA binding")
Reported-by: Mario Forner <m.forner(a)be4energy.com>
Suggested-by: Alexandre Belloni <alexandre.belloni(a)bootlin.com>
Acked-by: Alexandre Belloni <alexandre.belloni(a)bootlin.com>
Signed-off-by: Richard Genoud <richard.genoud(a)gmail.com>
---
drivers/dma/at_hdmac.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
index 7cbac6e8c113..1b7f0ca0d5cd 100644
--- a/drivers/dma/at_hdmac.c
+++ b/drivers/dma/at_hdmac.c
@@ -1641,6 +1641,12 @@ static void atc_free_chan_resources(struct dma_chan *chan)
atchan->descs_allocated = 0;
atchan->status = 0;
+ /*
+ * Free atslave allocated in at_dma_xlate()
+ */
+ kfree(chan->private);
+ chan->private = NULL;
+
dev_vdbg(chan2dev(chan), "free_chan_resources: done\n");
}
@@ -1675,7 +1681,7 @@ static struct dma_chan *at_dma_xlate(struct of_phandle_args *dma_spec,
dma_cap_zero(mask);
dma_cap_set(DMA_SLAVE, mask);
- atslave = devm_kzalloc(&dmac_pdev->dev, sizeof(*atslave), GFP_KERNEL);
+ atslave = kzalloc(sizeof(*atslave), GFP_KERNEL);
if (!atslave)
return NULL;
Sending the exact same hotplug event is not great uapi. Luckily the
only already merged implementation of leases (in the -modesetting
driver) doesn't care about what kind of uevent it gets, and
unconditionally processes both hotplug and lease changes. So we can
still adjust the uapi here.
But e.g. weston tries to filter stuff, and I guess others might want
to do that too. Try to make that possible. Cc: stable since it's uapi
adjustement that we want to roll out everywhere.
Cc: Keith Packard <keithp(a)keithp.com>
Cc: Dave Airlie <airlied(a)redhat.com>
Cc: stable(a)vger.kernel.org
Signed-off-by: Daniel Vetter <daniel.vetter(a)intel.com>
---
drivers/gpu/drm/drm_internal.h | 2 ++
drivers/gpu/drm/drm_lease.c | 2 +-
drivers/gpu/drm/drm_sysfs.c | 10 ++++++++++
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_internal.h b/drivers/gpu/drm/drm_internal.h
index c7a7d7ce5d1c..d9caf205e0b3 100644
--- a/drivers/gpu/drm/drm_internal.h
+++ b/drivers/gpu/drm/drm_internal.h
@@ -99,6 +99,8 @@ struct device *drm_sysfs_minor_alloc(struct drm_minor *minor);
int drm_sysfs_connector_add(struct drm_connector *connector);
void drm_sysfs_connector_remove(struct drm_connector *connector);
+void drm_sysfs_lease_event(struct drm_device *dev);
+
/* drm_gem.c */
int drm_gem_init(struct drm_device *dev);
void drm_gem_destroy(struct drm_device *dev);
diff --git a/drivers/gpu/drm/drm_lease.c b/drivers/gpu/drm/drm_lease.c
index 3650d3c46718..99cba8ea5d82 100644
--- a/drivers/gpu/drm/drm_lease.c
+++ b/drivers/gpu/drm/drm_lease.c
@@ -292,7 +292,7 @@ void drm_lease_destroy(struct drm_master *master)
if (master->lessor) {
/* Tell the master to check the lessee list */
- drm_sysfs_hotplug_event(dev);
+ drm_sysfs_lease_event(dev);
drm_master_put(&master->lessor);
}
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
index b3c1daad1169..ecb7b33002bb 100644
--- a/drivers/gpu/drm/drm_sysfs.c
+++ b/drivers/gpu/drm/drm_sysfs.c
@@ -301,6 +301,16 @@ void drm_sysfs_connector_remove(struct drm_connector *connector)
connector->kdev = NULL;
}
+void drm_sysfs_lease_event(struct drm_device *dev)
+{
+ char *event_string = "LEASE=1";
+ char *envp[] = { event_string, NULL };
+
+ DRM_DEBUG("generating lease event\n");
+
+ kobject_uevent_env(&dev->primary->kdev->kobj, KOBJ_CHANGE, envp);
+}
+
/**
* drm_sysfs_hotplug_event - generate a DRM uevent
* @dev: DRM device
--
2.19.1
From: Zenghui Yu <yuzenghui(a)huawei.com>
After enabling KVM event tracing, almost all of trace_kvm_exit()'s
printk shows
"kvm_exit: IRQ: ..."
even if the actual exception_type is NOT IRQ. More specifically,
trace_kvm_exit() is defined in virt/kvm/arm/trace.h by TRACE_EVENT.
This slight problem may have existed after commit e6753f23d961
("tracepoint: Make rcuidle tracepoint callers use SRCU"). There are
two variables in trace_kvm_exit() and __DO_TRACE() which have the
same name, *idx*. Thus the actual value of *idx* will be overwritten
when tracing. Fix it by adding a simple prefix.
Cc: Joel Fernandes <joel(a)joelfernandes.org>
Cc: Wang Haibin <wanghaibin.wang(a)huawei.com>
Cc: linux-trace-devel(a)vger.kernel.org
Cc: stable(a)vger.kernel.org
Fixes: e6753f23d961 ("tracepoint: Make rcuidle tracepoint callers use SRCU")
Reviewed-by: Joel Fernandes (Google) <joel(a)joelfernandes.org>
Signed-off-by: Zenghui Yu <yuzenghui(a)huawei.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt(a)goodmis.org>
---
include/linux/tracepoint.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h
index 538ba1a58f5b..e9de8ad0bad7 100644
--- a/include/linux/tracepoint.h
+++ b/include/linux/tracepoint.h
@@ -166,7 +166,7 @@ static inline struct tracepoint *tracepoint_ptr_deref(tracepoint_ptr_t *p)
struct tracepoint_func *it_func_ptr; \
void *it_func; \
void *__data; \
- int __maybe_unused idx = 0; \
+ int __maybe_unused __idx = 0; \
\
if (!(cond)) \
return; \
@@ -182,7 +182,7 @@ static inline struct tracepoint *tracepoint_ptr_deref(tracepoint_ptr_t *p)
* doesn't work from the idle path. \
*/ \
if (rcuidle) { \
- idx = srcu_read_lock_notrace(&tracepoint_srcu); \
+ __idx = srcu_read_lock_notrace(&tracepoint_srcu);\
rcu_irq_enter_irqson(); \
} \
\
@@ -198,7 +198,7 @@ static inline struct tracepoint *tracepoint_ptr_deref(tracepoint_ptr_t *p)
\
if (rcuidle) { \
rcu_irq_exit_irqson(); \
- srcu_read_unlock_notrace(&tracepoint_srcu, idx);\
+ srcu_read_unlock_notrace(&tracepoint_srcu, __idx);\
} \
\
preempt_enable_notrace(); \
--
2.19.1
Since commit 4378a7d4be30 ("arm64: implement syscall wrappers")
introduced "__arm64_" prefix to all syscall wrapper symbols in
sys_call_table, syscall tracer can not find corresponding
metadata from syscall name. In the result, we have no syscall
ftrace events on arm64 kernel, and some bpf testcases are failed
on arm64.
To fix this issue, this introduces custom
arch_syscall_match_sym_name() which skips first 8 bytes when
comparing the syscall and symbol names.
Fixes: 4378a7d4be30 ("arm64: implement syscall wrappers")
Reported-by: Naresh Kamboju <naresh.kamboju(a)linaro.org>
Signed-off-by: Masami Hiramatsu <mhiramat(a)kernel.org>
Cc: stable(a)vger.kernel.org
---
arch/arm64/include/asm/ftrace.h | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/arch/arm64/include/asm/ftrace.h b/arch/arm64/include/asm/ftrace.h
index caa955f10e19..a710f79db442 100644
--- a/arch/arm64/include/asm/ftrace.h
+++ b/arch/arm64/include/asm/ftrace.h
@@ -56,6 +56,15 @@ static inline bool arch_trace_is_compat_syscall(struct pt_regs *regs)
{
return is_compat_task();
}
+
+#define ARCH_HAS_SYSCALL_MATCH_SYM_NAME
+
+static inline bool arch_syscall_match_sym_name(const char *sym,
+ const char *name)
+{
+ /* Since all syscall functions have __arm64_ prefix, we must skip it */
+ return !strcmp(sym + 8, name);
+}
#endif /* ifndef __ASSEMBLY__ */
#endif /* __ASM_FTRACE_H */
Hello,
We ran automated tests on a recent commit from this kernel tree:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Commit: ac4af649901b Linux 4.19.6-rc1
The results of these automated tests are provided below.
Overall result: PASSED
Patch merge: OK
Compile: OK
Kernel tests: OK
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Compile testing
---------------
We compiled the kernel for 2 architectures:
x86_64:
make options: make INSTALL_MOD_STRIP=1 -j56 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/ac4af649901b05aa42f4ed3e153…
aarch64:
make options: make INSTALL_MOD_STRIP=1 -j56 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/ac4af649901b05aa42f4ed3e15…
Hardware testing
----------------
We booted each kernel and ran the following tests:
x86_64:
/distribution/kpkginstall (boot test)
LTP lite - release 20180515
xfstests: ext4
xfstests: xfs
/kernel/misc/amtu
arm64:
/distribution/kpkginstall (boot test)
LTP lite - release 20180515
xfstests: ext4
xfstests: xfs
/kernel/misc/amtu
Hi Noah,
On Mon, Nov 26, 2018 at 10:52:16PM +0000, Noah Westervelt wrote:
> Add ELAN061E to the ACPI table to support Elan touchpad found in Lenovo
> IdeaPad 330-15ARR.
>
> Signed-off-by: Noah Westervelt <nwestervelt(a)outlook.com><mailto:nwestervelt@outlook.com>
> Cc: stable(a)vger.kernel.org<mailto:stable@vger.kernel.org>
I untangled it from HTML/attacjment mess that outlook made and applied,
but please next time use git-send-email for patches: it allows out
scripts to pick up patches more easily.
Thanks!
> ---
> drivers/input/mouse/elan_i2c_core.c | 1 +
> 1 file changed, 1 insertion(+)
> --- /home/noah/input/drivers/input/mouse/elan_i2c_core.c.orig 2018-11-26 16:23:39.378342074 -0600
> +++ /home/noah/input/drivers/input/mouse/elan_i2c_core.c 2018-11-26 16:26:20.283458731 -0600
> @@ -1344,6 +1344,7 @@ static const struct acpi_device_id elan_
> { "ELAN060B", 0 },
> { "ELAN060C", 0 },
> { "ELAN0611", 0 },
> + { "ELAN061E", 0 },
> { "ELAN1000", 0 },
> { }
> };
--
Dmitry
stable-rc/linux-3.18.y build: 185 builds: 2 failed, 183 passed, 4 errors, 1621 warnings (v3.18.127-84-gd2846da19bca)
Full Build Summary: https://kernelci.org/build/stable-rc/branch/linux-3.18.y/kernel/v3.18.127-8…
Tree: stable-rc
Branch: linux-3.18.y
Git Describe: v3.18.127-84-gd2846da19bca
Git Commit: d2846da19bca0785a50c366d388d0da53c1b4042
Git URL: http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Built: 5 unique architectures
Build Failures Detected:
arc: gcc version 7.1.1 20170710 (ARCv2 ISA Linux uClibc toolchain 2017.09)
allnoconfig: FAIL
tinyconfig: FAIL
Errors and Warnings Detected:
arc: gcc version 7.1.1 20170710 (ARCv2 ISA Linux uClibc toolchain 2017.09)
allnoconfig: 2 errors, 666 warnings
tinyconfig: 2 errors, 664 warnings
arm64: gcc version 7.3.0 (Debian 7.3.0-28)
allnoconfig: 2 warnings
defconfig: 2 warnings
tinyconfig: 2 warnings
arm: gcc version 7.3.0 (Debian 7.3.0-28)
acs5k_defconfig: 2 warnings
acs5k_tiny_defconfig: 2 warnings
allnoconfig: 2 warnings
am200epdkit_defconfig: 2 warnings
ape6evm_defconfig: 2 warnings
armadillo800eva_defconfig: 2 warnings
assabet_defconfig: 2 warnings
at91_dt_defconfig: 2 warnings
at91rm9200_defconfig: 2 warnings
at91sam9260_9g20_defconfig: 2 warnings
at91sam9261_9g10_defconfig: 2 warnings
at91sam9263_defconfig: 2 warnings
at91sam9g45_defconfig: 2 warnings
at91sam9rl_defconfig: 2 warnings
at91x40_defconfig: 2 warnings
axm55xx_defconfig: 2 warnings
badge4_defconfig: 2 warnings
bcm2835_defconfig: 2 warnings
bcm_defconfig: 2 warnings
bockw_defconfig: 2 warnings
cerfcube_defconfig: 2 warnings
clps711x_defconfig: 2 warnings
cm_x2xx_defconfig: 2 warnings
cm_x300_defconfig: 2 warnings
cns3420vb_defconfig: 2 warnings
colibri_pxa270_defconfig: 2 warnings
colibri_pxa300_defconfig: 2 warnings
collie_defconfig: 2 warnings
corgi_defconfig: 2 warnings
davinci_all_defconfig: 2 warnings
dove_defconfig: 2 warnings
ebsa110_defconfig: 2 warnings
efm32_defconfig: 2 warnings
em_x270_defconfig: 2 warnings
ep93xx_defconfig: 2 warnings
eseries_pxa_defconfig: 2 warnings
exynos_defconfig: 2 warnings
ezx_defconfig: 2 warnings
footbridge_defconfig: 2 warnings
h3600_defconfig: 2 warnings
h5000_defconfig: 2 warnings
hackkit_defconfig: 2 warnings
hisi_defconfig: 2 warnings
imote2_defconfig: 2 warnings
imx_v4_v5_defconfig: 2 warnings
imx_v6_v7_defconfig: 2 warnings
integrator_defconfig: 2 warnings
iop13xx_defconfig: 2 warnings
iop32x_defconfig: 2 warnings
iop33x_defconfig: 2 warnings
ixp4xx_defconfig: 2 warnings
jornada720_defconfig: 2 warnings
keystone_defconfig: 2 warnings
koelsch_defconfig: 2 warnings
ks8695_defconfig: 2 warnings
kzm9g_defconfig: 2 warnings
lager_defconfig: 2 warnings
lart_defconfig: 2 warnings
lpc32xx_defconfig: 2 warnings
lpd270_defconfig: 2 warnings
lubbock_defconfig: 2 warnings
mackerel_defconfig: 2 warnings
magician_defconfig: 2 warnings
mainstone_defconfig: 2 warnings
marzen_defconfig: 2 warnings
mini2440_defconfig: 2 warnings
mmp2_defconfig: 2 warnings
moxart_defconfig: 2 warnings
msm_defconfig: 2 warnings
multi_v5_defconfig: 2 warnings
multi_v7_defconfig: 2 warnings
mv78xx0_defconfig: 2 warnings
mvebu_v5_defconfig: 2 warnings
mvebu_v7_defconfig: 2 warnings
mxs_defconfig: 2 warnings
neponset_defconfig: 2 warnings
netwinder_defconfig: 2 warnings
netx_defconfig: 2 warnings
nhk8815_defconfig: 2 warnings
nuc910_defconfig: 2 warnings
nuc950_defconfig: 2 warnings
nuc960_defconfig: 2 warnings
omap1_defconfig: 2 warnings
omap2plus_defconfig: 2 warnings
orion5x_defconfig: 2 warnings
palmz72_defconfig: 2 warnings
pcm027_defconfig: 2 warnings
pleb_defconfig: 2 warnings
prima2_defconfig: 2 warnings
pxa168_defconfig: 2 warnings
pxa255-idp_defconfig: 2 warnings
pxa3xx_defconfig: 2 warnings
pxa910_defconfig: 2 warnings
qcom_defconfig: 2 warnings
raumfeld_defconfig: 2 warnings
realview-smp_defconfig: 2 warnings
realview_defconfig: 2 warnings
rpc_defconfig: 2 warnings
s3c2410_defconfig: 2 warnings
s3c6400_defconfig: 2 warnings
s5pv210_defconfig: 2 warnings
sama5_defconfig: 2 warnings
shannon_defconfig: 2 warnings
shmobile_defconfig: 2 warnings
simpad_defconfig: 2 warnings
socfpga_defconfig: 2 warnings
spear13xx_defconfig: 2 warnings
spear3xx_defconfig: 2 warnings
spear6xx_defconfig: 2 warnings
spitz_defconfig: 2 warnings
sunxi_defconfig: 2 warnings
tct_hammer_defconfig: 2 warnings
tegra_defconfig: 2 warnings
tinyconfig: 2 warnings
trizeps4_defconfig: 2 warnings
u300_defconfig: 2 warnings
u8500_defconfig: 2 warnings
versatile_defconfig: 2 warnings
vexpress_defconfig: 2 warnings
viper_defconfig: 2 warnings
vt8500_v6_v7_defconfig: 2 warnings
xcep_defconfig: 2 warnings
zeus_defconfig: 2 warnings
x86: gcc version 7.3.0 (Debian 7.3.0-30)
allnoconfig: 3 warnings
i386_defconfig: 3 warnings
tinyconfig: 3 warnings
x86_64_defconfig: 30 warnings
Errors summary:
2 arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
2 arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
Warnings summary:
663 arc-linux-gcc: warning: '-mno-mpy' is deprecated
654 cc1: warning: '-mno-mpy' is deprecated
128 scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
128 scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
3 arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
3 arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
3 arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
2 mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
2 kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
2 include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
2 include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
1 net/sunrpc/clnt.c:527:46: warning: '%s' directive output may be truncated writing up to 107 bytes into a region of size 48 [-Wformat-truncation=]
1 mm/mmap.c:684:2: warning: 'rb_parent' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 mm/mmap.c:684:2: warning: 'rb_link' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 mm/mmap.c:683:2: warning: 'prev' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 lib/string_helpers.c:64:33: warning: '%03lld' directive output may be truncated writing between 3 and 13 bytes into a region of size 7 [-Wformat-truncation=]
1 kernel/relay.c:423:35: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
1 fs/nfs/client.c:1380:23: warning: '%u' directive output may be truncated writing between 1 and 7 bytes into a region of size between 3 and 6 [-Wformat-truncation=]
1 drivers/video/fbdev/core/../edid.h:74:72: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/usb/core/usb.c:471:9: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
1 drivers/usb/core/hcd.c:450:34: warning: '%s' directive output may be truncated writing up to 64 bytes into a region of size between 35 and 99 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11184:10: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11181:9: warning: '-rx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11178:9: warning: '-tx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11175:9: warning: '-txrx-' directive output may be truncated writing 6 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/input/mouse/psmouse-base.c:1466:52: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/mouse/lifebook.c:287:7: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/mouse/alps.c:2418:46: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/keyboard/atkbd.c:1069:7: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/ata/libata-core.c:2970:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2969:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2968:35: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2967:32: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2966:31: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2965:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2964:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2963:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2962:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2141:42: warning: '%d' directive output may be truncated writing between 1 and 2 bytes into a region of size between 1 and 11 [-Wformat-truncation=]
1 block/partition-generic.c:41:37: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
1 block/partition-generic.c:39:36: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 31 [-Wformat-truncation=]
1 block/elevator.c:841:14: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
================================================================================
Detailed per-defconfig build reports:
--------------------------------------------------------------------------------
acs5k_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
acs5k_tiny_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
allnoconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (arc) — FAIL, 2 errors, 666 warnings, 0 section mismatches
Errors:
arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
Warnings:
arc-linux-gcc: warning: '-mno-mpy' is deprecated
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/mmap.c:684:2: warning: 'rb_link' may be used uninitialized in this function [-Wmaybe-uninitialized]
mm/mmap.c:684:2: warning: 'rb_parent' may be used uninitialized in this function [-Wmaybe-uninitialized]
mm/mmap.c:683:2: warning: 'prev' may be used uninitialized in this function [-Wmaybe-uninitialized]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
--------------------------------------------------------------------------------
am200epdkit_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ape6evm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ar7_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
armadillo800eva_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
assabet_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91_dt_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91rm9200_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9260_9g20_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9261_9g10_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9263_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9g45_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9rl_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91x40_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ath79_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
axm55xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
badge4_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bcm2835_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bcm47xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm63xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bigsur_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bockw_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
capcella_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cavium_octeon_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cerfcube_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
clps711x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cm_x2xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cm_x300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cns3420vb_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cobalt_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
colibri_pxa270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
colibri_pxa300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
collie_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
corgi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
davinci_all_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
db1xxx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
decstation_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
defconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
dove_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
e55_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ebsa110_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
efm32_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
em_x270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ep93xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
eseries_pxa_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
exynos_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ezx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
footbridge_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
fuloong2e_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
gpr_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
h3600_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
h5000_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
hackkit_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
hisi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
i386_defconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
imote2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
imx_v4_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
imx_v6_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
integrator_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop13xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop32x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop33x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ip22_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip27_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip28_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip32_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ixp4xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
jazz_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jmr3927_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jornada720_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
keystone_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
koelsch_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ks8695_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
kzm9g_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lager_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lart_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lasat_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lemote2f_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
loongson3_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lpc32xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lpd270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ls1b_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lubbock_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mackerel_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
magician_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mainstone_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
malta_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_kvm_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_kvm_guest_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaaprp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_eva_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaup_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
markeins_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
marzen_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mini2440_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mips_paravirt_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mmp2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
moxart_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mpc30x_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
msm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
msp71xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mtx1_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
multi_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
multi_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mv78xx0_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mvebu_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mvebu_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mxs_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
neponset_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
netwinder_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
netx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nhk8815_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nlm_xlp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nlm_xlr_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nuc910_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nuc950_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nuc960_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
omap1_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
omap2plus_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
orion5x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
palmz72_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pcm027_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pleb_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pnx8335_stb225_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
prima2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa168_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa255-idp_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa3xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa910_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
qcom_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
qi_lb60_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
raumfeld_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rb532_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rbtx49xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
realview-smp_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
realview_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rm200_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rpc_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rt305x_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
s3c2410_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
s3c6400_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
s5pv210_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sama5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sb1250_swarm_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sead3_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sead3micro_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
shannon_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
shmobile_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
simpad_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
socfpga_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear13xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear3xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear6xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spitz_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sunxi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tb0219_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0226_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0287_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tct_hammer_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tegra_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
tinyconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (arc) — FAIL, 2 errors, 664 warnings, 0 section mismatches
Errors:
arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
Warnings:
arc-linux-gcc: warning: '-mno-mpy' is deprecated
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
--------------------------------------------------------------------------------
trizeps4_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
u300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
u8500_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
versatile_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
vexpress_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
viper_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
vt8500_v6_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
workpad_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
x86_64_defconfig (x86) — PASS, 0 errors, 30 warnings, 0 section mismatches
Warnings:
include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
kernel/relay.c:423:35: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
fs/nfs/client.c:1380:23: warning: '%u' directive output may be truncated writing between 1 and 7 bytes into a region of size between 3 and 6 [-Wformat-truncation=]
block/elevator.c:841:14: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
block/partition-generic.c:39:36: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 31 [-Wformat-truncation=]
block/partition-generic.c:41:37: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
lib/string_helpers.c:64:33: warning: '%03lld' directive output may be truncated writing between 3 and 13 bytes into a region of size 7 [-Wformat-truncation=]
drivers/ata/libata-core.c:2962:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2963:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2964:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2965:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2966:31: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2967:32: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2968:35: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2969:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2970:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2141:42: warning: '%d' directive output may be truncated writing between 1 and 2 bytes into a region of size between 1 and 11 [-Wformat-truncation=]
net/sunrpc/clnt.c:527:46: warning: '%s' directive output may be truncated writing up to 107 bytes into a region of size 48 [-Wformat-truncation=]
drivers/input/keyboard/atkbd.c:1069:7: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/psmouse-base.c:1466:52: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/alps.c:2418:46: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/lifebook.c:287:7: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11175:9: warning: '-txrx-' directive output may be truncated writing 6 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11178:9: warning: '-tx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11181:9: warning: '-rx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11184:10: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
drivers/usb/core/usb.c:471:9: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
drivers/usb/core/hcd.c:450:34: warning: '%s' directive output may be truncated writing up to 64 bytes into a region of size between 35 and 99 [-Wformat-truncation=]
drivers/video/fbdev/core/../edid.h:74:72: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
--------------------------------------------------------------------------------
xcep_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
xway_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
zeus_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
---
For more info write to <info(a)kernelci.org>
I ended up tracking down some rather nasty issues with f2fs (and other
filesystem modules) constantly crashing on my kernel down to a
combination of out of bounds memory accesses, one of which was coming
from brcmfmac during module load:
[ 30.891382] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4356-sdio for chip BCM4356/2
[ 30.894437] ==================================================================
[ 30.901581] BUG: KASAN: global-out-of-bounds in brcmf_fw_alloc_request+0x42c/0x480 [brcmfmac]
[ 30.909935] Read of size 1 at addr ffff2000024865df by task kworker/6:2/387
[ 30.916805]
[ 30.918261] CPU: 6 PID: 387 Comm: kworker/6:2 Tainted: G O 4.20.0-rc3Lyude-Test+ #19
[ 30.927251] Hardware name: amlogic khadas-vim2/khadas-vim2, BIOS 2018.07-rc2-armbian 09/11/2018
[ 30.935964] Workqueue: events brcmf_driver_register [brcmfmac]
[ 30.941641] Call trace:
[ 30.944058] dump_backtrace+0x0/0x3e8
[ 30.947676] show_stack+0x14/0x20
[ 30.950968] dump_stack+0x130/0x1c4
[ 30.954406] print_address_description+0x60/0x25c
[ 30.959066] kasan_report+0x1b4/0x368
[ 30.962683] __asan_report_load1_noabort+0x18/0x20
[ 30.967547] brcmf_fw_alloc_request+0x42c/0x480 [brcmfmac]
[ 30.967639] brcmf_sdio_probe+0x163c/0x2050 [brcmfmac]
[ 30.978035] brcmf_ops_sdio_probe+0x598/0xa08 [brcmfmac]
[ 30.983254] sdio_bus_probe+0x190/0x398
[ 30.983270] really_probe+0x2a0/0xa70
[ 30.983296] driver_probe_device+0x1b4/0x2d8
[ 30.994901] __driver_attach+0x200/0x280
[ 30.994914] bus_for_each_dev+0x10c/0x1a8
[ 30.994925] driver_attach+0x38/0x50
[ 30.994935] bus_add_driver+0x330/0x608
[ 30.994953] driver_register+0x140/0x388
[ 31.013965] sdio_register_driver+0x74/0xa0
[ 31.014076] brcmf_sdio_register+0x14/0x60 [brcmfmac]
[ 31.023177] brcmf_driver_register+0xc/0x18 [brcmfmac]
[ 31.023209] process_one_work+0x654/0x1080
[ 31.032266] worker_thread+0x4f0/0x1308
[ 31.032286] kthread+0x2a8/0x320
[ 31.039254] ret_from_fork+0x10/0x1c
[ 31.039269]
[ 31.044226] The buggy address belongs to the variable:
[ 31.044351] brcmf_firmware_path+0x11f/0xfffffffffffd3b40 [brcmfmac]
[ 31.055601]
[ 31.057031] Memory state around the buggy address:
[ 31.061800] ffff200002486480: 04 fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
[ 31.068983] ffff200002486500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 31.068993] >ffff200002486580: 00 00 00 00 00 00 00 00 fa fa fa fa 00 00 00 00
[ 31.068999] ^
[ 31.069017] ffff200002486600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 31.096521] ffff200002486680: 00 00 00 00 00 00 00 00 00 00 00 00 fa fa fa fa
[ 31.096528] ==================================================================
[ 31.096533] Disabling lock debugging due to kernel taint
It appears that when trying to determine the length of the string in the
alternate firmware path, we make the mistake of not handling the case
where the firmware path is empty correctly. Since strlen(mp_path) can
return 0, we'll end up accessing mp_path[-1] when the firmware_path
isn't provided through the module arguments.
So, fix this by just setting the end char to '\0' by default, and only
changing it if we have a non-zero length. Additionally, use strnlen()
with BRCMF_FW_ALTPATH_LEN instead of strlen() just to be extra safe.
Signed-off-by: Lyude Paul <lyude(a)redhat.com>
Fixes: 2baa3aaee27f ("brcmfmac: introduce brcmf_fw_alloc_request() function")
Cc: Hante Meuleman <hante.meuleman(a)broadcom.com>
Cc: Pieter-Paul Giesberts <pieter-paul.giesberts(a)broadcom.com>
Cc: Franky Lin <franky.lin(a)broadcom.com>
Cc: Arend van Spriel <arend.vanspriel(a)broadcom.com>
Cc: Kalle Valo <kvalo(a)codeaurora.org>
Cc: Arend Van Spriel <arend.vanspriel(a)broadcom.com>
Cc: Himanshu Jha <himanshujha199640(a)gmail.com>
Cc: Dan Haab <dhaab(a)luxul.com>
Cc: Jia-Shyr Chuang <saint.chuang(a)cypress.com>
Cc: Ian Molton <ian(a)mnementh.co.uk>
Cc: <stable(a)vger.kernel.org> # v4.17+
Signed-off-by: Lyude Paul <lyude(a)redhat.com>
---
.../net/wireless/broadcom/brcm80211/brcmfmac/firmware.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
index 9095b830ae4d..9927079a9ace 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c
@@ -641,8 +641,9 @@ brcmf_fw_alloc_request(u32 chip, u32 chiprev,
struct brcmf_fw_request *fwreq;
char chipname[12];
const char *mp_path;
+ size_t mp_path_len;
u32 i, j;
- char end;
+ char end = '\0';
size_t reqsz;
for (i = 0; i < table_size; i++) {
@@ -667,7 +668,10 @@ brcmf_fw_alloc_request(u32 chip, u32 chiprev,
mapping_table[i].fw_base, chipname);
mp_path = brcmf_mp_global.firmware_path;
- end = mp_path[strlen(mp_path) - 1];
+ mp_path_len = strnlen(mp_path, BRCMF_FW_ALTPATH_LEN);
+ if (mp_path_len)
+ end = mp_path[mp_path_len - 1];
+
fwreq->n_items = n_fwnames;
for (j = 0; j < n_fwnames; j++) {
--
2.19.1
This is the start of the stable review cycle for the 4.14.71 release.
There are 126 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 Wed Sep 19 21:16:12 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.14.71-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.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.14.71-rc1
Linus Torvalds <torvalds(a)linux-foundation.org>
mm: get rid of vmacache_flush_all() entirely
Ian Kent <raven(a)themaw.net>
autofs: fix autofs_sbi() does not check super block type
Jason Wang <jasowang(a)redhat.com>
tuntap: fix use after free during release
Jason Wang <jasowang(a)redhat.com>
tun: fix use after free for ptr_ring
Wei Yongjun <weiyongjun1(a)huawei.com>
mtd: ubi: wl: Fix error return code in ubi_wl_init()
Taehee Yoo <ap420073(a)gmail.com>
ip: frags: fix crash in ip_do_fragment()
Peter Oskolkov <posk(a)google.com>
ip: process in-order fragments efficiently
Peter Oskolkov <posk(a)google.com>
ip: add helpers to process in-order fragments faster.
Dan Carpenter <dan.carpenter(a)oracle.com>
ipv4: frags: precedence bug in ip_expire()
Eric Dumazet <edumazet(a)google.com>
net: sk_buff rbnode reorg
Eric Dumazet <edumazet(a)google.com>
net: add rb_to_skb() and other rb tree helpers
Eric Dumazet <edumazet(a)google.com>
net: pskb_trim_rcsum() and CHECKSUM_COMPLETE are friends
Florian Westphal <fw(a)strlen.de>
ipv6: defrag: drop non-last frags smaller than min mtu
Peter Oskolkov <posk(a)google.com>
net: modify skb_rbtree_purge to return the truesize of all purged skbs.
Eric Dumazet <edumazet(a)google.com>
net: speed up skb_rbtree_purge()
Peter Oskolkov <posk(a)google.com>
ip: discard IPv4 datagrams with overlapping segments.
Eric Dumazet <edumazet(a)google.com>
inet: frags: fix ip6frag_low_thresh boundary
Eric Dumazet <edumazet(a)google.com>
inet: frags: get rid of ipfrag_skb_cb/FRAG_CB
Eric Dumazet <edumazet(a)google.com>
inet: frags: reorganize struct netns_frags
Eric Dumazet <edumazet(a)google.com>
rhashtable: reorganize struct rhashtable layout
Eric Dumazet <edumazet(a)google.com>
ipv6: frags: rewrite ip6_expire_frag_queue()
Eric Dumazet <edumazet(a)google.com>
inet: frags: do not clone skb in ip_expire()
Eric Dumazet <edumazet(a)google.com>
inet: frags: break the 2GB limit for frags storage
Eric Dumazet <edumazet(a)google.com>
inet: frags: remove inet_frag_maybe_warn_overflow()
Eric Dumazet <edumazet(a)google.com>
inet: frags: get rif of inet_frag_evicting()
Eric Dumazet <edumazet(a)google.com>
inet: frags: remove some helpers
Eric Dumazet <edumazet(a)google.com>
inet: frags: use rhashtables for reassembly units
Eric Dumazet <edumazet(a)google.com>
rhashtable: add schedule points
Eric Dumazet <edumazet(a)google.com>
ipv6: export ip6 fragments sysctl to unprivileged users
Eric Dumazet <edumazet(a)google.com>
inet: frags: refactor lowpan_net_frag_init()
Eric Dumazet <edumazet(a)google.com>
inet: frags: refactor ipv6_frag_init()
Kees Cook <keescook(a)chromium.org>
inet: frags: Convert timers to use timer_setup()
Eric Dumazet <edumazet(a)google.com>
inet: frags: refactor ipfrag_init()
Eric Dumazet <edumazet(a)google.com>
inet: frags: add a pointer to struct netns_frags
Eric Dumazet <edumazet(a)google.com>
inet: frags: change inet_frags_init_net() return value
Jani Nikula <jani.nikula(a)intel.com>
drm/i915: set DP Main Stream Attribute for color range on DDI platforms
Parav Pandit <parav(a)mellanox.com>
RDMA/cma: Do not ignore net namespace for unbound cm_id
Paul Burton <paul.burton(a)mips.com>
MIPS: WARN_ON invalid DMA cache maintenance, not BUG_ON
Trond Myklebust <trond.myklebust(a)hammerspace.com>
NFSv4.1: Fix a potential layoutget/layoutrecall deadlock
Chao Yu <yuchao0(a)huawei.com>
f2fs: fix to do sanity check with {sit,nat}_ver_bitmap_bytesize
Zumeng Chen <zumeng.chen(a)gmail.com>
mfd: ti_am335x_tscadc: Fix struct clk memory leak
Geert Uytterhoeven <geert+renesas(a)glider.be>
iommu/ipmmu-vmsa: Fix allocation in atomic context
Dan Carpenter <dan.carpenter(a)oracle.com>
f2fs: Fix uninitialized return in f2fs_ioc_shutdown()
Chao Yu <yuchao0(a)huawei.com>
f2fs: fix to wait on page writeback before updating page
Katsuhiro Suzuki <suzuki.katsuhiro(a)socionext.com>
media: helene: fix xtal frequency setting at power on
Mauricio Faria de Oliveira <mfo(a)canonical.com>
partitions/aix: fix usage of uninitialized lv_info and lvname structures
Mauricio Faria de Oliveira <mfo(a)canonical.com>
partitions/aix: append null character to print data from disk
Sylwester Nawrocki <s.nawrocki(a)samsung.com>
media: s5p-mfc: Fix buffer look up in s5p_mfc_handle_frame_{new, copy_time} functions
Nick Dyer <nick.dyer(a)itdev.co.uk>
Input: atmel_mxt_ts - only use first T9 instance
John Pittman <jpittman(a)redhat.com>
dm cache: only allow a single io_mode cache feature to be requested
Petr Machata <petrm(a)mellanox.com>
net: dcb: For wild-card lookups, use priority -1, not 0
Nicholas Mc Guire <hofrat(a)osadl.org>
MIPS: generic: fix missing of_node_put()
Nicholas Mc Guire <hofrat(a)osadl.org>
MIPS: Octeon: add missing of_node_put()
Chao Yu <yuchao0(a)huawei.com>
f2fs: fix to do sanity check with reserved blkaddr of inline inode
Peter Rosin <peda(a)axentia.se>
tpm/tpm_i2c_infineon: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)
Linus Walleij <linus.walleij(a)linaro.org>
tpm_tis_spi: Pass the SPI IRQ down to the driver
Chao Yu <yuchao0(a)huawei.com>
f2fs: fix to skip GC if type in SSA and SIT is inconsistent
Jinbum Park <jinb.park7(a)gmail.com>
pktcdvd: Fix possible Spectre-v1 for pkt_devs
Chao Yu <yuchao0(a)huawei.com>
f2fs: try grabbing node page lock aggressively in sync scenario
Yelena Krivosheev <yelena(a)marvell.com>
net: mvneta: fix mtu change on port without link
Daniel Kurtz <djkurtz(a)chromium.org>
pinctrl/amd: only handle irq if it is pending and unmasked
Anton Vasilyev <vasilyev(a)ispras.ru>
gpio: ml-ioh: Fix buffer underwrite on probe error path
Dan Carpenter <dan.carpenter(a)oracle.com>
pinctrl: imx: off by one in imx_pinconf_group_dbg_show()
Joerg Roedel <jroedel(a)suse.de>
x86/mm: Remove in_nmi() warning from vmalloc_fault()
Marcel Holtmann <marcel(a)holtmann.org>
Bluetooth: hidp: Fix handling of strncpy for hid->name information
Surabhi Vishnoi <svishnoi(a)codeaurora.org>
ath10k: disable bundle mgmt tx completion event support
Huaisheng Ye <yehs1(a)lenovo.com>
tools/testing/nvdimm: kaddr and pfn can be NULL to ->direct_access()
Anton Vasilyev <vasilyev(a)ispras.ru>
scsi: 3ware: fix return 0 on the error path of probe
Srinivas Pandruvada <srinivas.pandruvada(a)linux.intel.com>
ata: libahci: Correct setting of DEVSLP register
Srinivas Pandruvada <srinivas.pandruvada(a)linux.intel.com>
ata: libahci: Allow reconfigure of DEVSLP register
Paul Burton <paul.burton(a)mips.com>
MIPS: Fix ISA virt/bus conversion for non-zero PHYS_OFFSET
Srinivas Kandagatla <srinivas.kandagatla(a)linaro.org>
rpmsg: core: add support to power domains for devices
Loic Poulain <loic.poulain(a)linaro.org>
wlcore: Set rx_status boottime_ns field on rx
Sven Eckelmann <sven.eckelmann(a)openmesh.com>
ath10k: prevent active scans on potential unusable channels
Felix Fietkau <nbd(a)nbd.name>
ath9k_hw: fix channel maximum power level test
Felix Fietkau <nbd(a)nbd.name>
ath9k: report tx status on EOSP
Finn Thain <fthain(a)telegraphics.com.au>
macintosh/via-pmu: Add missing mmio accessors
Kan Liang <kan.liang(a)linux.intel.com>
perf evlist: Fix error out while applying initial delay and LBR
Jiri Olsa <jolsa(a)kernel.org>
perf c2c report: Fix crash for empty browser
Olga Kornievskaia <kolga(a)netapp.com>
NFSv4.0 fix client reference leak in callback
Christophe Leroy <christophe.leroy(a)c-s.fr>
perf tools: Allow overriding MAX_NR_CPUS at compile time
Randy Dunlap <rdunlap(a)infradead.org>
f2fs: fix defined but not used build warnings
Yunlong Song <yunlong.song(a)huawei.com>
f2fs: do not set free of current section
Chao Yu <yuchao0(a)huawei.com>
f2fs: fix to active page in lru list for read path
Anton Vasilyev <vasilyev(a)ispras.ru>
tty: rocket: Fix possible buffer overwrite on register_PCI
Michael Kelley <mikelley(a)microsoft.com>
Drivers: hv: vmbus: Cleanup synic memory free path
Anton Vasilyev <vasilyev(a)ispras.ru>
firmware: vpd: Fix section enabled flag on vpd_section_destroy
Dan Carpenter <dan.carpenter(a)oracle.com>
uio: potential double frees if __uio_register_device() fails
Anton Vasilyev <vasilyev(a)ispras.ru>
misc: ti-st: Fix memory leak in the error path of probe()
Philipp Zabel <p.zabel(a)pengutronix.de>
gpu: ipu-v3: default to id 0 on missing OF alias
Todor Tomov <todor.tomov(a)linaro.org>
media: camss: csid: Configure data type and decode format properly
Gaurav Kohli <gkohli(a)codeaurora.org>
timers: Clear timer_base::must_forward_clk with timer_base::lock held
BingJing Chang <bingjingc(a)synology.com>
md/raid5: fix data corruption of replacements after originals dropped
Mike Christie <mchristi(a)redhat.com>
scsi: target: fix __transport_register_session locking
Ming Lei <ming.lei(a)redhat.com>
blk-mq: fix updating tags depth
Arun Parameswaran <arun.parameswaran(a)broadcom.com>
net: phy: Fix the register offsets in Broadcom iProc mdio mux driver
Anton Vasilyev <vasilyev(a)ispras.ru>
media: dw2102: Fix memleak on sequence of probes
Anton Vasilyev <vasilyev(a)ispras.ru>
media: davinci: vpif_display: Mix memory leak on probe error path
Roman Gushchin <guro(a)fb.com>
selftests/bpf: fix a typo in map in map test
Reza Arbab <arbab(a)linux.ibm.com>
powerpc/powernv: Fix concurrency issue with npu->mmio_atsd_usage
Dmitry Osipenko <digetx(a)gmail.com>
gpio: tegra: Move driver registration to subsys_init level
Johan Hedberg <johan.hedberg(a)intel.com>
Bluetooth: h5: Fix missing dependency on BT_HCIUART_SERDEV
Jae Hyun Yoo <jae.hyun.yoo(a)linux.intel.com>
i2c: aspeed: Add an explicit type casting for *get_clk_reg_val
Florian Fainelli <f.fainelli(a)gmail.com>
ethtool: Remove trailing semicolon for static inline
Dan Carpenter <dan.carpenter(a)oracle.com>
misc: mic: SCIF Fix scif_get_new_port() error handling
Alexey Brodkin <abrodkin(a)synopsys.com>
ARC: [plat-axs*]: Enable SWAP
Tomas Winkler <tomas.winkler(a)intel.com>
tpm: separate cmd_ready/go_idle from runtime_pm
Arnd Bergmann <arnd(a)arndb.de>
crypto: aes-generic - fix aes-generic regression on powerpc
Gustavo A. R. Silva <gustavo(a)embeddedor.com>
switchtec: Fix Spectre v1 vulnerability
Filippo Sironi <sironi(a)amazon.de>
x86/microcode: Update the new microcode revision unconditionally
Prarit Bhargava <prarit(a)redhat.com>
x86/microcode: Make sure boot_cpu_data.microcode is up-to-date
Thomas Gleixner <tglx(a)linutronix.de>
cpu/hotplug: Prevent state corruption on error rollback
Neeraj Upadhyay <neeraju(a)codeaurora.org>
cpu/hotplug: Adjust misplaced smb() in cpuhp_thread_fun()
Takashi Iwai <tiwai(a)suse.de>
ALSA: hda - Fix cancel_work_sync() stall from jackpoll work
Sean Christopherson <sean.j.christopherson(a)intel.com>
KVM: VMX: Do not allow reexecute_instruction() when skipping MMIO instr
Pierre Morel <pmorel(a)linux.ibm.com>
KVM: s390: vsie: copy wrapping keys to right place
Filipe Manana <fdmanana(a)suse.com>
Btrfs: fix data corruption when deduplicating between different files
Steve French <stfrench(a)microsoft.com>
smb3: check for and properly advertise directory lease support
Steve French <stfrench(a)microsoft.com>
SMB3: Backup intent flag missing for directory opens with backupuid mounts
Paul Burton <paul.burton(a)mips.com>
MIPS: VDSO: Match data page cache colouring when D$ aliases
Minchan Kim <minchan(a)kernel.org>
android: binder: fix the race mmap and alloc_new_buf_locked
Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
block: bfq: swap puts in bfqg_and_blkg_put
Jens Axboe <axboe(a)kernel.dk>
nbd: don't allow invalid blocksize settings
James Smart <jsmart2021(a)gmail.com>
scsi: lpfc: Correct MDS diag and nvmet configuration
Felipe Balbi <felipe.balbi(a)linux.intel.com>
i2c: i801: fix DNV's SMBCTRL register offset
Shubhrajyoti Datta <shubhrajyoti.datta(a)xilinx.com>
i2c: xiic: Make the start and the byte count write atomic
-------------
Diffstat:
Documentation/networking/ip-sysctl.txt | 13 +-
Makefile | 4 +-
arch/arc/configs/axs101_defconfig | 1 -
arch/arc/configs/axs103_defconfig | 1 -
arch/arc/configs/axs103_smp_defconfig | 1 -
arch/mips/cavium-octeon/octeon-platform.c | 2 +
arch/mips/generic/init.c | 1 +
arch/mips/include/asm/io.h | 8 +-
arch/mips/kernel/vdso.c | 20 +
arch/mips/mm/c-r4k.c | 6 +-
arch/powerpc/platforms/powernv/npu-dma.c | 5 +-
arch/s390/kvm/vsie.c | 3 +-
arch/x86/kernel/cpu/microcode/amd.c | 24 +-
arch/x86/kernel/cpu/microcode/intel.c | 17 +-
arch/x86/kvm/vmx.c | 4 +-
arch/x86/mm/fault.c | 2 -
block/bfq-cgroup.c | 4 +-
block/blk-mq-tag.c | 8 +-
block/partitions/aix.c | 13 +-
crypto/Makefile | 2 +-
drivers/android/binder_alloc.c | 42 +-
drivers/ata/libahci.c | 20 +-
drivers/block/nbd.c | 3 +
drivers/block/pktcdvd.c | 4 +-
drivers/bluetooth/Kconfig | 1 +
drivers/char/tpm/tpm-interface.c | 50 +-
drivers/char/tpm/tpm.h | 12 +-
drivers/char/tpm/tpm2-space.c | 16 +-
drivers/char/tpm/tpm_crb.c | 101 +---
drivers/char/tpm/tpm_i2c_infineon.c | 8 +-
drivers/char/tpm/tpm_tis_spi.c | 9 +-
drivers/firmware/google/vpd.c | 5 +-
drivers/gpio/gpio-ml-ioh.c | 3 +-
drivers/gpio/gpio-tegra.c | 2 +-
drivers/gpu/drm/i915/i915_reg.h | 1 +
drivers/gpu/drm/i915/intel_ddi.c | 4 +
drivers/gpu/ipu-v3/ipu-common.c | 2 +
drivers/hv/hv.c | 14 +-
drivers/i2c/busses/i2c-aspeed.c | 2 +-
drivers/i2c/busses/i2c-i801.c | 7 +-
drivers/i2c/busses/i2c-xiic.c | 4 +
drivers/infiniband/core/cma.c | 13 +-
drivers/input/touchscreen/atmel_mxt_ts.c | 7 +-
drivers/iommu/ipmmu-vmsa.c | 9 +-
drivers/macintosh/via-pmu.c | 9 +-
drivers/md/dm-cache-target.c | 19 +-
drivers/md/raid5.c | 6 +
drivers/media/dvb-frontends/helene.c | 5 +-
drivers/media/platform/davinci/vpif_display.c | 24 +-
.../media/platform/qcom/camss-8x16/camss-csid.c | 16 +-
drivers/media/platform/s5p-mfc/s5p_mfc.c | 23 +-
drivers/media/usb/dvb-usb/dw2102.c | 19 +-
drivers/mfd/ti_am335x_tscadc.c | 3 +-
drivers/misc/mic/scif/scif_api.c | 20 +-
drivers/misc/ti-st/st_kim.c | 4 +-
drivers/mtd/ubi/wl.c | 8 +-
drivers/net/ethernet/marvell/mvneta.c | 1 -
drivers/net/phy/mdio-mux-bcm-iproc.c | 20 +-
drivers/net/tun.c | 21 +-
drivers/net/wireless/ath/ath10k/mac.c | 7 +
drivers/net/wireless/ath/ath10k/wmi-tlv.c | 5 +
drivers/net/wireless/ath/ath10k/wmi-tlv.h | 5 +
drivers/net/wireless/ath/ath9k/hw.c | 7 +-
drivers/net/wireless/ath/ath9k/xmit.c | 3 +-
drivers/net/wireless/ti/wlcore/rx.c | 8 +-
drivers/pci/switch/switchtec.c | 4 +
drivers/pinctrl/freescale/pinctrl-imx.c | 2 +-
drivers/pinctrl/pinctrl-amd.c | 3 +-
drivers/rpmsg/rpmsg_core.c | 7 +
drivers/scsi/3w-9xxx.c | 6 +-
drivers/scsi/3w-sas.c | 3 +
drivers/scsi/3w-xxxx.c | 2 +
drivers/scsi/lpfc/lpfc.h | 2 +-
drivers/target/target_core_transport.c | 5 +-
drivers/tty/rocket.c | 2 +-
drivers/uio/uio.c | 3 +-
fs/autofs4/autofs_i.h | 4 +-
fs/autofs4/inode.c | 1 -
fs/btrfs/ioctl.c | 19 +
fs/cifs/inode.c | 2 +
fs/cifs/smb2ops.c | 35 +-
fs/cifs/smb2pdu.c | 3 +
fs/f2fs/f2fs.h | 7 +-
fs/f2fs/file.c | 2 +-
fs/f2fs/gc.c | 8 +-
fs/f2fs/inline.c | 22 +
fs/f2fs/node.c | 4 +-
fs/f2fs/segment.h | 3 +
fs/f2fs/super.c | 21 +-
fs/f2fs/sysfs.c | 10 +-
fs/nfs/callback_proc.c | 4 +-
fs/nfs/callback_xdr.c | 11 +-
include/linux/mm_types.h | 2 +-
include/linux/mm_types_task.h | 2 +-
include/linux/rhashtable.h | 8 +-
include/linux/skbuff.h | 50 +-
include/linux/tpm.h | 2 +
include/linux/vm_event_item.h | 1 -
include/linux/vmacache.h | 5 -
include/net/inet_frag.h | 135 +++--
include/net/ip.h | 1 -
include/net/ipv6.h | 26 +-
include/uapi/linux/ethtool.h | 4 +-
include/uapi/linux/snmp.h | 1 +
kernel/cpu.c | 11 +-
kernel/time/timer.c | 29 +-
lib/rhashtable.c | 2 +
mm/debug.c | 4 +-
mm/vmacache.c | 38 --
net/bluetooth/hidp/core.c | 2 +-
net/core/skbuff.c | 31 +-
net/dcb/dcbnl.c | 11 +-
net/ieee802154/6lowpan/6lowpan_i.h | 26 +-
net/ieee802154/6lowpan/reassembly.c | 153 +++---
net/ipv4/inet_fragment.c | 378 +++-----------
net/ipv4/ip_fragment.c | 578 ++++++++++++---------
net/ipv4/proc.c | 7 +-
net/ipv4/tcp_fastopen.c | 8 +-
net/ipv4/tcp_input.c | 33 +-
net/ipv6/netfilter/nf_conntrack_reasm.c | 105 ++--
net/ipv6/proc.c | 5 +-
net/ipv6/reassembly.c | 217 ++++----
net/sched/sch_netem.c | 14 +-
sound/pci/hda/hda_codec.c | 3 +-
tools/perf/builtin-c2c.c | 3 +
tools/perf/perf.h | 2 +
tools/perf/util/evsel.c | 14 +
tools/testing/nvdimm/pmem-dax.c | 12 +-
tools/testing/selftests/bpf/test_verifier.c | 6 +-
129 files changed, 1473 insertions(+), 1362 deletions(-)
From: Miklos Szeredi <mszeredi(a)redhat.com>
When mounting overlayfs it needs a clean "work" directory under the
supplied workdir.
Previously the mount code removed this directory if it already existed and
created a new one. If the removal failed (e.g. directory was not empty)
then it fell back to a read-only mount not using the workdir.
While this has never been reported, it is possible to get a non-empty
"work" dir from a previous mount of overlayfs in case of crash in the
middle of an operation using the work directory.
In this case the left over state should be discarded and the overlay
filesystem will be consistent, guaranteed by the atomicity of operations on
moving to/from the workdir to the upper layer.
This patch implements cleaning out any files left in workdir. It is
implemented using real recursion for simplicity, but the depth is limited
to 2, because the worst case is that of a directory containing whiteouts
under "work".
Signed-off-by: Miklos Szeredi <mszeredi(a)redhat.com>
Cc: <stable(a)vger.kernel.org>
---
fs/overlayfs/copy_up.c | 26 +-
fs/overlayfs/dir.c | 67 +--
fs/overlayfs/overlayfs.h | 3 +
fs/overlayfs/readdir.c | 77 ++-
fs/overlayfs/super.c | 20 +-
include/linux/scif.h | 1339 ----------------------------------------------
6 files changed, 92 insertions(+), 1440 deletions(-)
diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c
index 63a0d0ba36de..64c5386d0c1b 100644
--- a/fs/overlayfs/copy_up.c
+++ b/fs/overlayfs/copy_up.c
@@ -317,7 +317,6 @@ int ovl_copy_up_one(struct dentry *parent, struct dentry *dentry,
struct dentry *upperdir;
struct dentry *upperdentry;
const struct cred *old_cred;
- struct cred *override_cred;
char *link = NULL;
if (WARN_ON(!workdir))
@@ -336,28 +335,7 @@ int ovl_copy_up_one(struct dentry *parent, struct dentry *dentry,
return PTR_ERR(link);
}
- err = -ENOMEM;
- override_cred = prepare_creds();
- if (!override_cred)
- goto out_free_link;
-
- override_cred->fsuid = stat->uid;
- override_cred->fsgid = stat->gid;
- /*
- * CAP_SYS_ADMIN for copying up extended attributes
- * CAP_DAC_OVERRIDE for create
- * CAP_FOWNER for chmod, timestamp update
- * CAP_FSETID for chmod
- * CAP_CHOWN for chown
- * CAP_MKNOD for mknod
- */
- cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN);
- cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE);
- cap_raise(override_cred->cap_effective, CAP_FOWNER);
- cap_raise(override_cred->cap_effective, CAP_FSETID);
- cap_raise(override_cred->cap_effective, CAP_CHOWN);
- cap_raise(override_cred->cap_effective, CAP_MKNOD);
- old_cred = override_creds(override_cred);
+ old_cred = ovl_override_creds(dentry->d_sb);
err = -EIO;
if (lock_rename(workdir, upperdir) != NULL) {
@@ -380,9 +358,7 @@ int ovl_copy_up_one(struct dentry *parent, struct dentry *dentry,
out_unlock:
unlock_rename(workdir, upperdir);
revert_creds(old_cred);
- put_cred(override_cred);
-out_free_link:
if (link)
free_page((unsigned long) link);
diff --git a/fs/overlayfs/dir.c b/fs/overlayfs/dir.c
index 327177df03a5..f8aa54272121 100644
--- a/fs/overlayfs/dir.c
+++ b/fs/overlayfs/dir.c
@@ -408,28 +408,13 @@ static int ovl_create_or_link(struct dentry *dentry, int mode, dev_t rdev,
err = ovl_create_upper(dentry, inode, &stat, link, hardlink);
} else {
const struct cred *old_cred;
- struct cred *override_cred;
- err = -ENOMEM;
- override_cred = prepare_creds();
- if (!override_cred)
- goto out_iput;
-
- /*
- * CAP_SYS_ADMIN for setting opaque xattr
- * CAP_DAC_OVERRIDE for create in workdir, rename
- * CAP_FOWNER for removing whiteout from sticky dir
- */
- cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN);
- cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE);
- cap_raise(override_cred->cap_effective, CAP_FOWNER);
- old_cred = override_creds(override_cred);
+ old_cred = ovl_override_creds(dentry->d_sb);
err = ovl_create_over_whiteout(dentry, inode, &stat, link,
hardlink);
revert_creds(old_cred);
- put_cred(override_cred);
}
if (!err)
@@ -659,32 +644,11 @@ static int ovl_do_remove(struct dentry *dentry, bool is_dir)
if (OVL_TYPE_PURE_UPPER(type)) {
err = ovl_remove_upper(dentry, is_dir);
} else {
- const struct cred *old_cred;
- struct cred *override_cred;
-
- err = -ENOMEM;
- override_cred = prepare_creds();
- if (!override_cred)
- goto out_drop_write;
-
- /*
- * CAP_SYS_ADMIN for setting xattr on whiteout, opaque dir
- * CAP_DAC_OVERRIDE for create in workdir, rename
- * CAP_FOWNER for removing whiteout from sticky dir
- * CAP_FSETID for chmod of opaque dir
- * CAP_CHOWN for chown of opaque dir
- */
- cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN);
- cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE);
- cap_raise(override_cred->cap_effective, CAP_FOWNER);
- cap_raise(override_cred->cap_effective, CAP_FSETID);
- cap_raise(override_cred->cap_effective, CAP_CHOWN);
- old_cred = override_creds(override_cred);
+ const struct cred *old_cred = ovl_override_creds(dentry->d_sb);
err = ovl_remove_and_whiteout(dentry, is_dir);
revert_creds(old_cred);
- put_cred(override_cred);
}
out_drop_write:
ovl_drop_write(dentry);
@@ -723,7 +687,6 @@ static int ovl_rename2(struct inode *olddir, struct dentry *old,
bool new_is_dir = false;
struct dentry *opaquedir = NULL;
const struct cred *old_cred = NULL;
- struct cred *override_cred = NULL;
err = -EINVAL;
if (flags & ~(RENAME_EXCHANGE | RENAME_NOREPLACE))
@@ -792,26 +755,8 @@ static int ovl_rename2(struct inode *olddir, struct dentry *old,
old_opaque = !OVL_TYPE_PURE_UPPER(old_type);
new_opaque = !OVL_TYPE_PURE_UPPER(new_type);
- if (old_opaque || new_opaque) {
- err = -ENOMEM;
- override_cred = prepare_creds();
- if (!override_cred)
- goto out_drop_write;
-
- /*
- * CAP_SYS_ADMIN for setting xattr on whiteout, opaque dir
- * CAP_DAC_OVERRIDE for create in workdir
- * CAP_FOWNER for removing whiteout from sticky dir
- * CAP_FSETID for chmod of opaque dir
- * CAP_CHOWN for chown of opaque dir
- */
- cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN);
- cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE);
- cap_raise(override_cred->cap_effective, CAP_FOWNER);
- cap_raise(override_cred->cap_effective, CAP_FSETID);
- cap_raise(override_cred->cap_effective, CAP_CHOWN);
- old_cred = override_creds(override_cred);
- }
+ if (old_opaque || new_opaque)
+ old_cred = ovl_override_creds(old->d_sb);
if (overwrite && OVL_TYPE_MERGE_OR_LOWER(new_type) && new_is_dir) {
opaquedir = ovl_check_empty_and_clear(new);
@@ -942,10 +887,8 @@ out_dput_old:
out_unlock:
unlock_rename(new_upperdir, old_upperdir);
out_revert_creds:
- if (old_opaque || new_opaque) {
+ if (old_opaque || new_opaque)
revert_creds(old_cred);
- put_cred(override_cred);
- }
out_drop_write:
ovl_drop_write(old);
out:
diff --git a/fs/overlayfs/overlayfs.h b/fs/overlayfs/overlayfs.h
index c319d5eaabcf..c77d64d2e8f1 100644
--- a/fs/overlayfs/overlayfs.h
+++ b/fs/overlayfs/overlayfs.h
@@ -150,6 +150,7 @@ void ovl_drop_write(struct dentry *dentry);
bool ovl_dentry_is_opaque(struct dentry *dentry);
void ovl_dentry_set_opaque(struct dentry *dentry, bool opaque);
bool ovl_is_whiteout(struct dentry *dentry);
+const struct cred *ovl_override_creds(struct super_block *sb);
void ovl_dentry_update(struct dentry *dentry, struct dentry *upperdentry);
struct dentry *ovl_lookup(struct inode *dir, struct dentry *dentry,
unsigned int flags);
@@ -163,6 +164,8 @@ extern const struct file_operations ovl_dir_operations;
int ovl_check_empty_dir(struct dentry *dentry, struct list_head *list);
void ovl_cleanup_whiteouts(struct dentry *upper, struct list_head *list);
void ovl_cache_free(struct list_head *list);
+void ovl_workdir_cleanup(struct inode *dir, struct vfsmount *mnt,
+ struct dentry *dentry, int level);
/* inode.c */
int ovl_setattr(struct dentry *dentry, struct iattr *attr);
diff --git a/fs/overlayfs/readdir.c b/fs/overlayfs/readdir.c
index adcb1398c481..49b5c7b17a05 100644
--- a/fs/overlayfs/readdir.c
+++ b/fs/overlayfs/readdir.c
@@ -36,6 +36,7 @@ struct ovl_dir_cache {
struct ovl_readdir_data {
struct dir_context ctx;
+ struct dentry *dentry;
bool is_merge;
struct rb_root root;
struct list_head *list;
@@ -205,17 +206,8 @@ static int ovl_check_whiteouts(struct dentry *dir, struct ovl_readdir_data *rdd)
struct ovl_cache_entry *p;
struct dentry *dentry;
const struct cred *old_cred;
- struct cred *override_cred;
-
- override_cred = prepare_creds();
- if (!override_cred)
- return -ENOMEM;
- /*
- * CAP_DAC_OVERRIDE for lookup
- */
- cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE);
- old_cred = override_creds(override_cred);
+ old_cred = ovl_override_creds(rdd->dentry->d_sb);
err = mutex_lock_killable(&dir->d_inode->i_mutex);
if (!err) {
@@ -231,7 +223,6 @@ static int ovl_check_whiteouts(struct dentry *dir, struct ovl_readdir_data *rdd)
mutex_unlock(&dir->d_inode->i_mutex);
}
revert_creds(old_cred);
- put_cred(override_cred);
return err;
}
@@ -256,7 +247,7 @@ static inline int ovl_dir_read(struct path *realpath,
err = rdd->err;
} while (!err && rdd->count);
- if (!err && rdd->first_maybe_whiteout)
+ if (!err && rdd->first_maybe_whiteout && rdd->dentry)
err = ovl_check_whiteouts(realpath->dentry, rdd);
fput(realfile);
@@ -287,6 +278,7 @@ static int ovl_dir_read_merged(struct dentry *dentry, struct list_head *list)
struct path realpath;
struct ovl_readdir_data rdd = {
.ctx.actor = ovl_fill_merge,
+ .dentry = dentry,
.list = list,
.root = RB_ROOT,
.is_merge = false,
@@ -577,3 +569,64 @@ void ovl_cleanup_whiteouts(struct dentry *upper, struct list_head *list)
}
mutex_unlock(&upper->d_inode->i_mutex);
}
+
+static void ovl_workdir_cleanup_recurse(struct path *path, int level)
+{
+ int err;
+ struct inode *dir = path->dentry->d_inode;
+ LIST_HEAD(list);
+ struct ovl_cache_entry *p;
+ struct ovl_readdir_data rdd = {
+ .ctx.actor = ovl_fill_merge,
+ .dentry = NULL,
+ .list = &list,
+ .root = RB_ROOT,
+ .is_merge = false,
+ };
+
+ err = ovl_dir_read(path, &rdd);
+ if (err)
+ goto out;
+
+ inode_lock_nested(dir, I_MUTEX_PARENT);
+ list_for_each_entry(p, &list, l_node) {
+ struct dentry *dentry;
+
+ if (p->name[0] == '.') {
+ if (p->len == 1)
+ continue;
+ if (p->len == 2 && p->name[1] == '.')
+ continue;
+ }
+ dentry = lookup_one_len(p->name, path->dentry, p->len);
+ if (IS_ERR(dentry))
+ continue;
+ if (dentry->d_inode)
+ ovl_workdir_cleanup(dir, path->mnt, dentry, level);
+ dput(dentry);
+ }
+ inode_unlock(dir);
+out:
+ ovl_cache_free(&list);
+}
+
+void ovl_workdir_cleanup(struct inode *dir, struct vfsmount *mnt,
+ struct dentry *dentry, int level)
+{
+ int err;
+
+ if (!d_is_dir(dentry) || level > 1) {
+ ovl_cleanup(dir, dentry);
+ return;
+ }
+
+ err = ovl_do_rmdir(dir, dentry);
+ if (err) {
+ struct path path = { .mnt = mnt, .dentry = dentry };
+
+ inode_unlock(dir);
+ ovl_workdir_cleanup_recurse(&path, level + 1);
+ inode_lock_nested(dir, I_MUTEX_PARENT);
+ ovl_cleanup(dir, dentry);
+ }
+}
diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
index d70208c0de84..0d008af70873 100644
--- a/fs/overlayfs/super.c
+++ b/fs/overlayfs/super.c
@@ -42,6 +42,8 @@ struct ovl_fs {
long lower_namelen;
/* pathnames of lower and upper dirs, for show_options */
struct ovl_config config;
+ /* creds of process who forced instantiation of super block */
+ const struct cred *creator_cred;
};
struct ovl_dir_cache;
@@ -246,6 +248,13 @@ bool ovl_is_whiteout(struct dentry *dentry)
return inode && IS_WHITEOUT(inode);
}
+const struct cred *ovl_override_creds(struct super_block *sb)
+{
+ struct ovl_fs *ofs = sb->s_fs_info;
+
+ return override_creds(ofs->creator_cred);
+}
+
static bool ovl_is_opaquedir(struct dentry *dentry)
{
int res;
@@ -587,6 +596,7 @@ static void ovl_put_super(struct super_block *sb)
kfree(ufs->config.lowerdir);
kfree(ufs->config.upperdir);
kfree(ufs->config.workdir);
+ put_cred(ufs->creator_cred);
kfree(ufs);
}
@@ -774,7 +784,7 @@ retry:
goto out_dput;
retried = true;
- ovl_cleanup(dir, work);
+ ovl_workdir_cleanup(dir, mnt, work, 0);
dput(work);
goto retry;
}
@@ -1087,10 +1097,14 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent)
else
sb->s_d_op = &ovl_dentry_operations;
+ ufs->creator_cred = prepare_creds();
+ if (!ufs->creator_cred)
+ goto out_put_lower_mnt;
+
err = -ENOMEM;
oe = ovl_alloc_entry(numlower);
if (!oe)
- goto out_put_lower_mnt;
+ goto out_put_cred;
root_dentry = d_make_root(ovl_new_inode(sb, S_IFDIR, oe));
if (!root_dentry)
@@ -1123,6 +1137,8 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent)
out_free_oe:
kfree(oe);
+out_put_cred:
+ put_cred(ufs->creator_cred);
out_put_lower_mnt:
for (i = 0; i < ufs->numlower; i++)
mntput(ufs->lower_mnt[i]);
diff --git a/include/linux/scif.h b/include/linux/scif.h
index 49a35d6edc94..e69de29bb2d1 100644
--- a/include/linux/scif.h
+++ b/include/linux/scif.h
@@ -1,1339 +0,0 @@
-/*
- * Intel MIC Platform Software Stack (MPSS)
- *
- * This file is provided under a dual BSD/GPLv2 license. When using or
- * redistributing this file, you may do so under either license.
- *
- * GPL LICENSE SUMMARY
- *
- * Copyright(c) 2014 Intel Corporation.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * BSD LICENSE
- *
- * Copyright(c) 2014 Intel Corporation.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Intel Corporation nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Intel SCIF driver.
- *
- */
-#ifndef __SCIF_H__
-#define __SCIF_H__
-
-#include <linux/types.h>
-#include <linux/poll.h>
-#include <linux/device.h>
-#include <linux/scif_ioctl.h>
-
-#define SCIF_ACCEPT_SYNC 1
-#define SCIF_SEND_BLOCK 1
-#define SCIF_RECV_BLOCK 1
-
-enum {
- SCIF_PROT_READ = (1 << 0),
- SCIF_PROT_WRITE = (1 << 1)
-};
-
-enum {
- SCIF_MAP_FIXED = 0x10,
- SCIF_MAP_KERNEL = 0x20,
-};
-
-enum {
- SCIF_FENCE_INIT_SELF = (1 << 0),
- SCIF_FENCE_INIT_PEER = (1 << 1),
- SCIF_SIGNAL_LOCAL = (1 << 4),
- SCIF_SIGNAL_REMOTE = (1 << 5)
-};
-
-enum {
- SCIF_RMA_USECPU = (1 << 0),
- SCIF_RMA_USECACHE = (1 << 1),
- SCIF_RMA_SYNC = (1 << 2),
- SCIF_RMA_ORDERED = (1 << 3)
-};
-
-/* End of SCIF Admin Reserved Ports */
-#define SCIF_ADMIN_PORT_END 1024
-
-/* End of SCIF Reserved Ports */
-#define SCIF_PORT_RSVD 1088
-
-typedef struct scif_endpt *scif_epd_t;
-typedef struct scif_pinned_pages *scif_pinned_pages_t;
-
-/**
- * struct scif_range - SCIF registered range used in kernel mode
- * @cookie: cookie used internally by SCIF
- * @nr_pages: number of pages of PAGE_SIZE
- * @prot_flags: R/W protection
- * @phys_addr: Array of bus addresses
- * @va: Array of kernel virtual addresses backed by the pages in the phys_addr
- * array. The va is populated only when called on the host for a remote
- * SCIF connection on MIC. This is required to support the use case of DMA
- * between MIC and another device which is not a SCIF node e.g., an IB or
- * ethernet NIC.
- */
-struct scif_range {
- void *cookie;
- int nr_pages;
- int prot_flags;
- dma_addr_t *phys_addr;
- void __iomem **va;
-};
-
-/**
- * struct scif_pollepd - SCIF endpoint to be monitored via scif_poll
- * @epd: SCIF endpoint
- * @events: requested events
- * @revents: returned events
- */
-struct scif_pollepd {
- scif_epd_t epd;
- short events;
- short revents;
-};
-
-/**
- * scif_peer_dev - representation of a peer SCIF device
- *
- * Peer devices show up as PCIe devices for the mgmt node but not the cards.
- * The mgmt node discovers all the cards on the PCIe bus and informs the other
- * cards about their peers. Upon notification of a peer a node adds a peer
- * device to the peer bus to maintain symmetry in the way devices are
- * discovered across all nodes in the SCIF network.
- *
- * @dev: underlying device
- * @dnode - The destination node which this device will communicate with.
- */
-struct scif_peer_dev {
- struct device dev;
- u8 dnode;
-};
-
-/**
- * scif_client - representation of a SCIF client
- * @name: client name
- * @probe - client method called when a peer device is registered
- * @remove - client method called when a peer device is unregistered
- * @si - subsys_interface used internally for implementing SCIF clients
- */
-struct scif_client {
- const char *name;
- void (*probe)(struct scif_peer_dev *spdev);
- void (*remove)(struct scif_peer_dev *spdev);
- struct subsys_interface si;
-};
-
-#define SCIF_OPEN_FAILED ((scif_epd_t)-1)
-#define SCIF_REGISTER_FAILED ((off_t)-1)
-#define SCIF_MMAP_FAILED ((void *)-1)
-
-/**
- * scif_open() - Create an endpoint
- *
- * Return:
- * Upon successful completion, scif_open() returns an endpoint descriptor to
- * be used in subsequent SCIF functions calls to refer to that endpoint;
- * otherwise in user mode SCIF_OPEN_FAILED (that is ((scif_epd_t)-1)) is
- * returned and errno is set to indicate the error; in kernel mode a NULL
- * scif_epd_t is returned.
- *
- * Errors:
- * ENOMEM - Insufficient kernel memory was available
- */
-scif_epd_t scif_open(void);
-
-/**
- * scif_bind() - Bind an endpoint to a port
- * @epd: endpoint descriptor
- * @pn: port number
- *
- * scif_bind() binds endpoint epd to port pn, where pn is a port number on the
- * local node. If pn is zero, a port number greater than or equal to
- * SCIF_PORT_RSVD is assigned and returned. Each endpoint may be bound to
- * exactly one local port. Ports less than 1024 when requested can only be bound
- * by system (or root) processes or by processes executed by privileged users.
- *
- * Return:
- * Upon successful completion, scif_bind() returns the port number to which epd
- * is bound; otherwise in user mode -1 is returned and errno is set to
- * indicate the error; in kernel mode the negative of one of the following
- * errors is returned.
- *
- * Errors:
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- * EINVAL - the endpoint or the port is already bound
- * EISCONN - The endpoint is already connected
- * ENOSPC - No port number available for assignment
- * EACCES - The port requested is protected and the user is not the superuser
- */
-int scif_bind(scif_epd_t epd, u16 pn);
-
-/**
- * scif_listen() - Listen for connections on an endpoint
- * @epd: endpoint descriptor
- * @backlog: maximum pending connection requests
- *
- * scif_listen() marks the endpoint epd as a listening endpoint - that is, as
- * an endpoint that will be used to accept incoming connection requests. Once
- * so marked, the endpoint is said to be in the listening state and may not be
- * used as the endpoint of a connection.
- *
- * The endpoint, epd, must have been bound to a port.
- *
- * The backlog argument defines the maximum length to which the queue of
- * pending connections for epd may grow. If a connection request arrives when
- * the queue is full, the client may receive an error with an indication that
- * the connection was refused.
- *
- * Return:
- * Upon successful completion, scif_listen() returns 0; otherwise in user mode
- * -1 is returned and errno is set to indicate the error; in kernel mode the
- * negative of one of the following errors is returned.
- *
- * Errors:
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- * EINVAL - the endpoint is not bound to a port
- * EISCONN - The endpoint is already connected or listening
- */
-int scif_listen(scif_epd_t epd, int backlog);
-
-/**
- * scif_connect() - Initiate a connection on a port
- * @epd: endpoint descriptor
- * @dst: global id of port to which to connect
- *
- * The scif_connect() function requests the connection of endpoint epd to remote
- * port dst. If the connection is successful, a peer endpoint, bound to dst, is
- * created on node dst.node. On successful return, the connection is complete.
- *
- * If the endpoint epd has not already been bound to a port, scif_connect()
- * will bind it to an unused local port.
- *
- * A connection is terminated when an endpoint of the connection is closed,
- * either explicitly by scif_close(), or when a process that owns one of the
- * endpoints of the connection is terminated.
- *
- * In user space, scif_connect() supports an asynchronous connection mode
- * if the application has set the O_NONBLOCK flag on the endpoint via the
- * fcntl() system call. Setting this flag will result in the calling process
- * not to wait during scif_connect().
- *
- * Return:
- * Upon successful completion, scif_connect() returns the port ID to which the
- * endpoint, epd, is bound; otherwise in user mode -1 is returned and errno is
- * set to indicate the error; in kernel mode the negative of one of the
- * following errors is returned.
- *
- * Errors:
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- * ECONNREFUSED - The destination was not listening for connections or refused
- * the connection request
- * EINVAL - dst.port is not a valid port ID
- * EISCONN - The endpoint is already connected
- * ENOMEM - No buffer space is available
- * ENODEV - The destination node does not exist, or the node is lost or existed,
- * but is not currently in the network since it may have crashed
- * ENOSPC - No port number available for assignment
- * EOPNOTSUPP - The endpoint is listening and cannot be connected
- */
-int scif_connect(scif_epd_t epd, struct scif_port_id *dst);
-
-/**
- * scif_accept() - Accept a connection on an endpoint
- * @epd: endpoint descriptor
- * @peer: global id of port to which connected
- * @newepd: new connected endpoint descriptor
- * @flags: flags
- *
- * The scif_accept() call extracts the first connection request from the queue
- * of pending connections for the port on which epd is listening. scif_accept()
- * creates a new endpoint, bound to the same port as epd, and allocates a new
- * SCIF endpoint descriptor, returned in newepd, for the endpoint. The new
- * endpoint is connected to the endpoint through which the connection was
- * requested. epd is unaffected by this call, and remains in the listening
- * state.
- *
- * On successful return, peer holds the global port identifier (node id and
- * local port number) of the port which requested the connection.
- *
- * A connection is terminated when an endpoint of the connection is closed,
- * either explicitly by scif_close(), or when a process that owns one of the
- * endpoints of the connection is terminated.
- *
- * The number of connections that can (subsequently) be accepted on epd is only
- * limited by system resources (memory).
- *
- * The flags argument is formed by OR'ing together zero or more of the
- * following values.
- * SCIF_ACCEPT_SYNC - block until a connection request is presented. If
- * SCIF_ACCEPT_SYNC is not in flags, and no pending
- * connections are present on the queue, scif_accept()
- * fails with an EAGAIN error
- *
- * In user mode, the select() and poll() functions can be used to determine
- * when there is a connection request. In kernel mode, the scif_poll()
- * function may be used for this purpose. A readable event will be delivered
- * when a connection is requested.
- *
- * Return:
- * Upon successful completion, scif_accept() returns 0; otherwise in user mode
- * -1 is returned and errno is set to indicate the error; in kernel mode the
- * negative of one of the following errors is returned.
- *
- * Errors:
- * EAGAIN - SCIF_ACCEPT_SYNC is not set and no connections are present to be
- * accepted or SCIF_ACCEPT_SYNC is not set and remote node failed to complete
- * its connection request
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- * EINTR - Interrupted function
- * EINVAL - epd is not a listening endpoint, or flags is invalid, or peer is
- * NULL, or newepd is NULL
- * ENODEV - The requesting node is lost or existed, but is not currently in the
- * network since it may have crashed
- * ENOMEM - Not enough space
- * ENOENT - Secondary part of epd registration failed
- */
-int scif_accept(scif_epd_t epd, struct scif_port_id *peer, scif_epd_t
- *newepd, int flags);
-
-/**
- * scif_close() - Close an endpoint
- * @epd: endpoint descriptor
- *
- * scif_close() closes an endpoint and performs necessary teardown of
- * facilities associated with that endpoint.
- *
- * If epd is a listening endpoint then it will no longer accept connection
- * requests on the port to which it is bound. Any pending connection requests
- * are rejected.
- *
- * If epd is a connected endpoint, then its peer endpoint is also closed. RMAs
- * which are in-process through epd or its peer endpoint will complete before
- * scif_close() returns. Registered windows of the local and peer endpoints are
- * released as if scif_unregister() was called against each window.
- *
- * Closing a SCIF endpoint does not affect local registered memory mapped by
- * a SCIF endpoint on a remote node. The local memory remains mapped by the peer
- * SCIF endpoint explicitly removed by calling munmap(..) by the peer.
- *
- * If the peer endpoint's receive queue is not empty at the time that epd is
- * closed, then the peer endpoint can be passed as the endpoint parameter to
- * scif_recv() until the receive queue is empty.
- *
- * epd is freed and may no longer be accessed.
- *
- * Return:
- * Upon successful completion, scif_close() returns 0; otherwise in user mode
- * -1 is returned and errno is set to indicate the error; in kernel mode the
- * negative of one of the following errors is returned.
- *
- * Errors:
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- */
-int scif_close(scif_epd_t epd);
-
-/**
- * scif_send() - Send a message
- * @epd: endpoint descriptor
- * @msg: message buffer address
- * @len: message length
- * @flags: blocking mode flags
- *
- * scif_send() sends data to the peer of endpoint epd. Up to len bytes of data
- * are copied from memory starting at address msg. On successful execution the
- * return value of scif_send() is the number of bytes that were sent, and is
- * zero if no bytes were sent because len was zero. scif_send() may be called
- * only when the endpoint is in a connected state.
- *
- * If a scif_send() call is non-blocking, then it sends only those bytes which
- * can be sent without waiting, up to a maximum of len bytes.
- *
- * If a scif_send() call is blocking, then it normally returns after sending
- * all len bytes. If a blocking call is interrupted or the connection is
- * reset, the call is considered successful if some bytes were sent or len is
- * zero, otherwise the call is considered unsuccessful.
- *
- * In user mode, the select() and poll() functions can be used to determine
- * when the send queue is not full. In kernel mode, the scif_poll() function
- * may be used for this purpose.
- *
- * It is recommended that scif_send()/scif_recv() only be used for short
- * control-type message communication between SCIF endpoints. The SCIF RMA
- * APIs are expected to provide better performance for transfer sizes of
- * 1024 bytes or longer for the current MIC hardware and software
- * implementation.
- *
- * scif_send() will block until the entire message is sent if SCIF_SEND_BLOCK
- * is passed as the flags argument.
- *
- * Return:
- * Upon successful completion, scif_send() returns the number of bytes sent;
- * otherwise in user mode -1 is returned and errno is set to indicate the
- * error; in kernel mode the negative of one of the following errors is
- * returned.
- *
- * Errors:
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- * ECONNRESET - Connection reset by peer
- * EINVAL - flags is invalid, or len is negative
- * ENODEV - The remote node is lost or existed, but is not currently in the
- * network since it may have crashed
- * ENOMEM - Not enough space
- * ENOTCONN - The endpoint is not connected
- */
-int scif_send(scif_epd_t epd, void *msg, int len, int flags);
-
-/**
- * scif_recv() - Receive a message
- * @epd: endpoint descriptor
- * @msg: message buffer address
- * @len: message buffer length
- * @flags: blocking mode flags
- *
- * scif_recv() receives data from the peer of endpoint epd. Up to len bytes of
- * data are copied to memory starting at address msg. On successful execution
- * the return value of scif_recv() is the number of bytes that were received,
- * and is zero if no bytes were received because len was zero. scif_recv() may
- * be called only when the endpoint is in a connected state.
- *
- * If a scif_recv() call is non-blocking, then it receives only those bytes
- * which can be received without waiting, up to a maximum of len bytes.
- *
- * If a scif_recv() call is blocking, then it normally returns after receiving
- * all len bytes. If the blocking call was interrupted due to a disconnection,
- * subsequent calls to scif_recv() will copy all bytes received upto the point
- * of disconnection.
- *
- * In user mode, the select() and poll() functions can be used to determine
- * when data is available to be received. In kernel mode, the scif_poll()
- * function may be used for this purpose.
- *
- * It is recommended that scif_send()/scif_recv() only be used for short
- * control-type message communication between SCIF endpoints. The SCIF RMA
- * APIs are expected to provide better performance for transfer sizes of
- * 1024 bytes or longer for the current MIC hardware and software
- * implementation.
- *
- * scif_recv() will block until the entire message is received if
- * SCIF_RECV_BLOCK is passed as the flags argument.
- *
- * Return:
- * Upon successful completion, scif_recv() returns the number of bytes
- * received; otherwise in user mode -1 is returned and errno is set to
- * indicate the error; in kernel mode the negative of one of the following
- * errors is returned.
- *
- * Errors:
- * EAGAIN - The destination node is returning from a low power state
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- * ECONNRESET - Connection reset by peer
- * EINVAL - flags is invalid, or len is negative
- * ENODEV - The remote node is lost or existed, but is not currently in the
- * network since it may have crashed
- * ENOMEM - Not enough space
- * ENOTCONN - The endpoint is not connected
- */
-int scif_recv(scif_epd_t epd, void *msg, int len, int flags);
-
-/**
- * scif_register() - Mark a memory region for remote access.
- * @epd: endpoint descriptor
- * @addr: starting virtual address
- * @len: length of range
- * @offset: offset of window
- * @prot_flags: read/write protection flags
- * @map_flags: mapping flags
- *
- * The scif_register() function opens a window, a range of whole pages of the
- * registered address space of the endpoint epd, starting at offset po and
- * continuing for len bytes. The value of po, further described below, is a
- * function of the parameters offset and len, and the value of map_flags. Each
- * page of the window represents the physical memory page which backs the
- * corresponding page of the range of virtual address pages starting at addr
- * and continuing for len bytes. addr and len are constrained to be multiples
- * of the page size. A successful scif_register() call returns po.
- *
- * When SCIF_MAP_FIXED is set in the map_flags argument, po will be offset
- * exactly, and offset is constrained to be a multiple of the page size. The
- * mapping established by scif_register() will not replace any existing
- * registration; an error is returned if any page within the range [offset,
- * offset + len - 1] intersects an existing window.
- *
- * When SCIF_MAP_FIXED is not set, the implementation uses offset in an
- * implementation-defined manner to arrive at po. The po value so chosen will
- * be an area of the registered address space that the implementation deems
- * suitable for a mapping of len bytes. An offset value of 0 is interpreted as
- * granting the implementation complete freedom in selecting po, subject to
- * constraints described below. A non-zero value of offset is taken to be a
- * suggestion of an offset near which the mapping should be placed. When the
- * implementation selects a value for po, it does not replace any extant
- * window. In all cases, po will be a multiple of the page size.
- *
- * The physical pages which are so represented by a window are available for
- * access in calls to mmap(), scif_readfrom(), scif_writeto(),
- * scif_vreadfrom(), and scif_vwriteto(). While a window is registered, the
- * physical pages represented by the window will not be reused by the memory
- * subsystem for any other purpose. Note that the same physical page may be
- * represented by multiple windows.
- *
- * Subsequent operations which change the memory pages to which virtual
- * addresses are mapped (such as mmap(), munmap()) have no effect on
- * existing window.
- *
- * If the process will fork(), it is recommended that the registered
- * virtual address range be marked with MADV_DONTFORK. Doing so will prevent
- * problems due to copy-on-write semantics.
- *
- * The prot_flags argument is formed by OR'ing together one or more of the
- * following values.
- * SCIF_PROT_READ - allow read operations from the window
- * SCIF_PROT_WRITE - allow write operations to the window
- *
- * Return:
- * Upon successful completion, scif_register() returns the offset at which the
- * mapping was placed (po); otherwise in user mode SCIF_REGISTER_FAILED (that
- * is (off_t *)-1) is returned and errno is set to indicate the error; in
- * kernel mode the negative of one of the following errors is returned.
- *
- * Errors:
- * EADDRINUSE - SCIF_MAP_FIXED is set in map_flags, and pages in the range
- * [offset, offset + len -1] are already registered
- * EAGAIN - The mapping could not be performed due to lack of resources
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- * ECONNRESET - Connection reset by peer
- * EINVAL - map_flags is invalid, or prot_flags is invalid, or SCIF_MAP_FIXED is
- * set in flags, and offset is not a multiple of the page size, or addr is not a
- * multiple of the page size, or len is not a multiple of the page size, or is
- * 0, or offset is negative
- * ENODEV - The remote node is lost or existed, but is not currently in the
- * network since it may have crashed
- * ENOMEM - Not enough space
- * ENOTCONN -The endpoint is not connected
- */
-off_t scif_register(scif_epd_t epd, void *addr, size_t len, off_t offset,
- int prot_flags, int map_flags);
-
-/**
- * scif_unregister() - Mark a memory region for remote access.
- * @epd: endpoint descriptor
- * @offset: start of range to unregister
- * @len: length of range to unregister
- *
- * The scif_unregister() function closes those previously registered windows
- * which are entirely within the range [offset, offset + len - 1]. It is an
- * error to specify a range which intersects only a subrange of a window.
- *
- * On a successful return, pages within the window may no longer be specified
- * in calls to mmap(), scif_readfrom(), scif_writeto(), scif_vreadfrom(),
- * scif_vwriteto(), scif_get_pages, and scif_fence_signal(). The window,
- * however, continues to exist until all previous references against it are
- * removed. A window is referenced if there is a mapping to it created by
- * mmap(), or if scif_get_pages() was called against the window
- * (and the pages have not been returned via scif_put_pages()). A window is
- * also referenced while an RMA, in which some range of the window is a source
- * or destination, is in progress. Finally a window is referenced while some
- * offset in that window was specified to scif_fence_signal(), and the RMAs
- * marked by that call to scif_fence_signal() have not completed. While a
- * window is in this state, its registered address space pages are not
- * available for use in a new registered window.
- *
- * When all such references to the window have been removed, its references to
- * all the physical pages which it represents are removed. Similarly, the
- * registered address space pages of the window become available for
- * registration in a new window.
- *
- * Return:
- * Upon successful completion, scif_unregister() returns 0; otherwise in user
- * mode -1 is returned and errno is set to indicate the error; in kernel mode
- * the negative of one of the following errors is returned. In the event of an
- * error, no windows are unregistered.
- *
- * Errors:
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- * ECONNRESET - Connection reset by peer
- * EINVAL - the range [offset, offset + len - 1] intersects a subrange of a
- * window, or offset is negative
- * ENODEV - The remote node is lost or existed, but is not currently in the
- * network since it may have crashed
- * ENOTCONN - The endpoint is not connected
- * ENXIO - Offsets in the range [offset, offset + len - 1] are invalid for the
- * registered address space of epd
- */
-int scif_unregister(scif_epd_t epd, off_t offset, size_t len);
-
-/**
- * scif_readfrom() - Copy from a remote address space
- * @epd: endpoint descriptor
- * @loffset: offset in local registered address space to
- * which to copy
- * @len: length of range to copy
- * @roffset: offset in remote registered address space
- * from which to copy
- * @rma_flags: transfer mode flags
- *
- * scif_readfrom() copies len bytes from the remote registered address space of
- * the peer of endpoint epd, starting at the offset roffset to the local
- * registered address space of epd, starting at the offset loffset.
- *
- * Each of the specified ranges [loffset, loffset + len - 1] and [roffset,
- * roffset + len - 1] must be within some registered window or windows of the
- * local and remote nodes. A range may intersect multiple registered windows,
- * but only if those windows are contiguous in the registered address space.
- *
- * If rma_flags includes SCIF_RMA_USECPU, then the data is copied using
- * programmed read/writes. Otherwise the data is copied using DMA. If rma_-
- * flags includes SCIF_RMA_SYNC, then scif_readfrom() will return after the
- * transfer is complete. Otherwise, the transfer may be performed asynchron-
- * ously. The order in which any two asynchronous RMA operations complete
- * is non-deterministic. The synchronization functions, scif_fence_mark()/
- * scif_fence_wait() and scif_fence_signal(), can be used to synchronize to
- * the completion of asynchronous RMA operations on the same endpoint.
- *
- * The DMA transfer of individual bytes is not guaranteed to complete in
- * address order. If rma_flags includes SCIF_RMA_ORDERED, then the last
- * cacheline or partial cacheline of the source range will become visible on
- * the destination node after all other transferred data in the source
- * range has become visible on the destination node.
- *
- * The optimal DMA performance will likely be realized if both
- * loffset and roffset are cacheline aligned (are a multiple of 64). Lower
- * performance will likely be realized if loffset and roffset are not
- * cacheline aligned but are separated by some multiple of 64. The lowest level
- * of performance is likely if loffset and roffset are not separated by a
- * multiple of 64.
- *
- * The rma_flags argument is formed by ORing together zero or more of the
- * following values.
- * SCIF_RMA_USECPU - perform the transfer using the CPU, otherwise use the DMA
- * engine.
- * SCIF_RMA_SYNC - perform the transfer synchronously, returning after the
- * transfer has completed. Passing this flag results in the
- * current implementation busy waiting and consuming CPU cycles
- * while the DMA transfer is in progress for best performance by
- * avoiding the interrupt latency.
- * SCIF_RMA_ORDERED - ensure that the last cacheline or partial cacheline of
- * the source range becomes visible on the destination node
- * after all other transferred data in the source range has
- * become visible on the destination
- *
- * Return:
- * Upon successful completion, scif_readfrom() returns 0; otherwise in user
- * mode -1 is returned and errno is set to indicate the error; in kernel mode
- * the negative of one of the following errors is returned.
- *
- * Errors:
- * EACCESS - Attempt to write to a read-only range
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- * ECONNRESET - Connection reset by peer
- * EINVAL - rma_flags is invalid
- * ENODEV - The remote node is lost or existed, but is not currently in the
- * network since it may have crashed
- * ENOTCONN - The endpoint is not connected
- * ENXIO - The range [loffset, loffset + len - 1] is invalid for the registered
- * address space of epd, or, The range [roffset, roffset + len - 1] is invalid
- * for the registered address space of the peer of epd, or loffset or roffset
- * is negative
- */
-int scif_readfrom(scif_epd_t epd, off_t loffset, size_t len, off_t
- roffset, int rma_flags);
-
-/**
- * scif_writeto() - Copy to a remote address space
- * @epd: endpoint descriptor
- * @loffset: offset in local registered address space
- * from which to copy
- * @len: length of range to copy
- * @roffset: offset in remote registered address space to
- * which to copy
- * @rma_flags: transfer mode flags
- *
- * scif_writeto() copies len bytes from the local registered address space of
- * epd, starting at the offset loffset to the remote registered address space
- * of the peer of endpoint epd, starting at the offset roffset.
- *
- * Each of the specified ranges [loffset, loffset + len - 1] and [roffset,
- * roffset + len - 1] must be within some registered window or windows of the
- * local and remote nodes. A range may intersect multiple registered windows,
- * but only if those windows are contiguous in the registered address space.
- *
- * If rma_flags includes SCIF_RMA_USECPU, then the data is copied using
- * programmed read/writes. Otherwise the data is copied using DMA. If rma_-
- * flags includes SCIF_RMA_SYNC, then scif_writeto() will return after the
- * transfer is complete. Otherwise, the transfer may be performed asynchron-
- * ously. The order in which any two asynchronous RMA operations complete
- * is non-deterministic. The synchronization functions, scif_fence_mark()/
- * scif_fence_wait() and scif_fence_signal(), can be used to synchronize to
- * the completion of asynchronous RMA operations on the same endpoint.
- *
- * The DMA transfer of individual bytes is not guaranteed to complete in
- * address order. If rma_flags includes SCIF_RMA_ORDERED, then the last
- * cacheline or partial cacheline of the source range will become visible on
- * the destination node after all other transferred data in the source
- * range has become visible on the destination node.
- *
- * The optimal DMA performance will likely be realized if both
- * loffset and roffset are cacheline aligned (are a multiple of 64). Lower
- * performance will likely be realized if loffset and roffset are not cacheline
- * aligned but are separated by some multiple of 64. The lowest level of
- * performance is likely if loffset and roffset are not separated by a multiple
- * of 64.
- *
- * The rma_flags argument is formed by ORing together zero or more of the
- * following values.
- * SCIF_RMA_USECPU - perform the transfer using the CPU, otherwise use the DMA
- * engine.
- * SCIF_RMA_SYNC - perform the transfer synchronously, returning after the
- * transfer has completed. Passing this flag results in the
- * current implementation busy waiting and consuming CPU cycles
- * while the DMA transfer is in progress for best performance by
- * avoiding the interrupt latency.
- * SCIF_RMA_ORDERED - ensure that the last cacheline or partial cacheline of
- * the source range becomes visible on the destination node
- * after all other transferred data in the source range has
- * become visible on the destination
- *
- * Return:
- * Upon successful completion, scif_readfrom() returns 0; otherwise in user
- * mode -1 is returned and errno is set to indicate the error; in kernel mode
- * the negative of one of the following errors is returned.
- *
- * Errors:
- * EACCESS - Attempt to write to a read-only range
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- * ECONNRESET - Connection reset by peer
- * EINVAL - rma_flags is invalid
- * ENODEV - The remote node is lost or existed, but is not currently in the
- * network since it may have crashed
- * ENOTCONN - The endpoint is not connected
- * ENXIO - The range [loffset, loffset + len - 1] is invalid for the registered
- * address space of epd, or, The range [roffset , roffset + len -1] is invalid
- * for the registered address space of the peer of epd, or loffset or roffset
- * is negative
- */
-int scif_writeto(scif_epd_t epd, off_t loffset, size_t len, off_t
- roffset, int rma_flags);
-
-/**
- * scif_vreadfrom() - Copy from a remote address space
- * @epd: endpoint descriptor
- * @addr: address to which to copy
- * @len: length of range to copy
- * @roffset: offset in remote registered address space
- * from which to copy
- * @rma_flags: transfer mode flags
- *
- * scif_vreadfrom() copies len bytes from the remote registered address
- * space of the peer of endpoint epd, starting at the offset roffset, to local
- * memory, starting at addr.
- *
- * The specified range [roffset, roffset + len - 1] must be within some
- * registered window or windows of the remote nodes. The range may
- * intersect multiple registered windows, but only if those windows are
- * contiguous in the registered address space.
- *
- * If rma_flags includes SCIF_RMA_USECPU, then the data is copied using
- * programmed read/writes. Otherwise the data is copied using DMA. If rma_-
- * flags includes SCIF_RMA_SYNC, then scif_vreadfrom() will return after the
- * transfer is complete. Otherwise, the transfer may be performed asynchron-
- * ously. The order in which any two asynchronous RMA operations complete
- * is non-deterministic. The synchronization functions, scif_fence_mark()/
- * scif_fence_wait() and scif_fence_signal(), can be used to synchronize to
- * the completion of asynchronous RMA operations on the same endpoint.
- *
- * The DMA transfer of individual bytes is not guaranteed to complete in
- * address order. If rma_flags includes SCIF_RMA_ORDERED, then the last
- * cacheline or partial cacheline of the source range will become visible on
- * the destination node after all other transferred data in the source
- * range has become visible on the destination node.
- *
- * If rma_flags includes SCIF_RMA_USECACHE, then the physical pages which back
- * the specified local memory range may be remain in a pinned state even after
- * the specified transfer completes. This may reduce overhead if some or all of
- * the same virtual address range is referenced in a subsequent call of
- * scif_vreadfrom() or scif_vwriteto().
- *
- * The optimal DMA performance will likely be realized if both
- * addr and roffset are cacheline aligned (are a multiple of 64). Lower
- * performance will likely be realized if addr and roffset are not
- * cacheline aligned but are separated by some multiple of 64. The lowest level
- * of performance is likely if addr and roffset are not separated by a
- * multiple of 64.
- *
- * The rma_flags argument is formed by ORing together zero or more of the
- * following values.
- * SCIF_RMA_USECPU - perform the transfer using the CPU, otherwise use the DMA
- * engine.
- * SCIF_RMA_USECACHE - enable registration caching
- * SCIF_RMA_SYNC - perform the transfer synchronously, returning after the
- * transfer has completed. Passing this flag results in the
- * current implementation busy waiting and consuming CPU cycles
- * while the DMA transfer is in progress for best performance by
- * avoiding the interrupt latency.
- * SCIF_RMA_ORDERED - ensure that the last cacheline or partial cacheline of
- * the source range becomes visible on the destination node
- * after all other transferred data in the source range has
- * become visible on the destination
- *
- * Return:
- * Upon successful completion, scif_vreadfrom() returns 0; otherwise in user
- * mode -1 is returned and errno is set to indicate the error; in kernel mode
- * the negative of one of the following errors is returned.
- *
- * Errors:
- * EACCESS - Attempt to write to a read-only range
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- * ECONNRESET - Connection reset by peer
- * EINVAL - rma_flags is invalid
- * ENODEV - The remote node is lost or existed, but is not currently in the
- * network since it may have crashed
- * ENOTCONN - The endpoint is not connected
- * ENXIO - Offsets in the range [roffset, roffset + len - 1] are invalid for the
- * registered address space of epd
- */
-int scif_vreadfrom(scif_epd_t epd, void *addr, size_t len, off_t roffset,
- int rma_flags);
-
-/**
- * scif_vwriteto() - Copy to a remote address space
- * @epd: endpoint descriptor
- * @addr: address from which to copy
- * @len: length of range to copy
- * @roffset: offset in remote registered address space to
- * which to copy
- * @rma_flags: transfer mode flags
- *
- * scif_vwriteto() copies len bytes from the local memory, starting at addr, to
- * the remote registered address space of the peer of endpoint epd, starting at
- * the offset roffset.
- *
- * The specified range [roffset, roffset + len - 1] must be within some
- * registered window or windows of the remote nodes. The range may intersect
- * multiple registered windows, but only if those windows are contiguous in the
- * registered address space.
- *
- * If rma_flags includes SCIF_RMA_USECPU, then the data is copied using
- * programmed read/writes. Otherwise the data is copied using DMA. If rma_-
- * flags includes SCIF_RMA_SYNC, then scif_vwriteto() will return after the
- * transfer is complete. Otherwise, the transfer may be performed asynchron-
- * ously. The order in which any two asynchronous RMA operations complete
- * is non-deterministic. The synchronization functions, scif_fence_mark()/
- * scif_fence_wait() and scif_fence_signal(), can be used to synchronize to
- * the completion of asynchronous RMA operations on the same endpoint.
- *
- * The DMA transfer of individual bytes is not guaranteed to complete in
- * address order. If rma_flags includes SCIF_RMA_ORDERED, then the last
- * cacheline or partial cacheline of the source range will become visible on
- * the destination node after all other transferred data in the source
- * range has become visible on the destination node.
- *
- * If rma_flags includes SCIF_RMA_USECACHE, then the physical pages which back
- * the specified local memory range may be remain in a pinned state even after
- * the specified transfer completes. This may reduce overhead if some or all of
- * the same virtual address range is referenced in a subsequent call of
- * scif_vreadfrom() or scif_vwriteto().
- *
- * The optimal DMA performance will likely be realized if both
- * addr and offset are cacheline aligned (are a multiple of 64). Lower
- * performance will likely be realized if addr and offset are not cacheline
- * aligned but are separated by some multiple of 64. The lowest level of
- * performance is likely if addr and offset are not separated by a multiple of
- * 64.
- *
- * The rma_flags argument is formed by ORing together zero or more of the
- * following values.
- * SCIF_RMA_USECPU - perform the transfer using the CPU, otherwise use the DMA
- * engine.
- * SCIF_RMA_USECACHE - allow registration caching
- * SCIF_RMA_SYNC - perform the transfer synchronously, returning after the
- * transfer has completed. Passing this flag results in the
- * current implementation busy waiting and consuming CPU cycles
- * while the DMA transfer is in progress for best performance by
- * avoiding the interrupt latency.
- * SCIF_RMA_ORDERED - ensure that the last cacheline or partial cacheline of
- * the source range becomes visible on the destination node
- * after all other transferred data in the source range has
- * become visible on the destination
- *
- * Return:
- * Upon successful completion, scif_vwriteto() returns 0; otherwise in user
- * mode -1 is returned and errno is set to indicate the error; in kernel mode
- * the negative of one of the following errors is returned.
- *
- * Errors:
- * EACCESS - Attempt to write to a read-only range
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- * ECONNRESET - Connection reset by peer
- * EINVAL - rma_flags is invalid
- * ENODEV - The remote node is lost or existed, but is not currently in the
- * network since it may have crashed
- * ENOTCONN - The endpoint is not connected
- * ENXIO - Offsets in the range [roffset, roffset + len - 1] are invalid for the
- * registered address space of epd
- */
-int scif_vwriteto(scif_epd_t epd, void *addr, size_t len, off_t roffset,
- int rma_flags);
-
-/**
- * scif_fence_mark() - Mark previously issued RMAs
- * @epd: endpoint descriptor
- * @flags: control flags
- * @mark: marked value returned as output.
- *
- * scif_fence_mark() returns after marking the current set of all uncompleted
- * RMAs initiated through the endpoint epd or the current set of all
- * uncompleted RMAs initiated through the peer of endpoint epd. The RMAs are
- * marked with a value returned at mark. The application may subsequently call
- * scif_fence_wait(), passing the value returned at mark, to await completion
- * of all RMAs so marked.
- *
- * The flags argument has exactly one of the following values.
- * SCIF_FENCE_INIT_SELF - RMA operations initiated through endpoint
- * epd are marked
- * SCIF_FENCE_INIT_PEER - RMA operations initiated through the peer
- * of endpoint epd are marked
- *
- * Return:
- * Upon successful completion, scif_fence_mark() returns 0; otherwise in user
- * mode -1 is returned and errno is set to indicate the error; in kernel mode
- * the negative of one of the following errors is returned.
- *
- * Errors:
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- * ECONNRESET - Connection reset by peer
- * EINVAL - flags is invalid
- * ENODEV - The remote node is lost or existed, but is not currently in the
- * network since it may have crashed
- * ENOTCONN - The endpoint is not connected
- * ENOMEM - Insufficient kernel memory was available
- */
-int scif_fence_mark(scif_epd_t epd, int flags, int *mark);
-
-/**
- * scif_fence_wait() - Wait for completion of marked RMAs
- * @epd: endpoint descriptor
- * @mark: mark request
- *
- * scif_fence_wait() returns after all RMAs marked with mark have completed.
- * The value passed in mark must have been obtained in a previous call to
- * scif_fence_mark().
- *
- * Return:
- * Upon successful completion, scif_fence_wait() returns 0; otherwise in user
- * mode -1 is returned and errno is set to indicate the error; in kernel mode
- * the negative of one of the following errors is returned.
- *
- * Errors:
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- * ECONNRESET - Connection reset by peer
- * ENODEV - The remote node is lost or existed, but is not currently in the
- * network since it may have crashed
- * ENOTCONN - The endpoint is not connected
- * ENOMEM - Insufficient kernel memory was available
- */
-int scif_fence_wait(scif_epd_t epd, int mark);
-
-/**
- * scif_fence_signal() - Request a memory update on completion of RMAs
- * @epd: endpoint descriptor
- * @loff: local offset
- * @lval: local value to write to loffset
- * @roff: remote offset
- * @rval: remote value to write to roffset
- * @flags: flags
- *
- * scif_fence_signal() returns after marking the current set of all uncompleted
- * RMAs initiated through the endpoint epd or marking the current set of all
- * uncompleted RMAs initiated through the peer of endpoint epd.
- *
- * If flags includes SCIF_SIGNAL_LOCAL, then on completion of the RMAs in the
- * marked set, lval is written to memory at the address corresponding to offset
- * loff in the local registered address space of epd. loff must be within a
- * registered window. If flags includes SCIF_SIGNAL_REMOTE, then on completion
- * of the RMAs in the marked set, rval is written to memory at the address
- * corresponding to offset roff in the remote registered address space of epd.
- * roff must be within a remote registered window of the peer of epd. Note
- * that any specified offset must be DWORD (4 byte / 32 bit) aligned.
- *
- * The flags argument is formed by OR'ing together the following.
- * Exactly one of the following values.
- * SCIF_FENCE_INIT_SELF - RMA operations initiated through endpoint
- * epd are marked
- * SCIF_FENCE_INIT_PEER - RMA operations initiated through the peer
- * of endpoint epd are marked
- * One or more of the following values.
- * SCIF_SIGNAL_LOCAL - On completion of the marked set of RMAs, write lval to
- * memory at the address corresponding to offset loff in the local
- * registered address space of epd.
- * SCIF_SIGNAL_REMOTE - On completion of the marked set of RMAs, write rval to
- * memory at the address corresponding to offset roff in the remote
- * registered address space of epd.
- *
- * Return:
- * Upon successful completion, scif_fence_signal() returns 0; otherwise in
- * user mode -1 is returned and errno is set to indicate the error; in kernel
- * mode the negative of one of the following errors is returned.
- *
- * Errors:
- * EBADF, ENOTTY - epd is not a valid endpoint descriptor
- * ECONNRESET - Connection reset by peer
- * EINVAL - flags is invalid, or loff or roff are not DWORD aligned
- * ENODEV - The remote node is lost or existed, but is not currently in the
- * network since it may have crashed
- * ENOTCONN - The endpoint is not connected
- * ENXIO - loff is invalid for the registered address of epd, or roff is invalid
- * for the registered address space, of the peer of epd
- */
-int scif_fence_signal(scif_epd_t epd, off_t loff, u64 lval, off_t roff,
- u64 rval, int flags);
-
-/**
- * scif_get_node_ids() - Return information about online nodes
- * @nodes: array in which to return online node IDs
- * @len: number of entries in the nodes array
- * @self: address to place the node ID of the local node
- *
- * scif_get_node_ids() fills in the nodes array with up to len node IDs of the
- * nodes in the SCIF network. If there is not enough space in nodes, as
- * indicated by the len parameter, only len node IDs are returned in nodes. The
- * return value of scif_get_node_ids() is the total number of nodes currently in
- * the SCIF network. By checking the return value against the len parameter,
- * the user may determine if enough space for nodes was allocated.
- *
- * The node ID of the local node is returned at self.
- *
- * Return:
- * Upon successful completion, scif_get_node_ids() returns the actual number of
- * online nodes in the SCIF network including 'self'; otherwise in user mode
- * -1 is returned and errno is set to indicate the error; in kernel mode no
- * errors are returned.
- */
-int scif_get_node_ids(u16 *nodes, int len, u16 *self);
-
-/**
- * scif_pin_pages() - Pin a set of pages
- * @addr: Virtual address of range to pin
- * @len: Length of range to pin
- * @prot_flags: Page protection flags
- * @map_flags: Page classification flags
- * @pinned_pages: Handle to pinned pages
- *
- * scif_pin_pages() pins (locks in physical memory) the physical pages which
- * back the range of virtual address pages starting at addr and continuing for
- * len bytes. addr and len are constrained to be multiples of the page size. A
- * successful scif_pin_pages() call returns a handle to pinned_pages which may
- * be used in subsequent calls to scif_register_pinned_pages().
- *
- * The pages will remain pinned as long as there is a reference against the
- * scif_pinned_pages_t value returned by scif_pin_pages() and until
- * scif_unpin_pages() is called, passing the scif_pinned_pages_t value. A
- * reference is added to a scif_pinned_pages_t value each time a window is
- * created by calling scif_register_pinned_pages() and passing the
- * scif_pinned_pages_t value. A reference is removed from a
- * scif_pinned_pages_t value each time such a window is deleted.
- *
- * Subsequent operations which change the memory pages to which virtual
- * addresses are mapped (such as mmap(), munmap()) have no effect on the
- * scif_pinned_pages_t value or windows created against it.
- *
- * If the process will fork(), it is recommended that the registered
- * virtual address range be marked with MADV_DONTFORK. Doing so will prevent
- * problems due to copy-on-write semantics.
- *
- * The prot_flags argument is formed by OR'ing together one or more of the
- * following values.
- * SCIF_PROT_READ - allow read operations against the pages
- * SCIF_PROT_WRITE - allow write operations against the pages
- * The map_flags argument can be set as SCIF_MAP_KERNEL to interpret addr as a
- * kernel space address. By default, addr is interpreted as a user space
- * address.
- *
- * Return:
- * Upon successful completion, scif_pin_pages() returns 0; otherwise the
- * negative of one of the following errors is returned.
- *
- * Errors:
- * EINVAL - prot_flags is invalid, map_flags is invalid, or offset is negative
- * ENOMEM - Not enough space
- */
-int scif_pin_pages(void *addr, size_t len, int prot_flags, int map_flags,
- scif_pinned_pages_t *pinned_pages);
-
-/**
- * scif_unpin_pages() - Unpin a set of pages
- * @pinned_pages: Handle to pinned pages to be unpinned
- *
- * scif_unpin_pages() prevents scif_register_pinned_pages() from registering new
- * windows against pinned_pages. The physical pages represented by pinned_pages
- * will remain pinned until all windows previously registered against
- * pinned_pages are deleted (the window is scif_unregister()'d and all
- * references to the window are removed (see scif_unregister()).
- *
- * pinned_pages must have been obtain from a previous call to scif_pin_pages().
- * After calling scif_unpin_pages(), it is an error to pass pinned_pages to
- * scif_register_pinned_pages().
- *
- * Return:
- * Upon successful completion, scif_unpin_pages() returns 0; otherwise the
- * negative of one of the following errors is returned.
- *
- * Errors:
- * EINVAL - pinned_pages is not valid
- */
-int scif_unpin_pages(scif_pinned_pages_t pinned_pages);
-
-/**
- * scif_register_pinned_pages() - Mark a memory region for remote access.
- * @epd: endpoint descriptor
- * @pinned_pages: Handle to pinned pages
- * @offset: Registered address space offset
- * @map_flags: Flags which control where pages are mapped
- *
- * The scif_register_pinned_pages() function opens a window, a range of whole
- * pages of the registered address space of the endpoint epd, starting at
- * offset po. The value of po, further described below, is a function of the
- * parameters offset and pinned_pages, and the value of map_flags. Each page of
- * the window represents a corresponding physical memory page of the range
- * represented by pinned_pages; the length of the window is the same as the
- * length of range represented by pinned_pages. A successful
- * scif_register_pinned_pages() call returns po as the return value.
- *
- * When SCIF_MAP_FIXED is set in the map_flags argument, po will be offset
- * exactly, and offset is constrained to be a multiple of the page size. The
- * mapping established by scif_register_pinned_pages() will not replace any
- * existing registration; an error is returned if any page of the new window
- * would intersect an existing window.
- *
- * When SCIF_MAP_FIXED is not set, the implementation uses offset in an
- * implementation-defined manner to arrive at po. The po so chosen will be an
- * area of the registered address space that the implementation deems suitable
- * for a mapping of the required size. An offset value of 0 is interpreted as
- * granting the implementation complete freedom in selecting po, subject to
- * constraints described below. A non-zero value of offset is taken to be a
- * suggestion of an offset near which the mapping should be placed. When the
- * implementation selects a value for po, it does not replace any extant
- * window. In all cases, po will be a multiple of the page size.
- *
- * The physical pages which are so represented by a window are available for
- * access in calls to scif_get_pages(), scif_readfrom(), scif_writeto(),
- * scif_vreadfrom(), and scif_vwriteto(). While a window is registered, the
- * physical pages represented by the window will not be reused by the memory
- * subsystem for any other purpose. Note that the same physical page may be
- * represented by multiple windows.
- *
- * Windows created by scif_register_pinned_pages() are unregistered by
- * scif_unregister().
- *
- * The map_flags argument can be set to SCIF_MAP_FIXED which interprets a
- * fixed offset.
- *
- * Return:
- * Upon successful completion, scif_register_pinned_pages() returns the offset
- * at which the mapping was placed (po); otherwise the negative of one of the
- * following errors is returned.
- *
- * Errors:
- * EADDRINUSE - SCIF_MAP_FIXED is set in map_flags and pages in the new window
- * would intersect an existing window
- * EAGAIN - The mapping could not be performed due to lack of resources
- * ECONNRESET - Connection reset by peer
- * EINVAL - map_flags is invalid, or SCIF_MAP_FIXED is set in map_flags, and
- * offset is not a multiple of the page size, or offset is negative
- * ENODEV - The remote node is lost or existed, but is not currently in the
- * network since it may have crashed
- * ENOMEM - Not enough space
- * ENOTCONN - The endpoint is not connected
- */
-off_t scif_register_pinned_pages(scif_epd_t epd,
- scif_pinned_pages_t pinned_pages,
- off_t offset, int map_flags);
-
-/**
- * scif_get_pages() - Add references to remote registered pages
- * @epd: endpoint descriptor
- * @offset: remote registered offset
- * @len: length of range of pages
- * @pages: returned scif_range structure
- *
- * scif_get_pages() returns the addresses of the physical pages represented by
- * those pages of the registered address space of the peer of epd, starting at
- * offset and continuing for len bytes. offset and len are constrained to be
- * multiples of the page size.
- *
- * All of the pages in the specified range [offset, offset + len - 1] must be
- * within a single window of the registered address space of the peer of epd.
- *
- * The addresses are returned as a virtually contiguous array pointed to by the
- * phys_addr component of the scif_range structure whose address is returned in
- * pages. The nr_pages component of scif_range is the length of the array. The
- * prot_flags component of scif_range holds the protection flag value passed
- * when the pages were registered.
- *
- * Each physical page whose address is returned by scif_get_pages() remains
- * available and will not be released for reuse until the scif_range structure
- * is returned in a call to scif_put_pages(). The scif_range structure returned
- * by scif_get_pages() must be unmodified.
- *
- * It is an error to call scif_close() on an endpoint on which a scif_range
- * structure of that endpoint has not been returned to scif_put_pages().
- *
- * Return:
- * Upon successful completion, scif_get_pages() returns 0; otherwise the
- * negative of one of the following errors is returned.
- * Errors:
- * ECONNRESET - Connection reset by peer.
- * EINVAL - offset is not a multiple of the page size, or offset is negative, or
- * len is not a multiple of the page size
- * ENODEV - The remote node is lost or existed, but is not currently in the
- * network since it may have crashed
- * ENOTCONN - The endpoint is not connected
- * ENXIO - Offsets in the range [offset, offset + len - 1] are invalid
- * for the registered address space of the peer epd
- */
-int scif_get_pages(scif_epd_t epd, off_t offset, size_t len,
- struct scif_range **pages);
-
-/**
- * scif_put_pages() - Remove references from remote registered pages
- * @pages: pages to be returned
- *
- * scif_put_pages() releases a scif_range structure previously obtained by
- * calling scif_get_pages(). The physical pages represented by pages may
- * be reused when the window which represented those pages is unregistered.
- * Therefore, those pages must not be accessed after calling scif_put_pages().
- *
- * Return:
- * Upon successful completion, scif_put_pages() returns 0; otherwise the
- * negative of one of the following errors is returned.
- * Errors:
- * EINVAL - pages does not point to a valid scif_range structure, or
- * the scif_range structure pointed to by pages was already returned
- * ENODEV - The remote node is lost or existed, but is not currently in the
- * network since it may have crashed
- * ENOTCONN - The endpoint is not connected
- */
-int scif_put_pages(struct scif_range *pages);
-
-/**
- * scif_poll() - Wait for some event on an endpoint
- * @epds: Array of endpoint descriptors
- * @nepds: Length of epds
- * @timeout: Upper limit on time for which scif_poll() will block
- *
- * scif_poll() waits for one of a set of endpoints to become ready to perform
- * an I/O operation.
- *
- * The epds argument specifies the endpoint descriptors to be examined and the
- * events of interest for each endpoint descriptor. epds is a pointer to an
- * array with one member for each open endpoint descriptor of interest.
- *
- * The number of items in the epds array is specified in nepds. The epd field
- * of scif_pollepd is an endpoint descriptor of an open endpoint. The field
- * events is a bitmask specifying the events which the application is
- * interested in. The field revents is an output parameter, filled by the
- * kernel with the events that actually occurred. The bits returned in revents
- * can include any of those specified in events, or one of the values POLLERR,
- * POLLHUP, or POLLNVAL. (These three bits are meaningless in the events
- * field, and will be set in the revents field whenever the corresponding
- * condition is true.)
- *
- * If none of the events requested (and no error) has occurred for any of the
- * endpoint descriptors, then scif_poll() blocks until one of the events occurs.
- *
- * The timeout argument specifies an upper limit on the time for which
- * scif_poll() will block, in milliseconds. Specifying a negative value in
- * timeout means an infinite timeout.
- *
- * The following bits may be set in events and returned in revents.
- * POLLIN - Data may be received without blocking. For a connected
- * endpoint, this means that scif_recv() may be called without blocking. For a
- * listening endpoint, this means that scif_accept() may be called without
- * blocking.
- * POLLOUT - Data may be sent without blocking. For a connected endpoint, this
- * means that scif_send() may be called without blocking. POLLOUT may also be
- * used to block waiting for a non-blocking connect to complete. This bit value
- * has no meaning for a listening endpoint and is ignored if specified.
- *
- * The following bits are only returned in revents, and are ignored if set in
- * events.
- * POLLERR - An error occurred on the endpoint
- * POLLHUP - The connection to the peer endpoint was disconnected
- * POLLNVAL - The specified endpoint descriptor is invalid.
- *
- * Return:
- * Upon successful completion, scif_poll() returns a non-negative value. A
- * positive value indicates the total number of endpoint descriptors that have
- * been selected (that is, endpoint descriptors for which the revents member is
- * non-zero). A value of 0 indicates that the call timed out and no endpoint
- * descriptors have been selected. Otherwise in user mode -1 is returned and
- * errno is set to indicate the error; in kernel mode the negative of one of
- * the following errors is returned.
- *
- * Errors:
- * EINTR - A signal occurred before any requested event
- * EINVAL - The nepds argument is greater than {OPEN_MAX}
- * ENOMEM - There was no space to allocate file descriptor tables
- */
-int scif_poll(struct scif_pollepd *epds, unsigned int nepds, long timeout);
-
-/**
- * scif_client_register() - Register a SCIF client
- * @client: client to be registered
- *
- * scif_client_register() registers a SCIF client. The probe() method
- * of the client is called when SCIF peer devices come online and the
- * remove() method is called when the peer devices disappear.
- *
- * Return:
- * Upon successful completion, scif_client_register() returns a non-negative
- * value. Otherwise the return value is the same as subsys_interface_register()
- * in the kernel.
- */
-int scif_client_register(struct scif_client *client);
-
-/**
- * scif_client_unregister() - Unregister a SCIF client
- * @client: client to be unregistered
- *
- * scif_client_unregister() unregisters a SCIF client.
- *
- * Return:
- * None
- */
-void scif_client_unregister(struct scif_client *client);
-
-#endif /* __SCIF_H__ */
--
2.11.0
From: Janosch Frank <frankja(a)de.ibm.com>
Userspace could have munmapped the area before doing unmapping from the
gmap. This would leave us with a valid vmaddr, but an invalid vma from
which we would try to zap memory.
Let's check before using the vma.
Fixes: 1e133ab296f3 ("s390/mm: split arch/s390/mm/pgtable.c")
Signed-off-by: Janosch Frank <frankja(a)linux.ibm.com>
Reviewed-by: David Hildenbrand <david(a)redhat.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
CC: stable(a)vger.kernel.org # 4.6+
---
arch/s390/mm/gmap.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/s390/mm/gmap.c b/arch/s390/mm/gmap.c
index cb2cd04..b6c85b7 100644
--- a/arch/s390/mm/gmap.c
+++ b/arch/s390/mm/gmap.c
@@ -686,6 +686,8 @@ void gmap_discard(struct gmap *gmap, unsigned long from, unsigned long to)
vmaddr |= gaddr & ~PMD_MASK;
/* Find vma in the parent mm */
vma = find_vma(gmap->mm, vmaddr);
+ if (!vma)
+ continue;
size = min(to - gaddr, PMD_SIZE - (gaddr & ~PMD_MASK));
zap_page_range(vma, vmaddr, size, NULL);
}
--
2.7.4
[partial backport upstream 760db29bdc97b73ff60b091315ad787b1deb5cf5]
Upon invocation, lan78xx_init_mac_address() checks that the mac address present
in the RX_ADDRL & RX_ADDRH registers is a valid address, if not, it first tries
to read a new address from an external eeprom or the otp area, and in case both
read fail (or the address read back is invalid), it randomly generates a new
one.
Unfortunately, due to the way the above logic is laid out,
if both read_eeprom() and read_otp() fail, a new mac address is correctly
generated but is never written back to RX_ADDRL & RX_ADDRH, leaving the chip in an
incosistent state and with an invalid mac address (e.g. the nic appears to be
completely dead, and doesn't receive any packet, etc):
lan78xx_init_mac_address()
...
if (lan78xx_read_eeprom(addr ...) || lan78xx_read_otp(addr ...)) {
if (is_valid_ether_addr(addr) {
// nop...
} else {
random_ether_addr(addr);
}
// correctly writes back the new address
lan78xx_write_reg(RX_ADDRL, addr ...);
lan78xx_write_reg(RX_ADDRH, addr ...);
} else {
// XXX if both eeprom and otp read fail, we land here and skip
// XXX the RX_ADDRL & RX_ADDRH update completely
random_ether_addr(addr);
}
This bug went unnoticed because lan78xx_read_otp() was buggy itself and would
never fail, up until 4bfc338 "lan78xx: Correctly indicate invalid OTP"
fixed it and as a side effect uncovered this bug.
4.18+ is fine, since the bug was implicitly fixed in 760db29 "lan78xx: Read MAC
address from DT if present" when the address change logic was reorganized, but
it's still present in all stable trees below that: linux-4.4.y, linux-4.9.y,
linux-4.14.y, etc up to linux-4.18.y (not included).
Signed-off-by: Paolo Pisati <p.pisati(a)gmail.com>
---
drivers/net/usb/lan78xx.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index 50e2e10a..114dc55 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -1660,13 +1660,6 @@ static void lan78xx_init_mac_address(struct lan78xx_net *dev)
netif_dbg(dev, ifup, dev->net,
"MAC address set to random addr");
}
-
- addr_lo = addr[0] | (addr[1] << 8) |
- (addr[2] << 16) | (addr[3] << 24);
- addr_hi = addr[4] | (addr[5] << 8);
-
- ret = lan78xx_write_reg(dev, RX_ADDRL, addr_lo);
- ret = lan78xx_write_reg(dev, RX_ADDRH, addr_hi);
} else {
/* generate random MAC */
random_ether_addr(addr);
@@ -1674,6 +1667,11 @@ static void lan78xx_init_mac_address(struct lan78xx_net *dev)
"MAC address set to random addr");
}
}
+ addr_lo = addr[0] | (addr[1] << 8) | (addr[2] << 16) | (addr[3] << 24);
+ addr_hi = addr[4] | (addr[5] << 8);
+
+ ret = lan78xx_write_reg(dev, RX_ADDRL, addr_lo);
+ ret = lan78xx_write_reg(dev, RX_ADDRH, addr_hi);
ret = lan78xx_write_reg(dev, MAF_LO(0), addr_lo);
ret = lan78xx_write_reg(dev, MAF_HI(0), addr_hi | MAF_HI_VALID_);
--
2.7.4
This is the start of the stable review cycle for the 4.9.134 release.
There are 71 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 Oct 18 17:05:18 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.9.134-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.9.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.9.134-rc1
Dan Carpenter <dan.carpenter(a)oracle.com>
ipv4: frags: precedence bug in ip_expire()
Taehee Yoo <ap420073(a)gmail.com>
ip: frags: fix crash in ip_do_fragment()
Peter Oskolkov <posk(a)google.com>
ip: process in-order fragments efficiently
Peter Oskolkov <posk(a)google.com>
ip: add helpers to process in-order fragments faster.
Peter Oskolkov <posk(a)google.com>
ip: use rb trees for IP frag queue.
Eric Dumazet <edumazet(a)google.com>
net: add rb_to_skb() and other rb tree helpers
Eric Dumazet <edumazet(a)google.com>
net: pskb_trim_rcsum() and CHECKSUM_COMPLETE are friends
Florian Westphal <fw(a)strlen.de>
ipv6: defrag: drop non-last frags smaller than min mtu
Peter Oskolkov <posk(a)google.com>
net: modify skb_rbtree_purge to return the truesize of all purged skbs.
Eric Dumazet <edumazet(a)google.com>
net: speed up skb_rbtree_purge()
Peter Oskolkov <posk(a)google.com>
ip: discard IPv4 datagrams with overlapping segments.
Eric Dumazet <edumazet(a)google.com>
inet: frags: fix ip6frag_low_thresh boundary
Eric Dumazet <edumazet(a)google.com>
inet: frags: get rid of ipfrag_skb_cb/FRAG_CB
Eric Dumazet <edumazet(a)google.com>
inet: frags: reorganize struct netns_frags
Eric Dumazet <edumazet(a)google.com>
rhashtable: reorganize struct rhashtable layout
Eric Dumazet <edumazet(a)google.com>
ipv6: frags: rewrite ip6_expire_frag_queue()
Eric Dumazet <edumazet(a)google.com>
inet: frags: do not clone skb in ip_expire()
Eric Dumazet <edumazet(a)google.com>
inet: frags: break the 2GB limit for frags storage
Eric Dumazet <edumazet(a)google.com>
inet: frags: remove inet_frag_maybe_warn_overflow()
Eric Dumazet <edumazet(a)google.com>
inet: frags: get rif of inet_frag_evicting()
Eric Dumazet <edumazet(a)google.com>
inet: frags: remove some helpers
Eric Dumazet <edumazet(a)google.com>
inet: frags: use rhashtables for reassembly units
Eric Dumazet <edumazet(a)google.com>
rhashtable: add schedule points
Eric Dumazet <edumazet(a)google.com>
ipv6: export ip6 fragments sysctl to unprivileged users
Eric Dumazet <edumazet(a)google.com>
inet: frags: refactor lowpan_net_frag_init()
Eric Dumazet <edumazet(a)google.com>
inet: frags: refactor ipv6_frag_init()
Eric Dumazet <edumazet(a)google.com>
inet: frags: refactor ipfrag_init()
Eric Dumazet <edumazet(a)google.com>
inet: frags: add a pointer to struct netns_frags
Eric Dumazet <edumazet(a)google.com>
inet: frags: change inet_frags_init_net() return value
Eric Dumazet <edumazet(a)google.com>
inet: make sure to grab rcu_read_lock before using ireq->ireq_opt
Eric Dumazet <edumazet(a)google.com>
tcp/dccp: fix lockdep issue when SYN is backlogged
Eric Dumazet <edumazet(a)google.com>
rtnl: limit IFLA_NUM_TX_QUEUES and IFLA_NUM_RX_QUEUES to 4096
Florian Fainelli <f.fainelli(a)gmail.com>
net: systemport: Fix wake-up interrupt race during resume
Maxime Chevallier <maxime.chevallier(a)bootlin.com>
net: mvpp2: Extract the correct ethtype from the skb for tx csum offload
Florian Fainelli <f.fainelli(a)gmail.com>
net: dsa: bcm_sf2: Fix unbind ordering
Ido Schimmel <idosch(a)mellanox.com>
team: Forbid enslaving team device to itself
Giacinto Cifelli <gciofono(a)gmail.com>
qmi_wwan: Added support for Gemalto's Cinterion ALASxx WWAN interface
Shahed Shaikh <shahed.shaikh(a)cavium.com>
qlcnic: fix Tx descriptor corruption on 82xx devices
Yu Zhao <yuzhao(a)google.com>
net/usb: cancel pending work when unbinding smsc75xx
Sean Tranchetti <stranche(a)codeaurora.org>
netlabel: check for IPV4MASK in addrinfo_get
Jeff Barnhill <0xeffeff(a)gmail.com>
net/ipv6: Display all addresses in output of /proc/net/if_inet6
Sabrina Dubroca <sd(a)queasysnail.net>
net: ipv4: update fnhe_pmtu when first hop's MTU changes
Yunsheng Lin <linyunsheng(a)huawei.com>
net: hns: fix for unmapping problem when SMMU is on
Florian Fainelli <f.fainelli(a)gmail.com>
net: dsa: bcm_sf2: Call setup during switch resume
Wei Wang <weiwan(a)google.com>
ipv6: take rcu lock in rawv6_send_hdrinc()
Eric Dumazet <edumazet(a)google.com>
ipv4: fix use-after-free in ip_cmsg_recv_dstaddr()
Paolo Abeni <pabeni(a)redhat.com>
ip_tunnel: be careful when accessing the inner header
Paolo Abeni <pabeni(a)redhat.com>
ip6_tunnel: be careful when accessing the inner header
Mahesh Bandewar <maheshb(a)google.com>
bonding: avoid possible dead-lock
Michael Chan <michael.chan(a)broadcom.com>
bnxt_en: Fix TX timeout during netpoll.
Mathias Nyman <mathias.nyman(a)linux.intel.com>
xhci: Don't print a warning when setting link state for disabled ports
Edgar Cherkasov <echerkasov(a)dev.rtsoft.ru>
i2c: i2c-scmi: fix for i2c_smbus_write_block_data
Jan Kara <jack(a)suse.cz>
mm: Preserve _PAGE_DEVMAP across mprotect() calls
Adrian Hunter <adrian.hunter(a)intel.com>
perf script python: Fix export-to-postgresql.py occasional failure
Mikulas Patocka <mpatocka(a)redhat.com>
mach64: detect the dot clock divider correctly on sparc
Paul Burton <paul.burton(a)mips.com>
MIPS: VDSO: Always map near top of user memory
Jann Horn <jannh(a)google.com>
mm/vmstat.c: fix outdated vmstat_text
Daniel Rosenberg <drosen(a)google.com>
ext4: Fix error code in ext4_xattr_set_entry()
Amber Lin <Amber.Lin(a)amd.com>
drm/amdgpu: Fix SDMA HQD destroy error on gfx_v7
Vitaly Kuznetsov <vkuznets(a)redhat.com>
x86/kvm/lapic: always disable MMIO interface in x2APIC mode
Nicolas Ferre <nicolas.ferre(a)microchip.com>
ARM: dts: at91: add new compatibility string for macb on sama5d3
Nicolas Ferre <nicolas.ferre(a)microchip.com>
net: macb: disable scatter-gather for macb on sama5d3
Jongsung Kim <neidhard.kim(a)lge.com>
stmmac: fix valid numbers of unicast filter entries
Yu Zhao <yuzhao(a)google.com>
sound: enable interrupt after dma buffer initialization
Dan Carpenter <dan.carpenter(a)oracle.com>
scsi: qla2xxx: Fix an endian bug in fcpcmd_is_corrupted()
Laura Abbott <labbott(a)redhat.com>
scsi: iscsi: target: Don't use stack buffer for scatterlist
Tony Lindgren <tony(a)atomide.com>
mfd: omap-usb-host: Fix dts probe of children
Lei Yang <Lei.Yang(a)windriver.com>
selftests: memory-hotplug: add required configs
Lei Yang <Lei.Yang(a)windriver.com>
selftests/efivarfs: add required kernel configs
Danny Smith <danny.smith(a)axis.com>
ASoC: sigmadsp: safeload should not have lower byte limit
Pierre-Louis Bossart <pierre-louis.bossart(a)linux.intel.com>
ASoC: wm8804: Add ACPI support
-------------
Diffstat:
Documentation/devicetree/bindings/net/macb.txt | 1 +
Documentation/networking/ip-sysctl.txt | 13 +-
Makefile | 4 +-
arch/arm/boot/dts/sama5d3_emac.dtsi | 2 +-
arch/mips/include/asm/processor.h | 10 +-
arch/mips/kernel/process.c | 25 +
arch/mips/kernel/vdso.c | 18 +-
arch/powerpc/include/asm/book3s/64/pgtable.h | 4 +-
arch/x86/include/asm/pgtable_types.h | 2 +-
arch/x86/include/uapi/asm/kvm.h | 1 +
arch/x86/kvm/lapic.c | 22 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 2 +-
drivers/i2c/busses/i2c-scmi.c | 1 +
drivers/mfd/omap-usb-host.c | 11 +-
drivers/net/bonding/bond_main.c | 43 +-
drivers/net/dsa/bcm_sf2.c | 12 +-
drivers/net/ethernet/broadcom/bcmsysport.c | 22 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 13 +-
drivers/net/ethernet/cadence/macb.c | 8 +
drivers/net/ethernet/hisilicon/hns/hnae.c | 2 +-
drivers/net/ethernet/hisilicon/hns/hns_enet.c | 30 +-
drivers/net/ethernet/marvell/mvpp2.c | 10 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 8 +-
.../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c | 3 +-
.../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h | 3 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.h | 3 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c | 12 +-
.../net/ethernet/stmicro/stmmac/stmmac_platform.c | 5 +-
drivers/net/team/team.c | 5 +
drivers/net/usb/qmi_wwan.c | 1 +
drivers/net/usb/smsc75xx.c | 1 +
drivers/scsi/qla2xxx/qla_target.h | 4 +-
drivers/target/iscsi/iscsi_target.c | 22 +-
drivers/usb/host/xhci-hub.c | 18 +-
drivers/video/fbdev/aty/atyfb.h | 3 +-
drivers/video/fbdev/aty/atyfb_base.c | 7 +-
drivers/video/fbdev/aty/mach64_ct.c | 10 +-
fs/ext4/xattr.c | 2 +-
include/linux/netdevice.h | 7 +
include/linux/rhashtable.h | 4 +-
include/linux/skbuff.h | 34 +-
include/net/bonding.h | 7 +-
include/net/inet_frag.h | 133 +++--
include/net/inet_sock.h | 6 -
include/net/ip.h | 1 -
include/net/ip_fib.h | 1 +
include/net/ipv6.h | 26 +-
include/uapi/linux/snmp.h | 1 +
lib/rhashtable.c | 5 +-
mm/vmstat.c | 1 -
net/core/dev.c | 28 +-
net/core/rtnetlink.c | 6 +
net/core/skbuff.c | 31 +-
net/dccp/input.c | 4 +-
net/dccp/ipv4.c | 4 +-
net/ieee802154/6lowpan/6lowpan_i.h | 26 +-
net/ieee802154/6lowpan/reassembly.c | 148 +++---
net/ipv4/fib_frontend.c | 12 +-
net/ipv4/fib_semantics.c | 50 ++
net/ipv4/inet_connection_sock.c | 5 +-
net/ipv4/inet_fragment.c | 379 +++-----------
net/ipv4/ip_fragment.c | 573 ++++++++++++---------
net/ipv4/ip_sockglue.c | 3 +-
net/ipv4/ip_tunnel.c | 9 +
net/ipv4/proc.c | 7 +-
net/ipv4/tcp_input.c | 37 +-
net/ipv4/tcp_ipv4.c | 4 +-
net/ipv6/addrconf.c | 4 +-
net/ipv6/ip6_tunnel.c | 13 +-
net/ipv6/netfilter/nf_conntrack_reasm.c | 100 ++--
net/ipv6/proc.c | 5 +-
net/ipv6/raw.c | 29 +-
net/ipv6/reassembly.c | 212 ++++----
net/netlabel/netlabel_unlabeled.c | 3 +-
sound/hda/hdac_controller.c | 8 +-
sound/soc/codecs/sigmadsp.c | 3 +-
sound/soc/codecs/wm8804-i2c.c | 15 +-
tools/perf/scripts/python/export-to-postgresql.py | 9 +
tools/testing/selftests/efivarfs/config | 1 +
tools/testing/selftests/memory-hotplug/config | 1 +
80 files changed, 1185 insertions(+), 1133 deletions(-)
Hello,
Please picked up this patch for linux 4.4 (backported version).
Indeed, this code will be beneficial to the GNU/Linux distributions that use a longterm kernel.
Compiled/tested without problem.
Thank.
[ Upstream commit 30aba6656f61ed44cba445a3c0d38b296fa9e8f5 ]
From: Salvatore Mesoraca <s.mesoraca16(a)gmail.com>
Date: Thu, 23 Aug 2018 17:00:35 -0700
Subject: namei: allow restricted O_CREAT of FIFOs and regular files
Disallows open of FIFOs or regular files not owned by the user in world
writable sticky directories, unless the owner is the same as that of the
directory or the file is opened without the O_CREAT flag. The purpose
is to make data spoofing attacks harder. This protection can be turned
on and off separately for FIFOs and regular files via sysctl, just like
the symlinks/hardlinks protection. This patch is based on Openwall's
"HARDEN_FIFO" feature by Solar Designer.
This is a brief list of old vulnerabilities that could have been prevented
by this feature, some of them even allow for privilege escalation:
CVE-2000-1134
CVE-2007-3852
CVE-2008-0525
CVE-2009-0416
CVE-2011-4834
CVE-2015-1838
CVE-2015-7442
CVE-2016-7489
This list is not meant to be complete. It's difficult to track down all
vulnerabilities of this kind because they were often reported without any
mention of this particular attack vector. In fact, before
hardlinks/symlinks restrictions, fifos/regular files weren't the favorite
vehicle to exploit them.
[s.mesoraca16(a)gmail.com: fix bug reported by Dan Carpenter]
Link: https://lkml.kernel.org/r/20180426081456.GA7060@mwanda
Link: http://lkml.kernel.org/r/1524829819-11275-1-git-send-email-s.mesoraca16@gma…
[keescook(a)chromium.org: drop pr_warn_ratelimited() in favor of audit changes in the future]
[keescook(a)chromium.org: adjust commit subjet]
Link: http://lkml.kernel.org/r/20180416175918.GA13494@beast
Signed-off-by: Salvatore Mesoraca <s.mesoraca16(a)gmail.com>
Signed-off-by: Kees Cook <keescook(a)chromium.org>
Suggested-by: Solar Designer <solar(a)openwall.com>
Suggested-by: Kees Cook <keescook(a)chromium.org>
Cc: Al Viro <viro(a)zeniv.linux.org.uk>
Cc: Dan Carpenter <dan.carpenter(a)oracle.com>
[backported to 4.4 by Loic]
Cc: Loic <hackurx(a)opensec.fr>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds(a)linux-foundation.org>
---
Documentation/sysctl/fs.txt | 36 ++++++++++++++++++++++++++++++
fs/namei.c | 53 ++++++++++++++++++++++++++++++++++++++++++---
include/linux/fs.h | 2 ++
kernel/sysctl.c | 18 +++++++++++++++
4 files changed, 106 insertions(+), 3 deletions(-)
diff -Nurp a/Documentation/sysctl/fs.txt b/Documentation/sysctl/fs.txt
--- a/Documentation/sysctl/fs.txt 2018-10-20 09:52:38.000000000 +0200
+++ b/Documentation/sysctl/fs.txt 2018-10-23 18:08:20.398649373 +0200
@@ -34,7 +34,9 @@ Currently, these files are in /proc/sys/
- overflowgid
- pipe-user-pages-hard
- pipe-user-pages-soft
+- protected_fifos
- protected_hardlinks
+- protected_regular
- protected_symlinks
- suid_dumpable
- super-max
@@ -182,6 +184,24 @@ applied.
==============================================================
+protected_fifos:
+
+The intent of this protection is to avoid unintentional writes to
+an attacker-controlled FIFO, where a program expected to create a regular
+file.
+
+When set to "0", writing to FIFOs is unrestricted.
+
+When set to "1" don't allow O_CREAT open on FIFOs that we don't own
+in world writable sticky directories, unless they are owned by the
+owner of the directory.
+
+When set to "2" it also applies to group writable sticky directories.
+
+This protection is based on the restrictions in Openwall.
+
+==============================================================
+
protected_hardlinks:
A long-standing class of security issues is the hardlink-based
@@ -202,6 +222,22 @@ This protection is based on the restrict
==============================================================
+protected_regular:
+
+This protection is similar to protected_fifos, but it
+avoids writes to an attacker-controlled regular file, where a program
+expected to create one.
+
+When set to "0", writing to regular files is unrestricted.
+
+When set to "1" don't allow O_CREAT open on regular files that we
+don't own in world writable sticky directories, unless they are
+owned by the owner of the directory.
+
+When set to "2" it also applies to group writable sticky directories.
+
+==============================================================
+
protected_symlinks:
A long-standing class of security issues is the symlink-based
diff -Nurp a/fs/namei.c b/fs/namei.c
--- a/fs/namei.c 2018-10-20 09:52:38.000000000 +0200
+++ b/fs/namei.c 2018-10-23 18:09:35.450879869 +0200
@@ -869,6 +869,8 @@ static inline void put_link(struct namei
int sysctl_protected_symlinks __read_mostly = 0;
int sysctl_protected_hardlinks __read_mostly = 0;
+int sysctl_protected_fifos __read_mostly;
+int sysctl_protected_regular __read_mostly;
/**
* may_follow_link - Check symlink following for unsafe situations
@@ -982,6 +984,45 @@ static int may_linkat(struct path *link)
return -EPERM;
}
+/**
+ * may_create_in_sticky - Check whether an O_CREAT open in a sticky directory
+ * should be allowed, or not, on files that already
+ * exist.
+ * @dir: the sticky parent directory
+ * @inode: the inode of the file to open
+ *
+ * Block an O_CREAT open of a FIFO (or a regular file) when:
+ * - sysctl_protected_fifos (or sysctl_protected_regular) is enabled
+ * - the file already exists
+ * - we are in a sticky directory
+ * - we don't own the file
+ * - the owner of the directory doesn't own the file
+ * - the directory is world writable
+ * If the sysctl_protected_fifos (or sysctl_protected_regular) is set to 2
+ * the directory doesn't have to be world writable: being group writable will
+ * be enough.
+ *
+ * Returns 0 if the open is allowed, -ve on error.
+ */
+static int may_create_in_sticky(struct dentry * const dir,
+ struct inode * const inode)
+{
+ if ((!sysctl_protected_fifos && S_ISFIFO(inode->i_mode)) ||
+ (!sysctl_protected_regular && S_ISREG(inode->i_mode)) ||
+ likely(!(dir->d_inode->i_mode & S_ISVTX)) ||
+ uid_eq(inode->i_uid, dir->d_inode->i_uid) ||
+ uid_eq(current_fsuid(), inode->i_uid))
+ return 0;
+
+ if (likely(dir->d_inode->i_mode & 0002) ||
+ (dir->d_inode->i_mode & 0020 &&
+ ((sysctl_protected_fifos >= 2 && S_ISFIFO(inode->i_mode)) ||
+ (sysctl_protected_regular >= 2 && S_ISREG(inode->i_mode))))) {
+ return -EACCES;
+ }
+ return 0;
+}
+
static __always_inline
const char *get_link(struct nameidata *nd)
{
@@ -3166,9 +3207,15 @@ finish_open:
error = -ELOOP;
goto out;
}
- error = -EISDIR;
- if ((open_flag & O_CREAT) && d_is_dir(nd->path.dentry))
- goto out;
+ if (open_flag & O_CREAT) {
+ error = -EISDIR;
+ if (d_is_dir(nd->path.dentry))
+ goto out;
+ error = may_create_in_sticky(dir,
+ d_backing_inode(nd->path.dentry));
+ if (unlikely(error))
+ goto out;
+ }
error = -ENOTDIR;
if ((nd->flags & LOOKUP_DIRECTORY) && !d_can_lookup(nd->path.dentry))
goto out;
diff -Nurp a/include/linux/fs.h b/include/linux/fs.h
--- a/include/linux/fs.h 2018-10-20 09:52:38.000000000 +0200
+++ b/include/linux/fs.h 2018-10-23 18:08:20.402649386 +0200
@@ -65,6 +65,8 @@ extern struct inodes_stat_t inodes_stat;
extern int leases_enable, lease_break_time;
extern int sysctl_protected_symlinks;
extern int sysctl_protected_hardlinks;
+extern int sysctl_protected_fifos;
+extern int sysctl_protected_regular;
struct buffer_head;
typedef int (get_block_t)(struct inode *inode, sector_t iblock,
diff -Nurp a/kernel/sysctl.c b/kernel/sysctl.c
--- a/kernel/sysctl.c 2018-10-20 09:52:38.000000000 +0200
+++ b/kernel/sysctl.c 2018-10-23 18:08:20.402649386 +0200
@@ -1716,6 +1716,24 @@ static struct ctl_table fs_table[] = {
.extra2 = &one,
},
{
+ .procname = "protected_fifos",
+ .data = &sysctl_protected_fifos,
+ .maxlen = sizeof(int),
+ .mode = 0600,
+ .proc_handler = proc_dointvec_minmax,
+ .extra1 = &zero,
+ .extra2 = &two,
+ },
+ {
+ .procname = "protected_regular",
+ .data = &sysctl_protected_regular,
+ .maxlen = sizeof(int),
+ .mode = 0600,
+ .proc_handler = proc_dointvec_minmax,
+ .extra1 = &zero,
+ .extra2 = &two,
+ },
+ {
.procname = "suid_dumpable",
.data = &suid_dumpable,
.maxlen = sizeof(int),
Please apply 0929983e49c8 (media: ov5640: fix framerate update") to
Linux 4.19.y stable along with the list of the following fixes in
order from top to bottom. This fixes multiple issues in the 4.19
kernel and allows my imx6q to sample the ov5640 module and stream to
the LCD.
Thank you,
Cc: <stable(a)vger.kernel.org> # 4.19.x: fb98e29ff1ea ("media: ov5640:
fix mode change regression")
Cc: <stable(a)vger.kernel.org> # 4.19.x: aa4bb8b8838 ("media: ov5640:
Re-work MIPI startup sequence")
Cc: <stable(a)vger.kernel.org> # 4.19.x: bad1774ed41 ("media: ov5640:
Fix timings setup code")
Cc: <stable(a)vger.kernel.org> # 4.19.x: dc29a1c187e ("media: ov5640:
fix exposure regression")
Cc: <stable(a)vger.kernel.org> # 4.19.x: 3cca8ef5f774 ("media: ov5640:
fix auto gain & exposure when changing mode")
Cc: <stable(a)vger.kernel.org> # 4.19.x: c2c3f42df4dd ("media: ov5640:
fix wrong binning value in exposure")
Cc: <stable(a)vger.kernel.org> # 4.19.x: a8f438c684ea ("media: ov5640:
fix auto controls values when switching to")
Cc: <stable(a)vger.kernel.org> # 4.19.x: 985cdcb08a04 ("media: ov5640:
fix restore of last mode set")
Signed-off-by: Adam Ford <aford173(a)gmail.com>
commit 92aa39e9dc77 upstream.
The per-CPU rcu_dynticks.rcu_urgent_qs variable communicates an urgent
need for an RCU quiescent state from the force-quiescent-state processing
within the grace-period kthread to context switches and to cond_resched().
Unfortunately, such urgent needs are not communicated to need_resched(),
which is sometimes used to decide when to invoke cond_resched(), for
but one example, within the KVM vcpu_run() function. As of v4.15, this
can result in synchronize_sched() being delayed by up to ten seconds,
which can be problematic, to say nothing of annoying.
This commit therefore checks rcu_dynticks.rcu_urgent_qs from within
rcu_check_callbacks(), which is invoked from the scheduling-clock
interrupt handler. If the current task is not an idle task and is
not executing in usermode, a context switch is forced, and either way,
the rcu_dynticks.rcu_urgent_qs variable is set to false. If the current
task is an idle task, then RCU's dyntick-idle code will detect the
quiescent state, so no further action is required. Similarly, if the
task is executing in usermode, other code in rcu_check_callbacks() and
its called functions will report the corresponding quiescent state.
Reported-by: Marius Hillenbrand <mhillenb(a)amazon.de>
Reported-by: David Woodhouse <dwmw2(a)infradead.org>
Suggested-by: Peter Zijlstra <peterz(a)infradead.org>
Signed-off-by: Paul E. McKenney <paulmck(a)linux.vnet.ibm.com>
[ paulmck: Backported to make patch apply cleanly on older versions. ]
Tested-by: Marius Hillenbrand <mhillenb(a)amazon.de>
Cc: <stable(a)vger.kernel.org> # 4.12.x - 4.19.x
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 0b760c1369f7..15301ed19da6 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -2662,6 +2662,15 @@ void rcu_check_callbacks(int user)
rcu_bh_qs();
}
rcu_preempt_check_callbacks();
+ /* The load-acquire pairs with the store-release setting to true. */
+ if (smp_load_acquire(this_cpu_ptr(&rcu_dynticks.rcu_urgent_qs))) {
+ /* Idle and userspace execution already are quiescent states. */
+ if (!rcu_is_cpu_rrupt_from_idle() && !user) {
+ set_tsk_need_resched(current);
+ set_preempt_need_resched();
+ }
+ __this_cpu_write(rcu_dynticks.rcu_urgent_qs, false);
+ }
if (rcu_pending())
invoke_rcu_core();
Hello,
Please picked up this patch for linux 4.9 and 4.14 (linux 4.4 needs a small modification).
Indeed, this code will be beneficial to the GNU/Linux distributions that use a longterm kernel.
Compiled/tested without problem.
Thank.
[ Upstream commit 30aba6656f61ed44cba445a3c0d38b296fa9e8f5 ]
From: Salvatore Mesoraca <s.mesoraca16(a)gmail.com>
Date: Thu, 23 Aug 2018 17:00:35 -0700
Subject: namei: allow restricted O_CREAT of FIFOs and regular files
Disallows open of FIFOs or regular files not owned by the user in world
writable sticky directories, unless the owner is the same as that of the
directory or the file is opened without the O_CREAT flag. The purpose
is to make data spoofing attacks harder. This protection can be turned
on and off separately for FIFOs and regular files via sysctl, just like
the symlinks/hardlinks protection. This patch is based on Openwall's
"HARDEN_FIFO" feature by Solar Designer.
This is a brief list of old vulnerabilities that could have been prevented
by this feature, some of them even allow for privilege escalation:
CVE-2000-1134
CVE-2007-3852
CVE-2008-0525
CVE-2009-0416
CVE-2011-4834
CVE-2015-1838
CVE-2015-7442
CVE-2016-7489
This list is not meant to be complete. It's difficult to track down all
vulnerabilities of this kind because they were often reported without any
mention of this particular attack vector. In fact, before
hardlinks/symlinks restrictions, fifos/regular files weren't the favorite
vehicle to exploit them.
[s.mesoraca16(a)gmail.com: fix bug reported by Dan Carpenter]
Link: https://lkml.kernel.org/r/20180426081456.GA7060@mwanda
Link: http://lkml.kernel.org/r/1524829819-11275-1-git-send-email-s.mesoraca16@gma…
[keescook(a)chromium.org: drop pr_warn_ratelimited() in favor of audit changes in the future]
[keescook(a)chromium.org: adjust commit subjet]
Link: http://lkml.kernel.org/r/20180416175918.GA13494@beast
Signed-off-by: Salvatore Mesoraca <s.mesoraca16(a)gmail.com>
Signed-off-by: Kees Cook <keescook(a)chromium.org>
Suggested-by: Solar Designer <solar(a)openwall.com>
Suggested-by: Kees Cook <keescook(a)chromium.org>
Cc: Al Viro <viro(a)zeniv.linux.org.uk>
Cc: Dan Carpenter <dan.carpenter(a)oracle.com>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds(a)linux-foundation.org>
---
Documentation/sysctl/fs.txt | 36 ++++++++++++++++++++++++++++++
fs/namei.c | 53 ++++++++++++++++++++++++++++++++++++++++++---
include/linux/fs.h | 2 ++
kernel/sysctl.c | 18 +++++++++++++++
4 files changed, 106 insertions(+), 3 deletions(-)
diff --git a/Documentation/sysctl/fs.txt b/Documentation/sysctl/fs.txt
index 6c00c1e2743f..819caf8ca05f 100644
--- a/Documentation/sysctl/fs.txt
+++ b/Documentation/sysctl/fs.txt
@@ -34,7 +34,9 @@ Currently, these files are in /proc/sys/fs:
- overflowgid
- pipe-user-pages-hard
- pipe-user-pages-soft
+- protected_fifos
- protected_hardlinks
+- protected_regular
- protected_symlinks
- suid_dumpable
- super-max
@@ -182,6 +184,24 @@ applied.
==============================================================
+protected_fifos:
+
+The intent of this protection is to avoid unintentional writes to
+an attacker-controlled FIFO, where a program expected to create a regular
+file.
+
+When set to "0", writing to FIFOs is unrestricted.
+
+When set to "1" don't allow O_CREAT open on FIFOs that we don't own
+in world writable sticky directories, unless they are owned by the
+owner of the directory.
+
+When set to "2" it also applies to group writable sticky directories.
+
+This protection is based on the restrictions in Openwall.
+
+==============================================================
+
protected_hardlinks:
A long-standing class of security issues is the hardlink-based
@@ -202,6 +222,22 @@ This protection is based on the restrictions in Openwall and grsecurity.
==============================================================
+protected_regular:
+
+This protection is similar to protected_fifos, but it
+avoids writes to an attacker-controlled regular file, where a program
+expected to create one.
+
+When set to "0", writing to regular files is unrestricted.
+
+When set to "1" don't allow O_CREAT open on regular files that we
+don't own in world writable sticky directories, unless they are
+owned by the owner of the directory.
+
+When set to "2" it also applies to group writable sticky directories.
+
+==============================================================
+
protected_symlinks:
A long-standing class of security issues is the symlink-based
diff --git a/fs/namei.c b/fs/namei.c
index ae6aa9ae757c..0cab6494978c 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -887,6 +887,8 @@ static inline void put_link(struct nameidata *nd)
int sysctl_protected_symlinks __read_mostly = 0;
int sysctl_protected_hardlinks __read_mostly = 0;
+int sysctl_protected_fifos __read_mostly;
+int sysctl_protected_regular __read_mostly;
/**
* may_follow_link - Check symlink following for unsafe situations
@@ -1003,6 +1005,45 @@ static int may_linkat(struct path *link)
return -EPERM;
}
+/**
+ * may_create_in_sticky - Check whether an O_CREAT open in a sticky directory
+ * should be allowed, or not, on files that already
+ * exist.
+ * @dir: the sticky parent directory
+ * @inode: the inode of the file to open
+ *
+ * Block an O_CREAT open of a FIFO (or a regular file) when:
+ * - sysctl_protected_fifos (or sysctl_protected_regular) is enabled
+ * - the file already exists
+ * - we are in a sticky directory
+ * - we don't own the file
+ * - the owner of the directory doesn't own the file
+ * - the directory is world writable
+ * If the sysctl_protected_fifos (or sysctl_protected_regular) is set to 2
+ * the directory doesn't have to be world writable: being group writable will
+ * be enough.
+ *
+ * Returns 0 if the open is allowed, -ve on error.
+ */
+static int may_create_in_sticky(struct dentry * const dir,
+ struct inode * const inode)
+{
+ if ((!sysctl_protected_fifos && S_ISFIFO(inode->i_mode)) ||
+ (!sysctl_protected_regular && S_ISREG(inode->i_mode)) ||
+ likely(!(dir->d_inode->i_mode & S_ISVTX)) ||
+ uid_eq(inode->i_uid, dir->d_inode->i_uid) ||
+ uid_eq(current_fsuid(), inode->i_uid))
+ return 0;
+
+ if (likely(dir->d_inode->i_mode & 0002) ||
+ (dir->d_inode->i_mode & 0020 &&
+ ((sysctl_protected_fifos >= 2 && S_ISFIFO(inode->i_mode)) ||
+ (sysctl_protected_regular >= 2 && S_ISREG(inode->i_mode))))) {
+ return -EACCES;
+ }
+ return 0;
+}
+
static __always_inline
const char *get_link(struct nameidata *nd)
{
@@ -3348,9 +3389,15 @@ finish_open:
if (error)
return error;
audit_inode(nd->name, nd->path.dentry, 0);
- error = -EISDIR;
- if ((open_flag & O_CREAT) && d_is_dir(nd->path.dentry))
- goto out;
+ if (open_flag & O_CREAT) {
+ error = -EISDIR;
+ if (d_is_dir(nd->path.dentry))
+ goto out;
+ error = may_create_in_sticky(dir,
+ d_backing_inode(nd->path.dentry));
+ if (unlikely(error))
+ goto out;
+ }
error = -ENOTDIR;
if ((nd->flags & LOOKUP_DIRECTORY) && !d_can_lookup(nd->path.dentry))
goto out;
diff --git a/include/linux/fs.h b/include/linux/fs.h
index e5710541183b..33322702c910 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -74,6 +74,8 @@ extern struct inodes_stat_t inodes_stat;
extern int leases_enable, lease_break_time;
extern int sysctl_protected_symlinks;
extern int sysctl_protected_hardlinks;
+extern int sysctl_protected_fifos;
+extern int sysctl_protected_regular;
typedef __kernel_rwf_t rwf_t;
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 71ceb6c13c1a..cc02050fd0c4 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1807,6 +1807,24 @@ static struct ctl_table fs_table[] = {
.extra1 = &zero,
.extra2 = &one,
},
+ {
+ .procname = "protected_fifos",
+ .data = &sysctl_protected_fifos,
+ .maxlen = sizeof(int),
+ .mode = 0600,
+ .proc_handler = proc_dointvec_minmax,
+ .extra1 = &zero,
+ .extra2 = &two,
+ },
+ {
+ .procname = "protected_regular",
+ .data = &sysctl_protected_regular,
+ .maxlen = sizeof(int),
+ .mode = 0600,
+ .proc_handler = proc_dointvec_minmax,
+ .extra1 = &zero,
+ .extra2 = &two,
+ },
{
.procname = "suid_dumpable",
.data = &suid_dumpable,
--
cgit 1.2-0.3.lf.el7
The patch below does not apply to the 4.9-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 6ba9fc8e628becf0e3ec94083450d089b0dec5f5 Mon Sep 17 00:00:00 2001
From: Qu Wenruo <wqu(a)suse.com>
Date: Fri, 7 Sep 2018 14:16:24 +0800
Subject: [PATCH] btrfs: Ensure btrfs_trim_fs can trim the whole filesystem
[BUG]
fstrim on some btrfs only trims the unallocated space, not trimming any
space in existing block groups.
[CAUSE]
Before fstrim_range passed to btrfs_trim_fs(), it gets truncated to
range [0, super->total_bytes). So later btrfs_trim_fs() will only be
able to trim block groups in range [0, super->total_bytes).
While for btrfs, any bytenr aligned to sectorsize is valid, since btrfs
uses its logical address space, there is nothing limiting the location
where we put block groups.
For filesystem with frequent balance, it's quite easy to relocate all
block groups and bytenr of block groups will start beyond
super->total_bytes.
In that case, btrfs will not trim existing block groups.
[FIX]
Just remove the truncation in btrfs_ioctl_fitrim(), so btrfs_trim_fs()
can get the unmodified range, which is normally set to [0, U64_MAX].
Reported-by: Chris Murphy <lists(a)colorremedies.com>
Fixes: f4c697e6406d ("btrfs: return EINVAL if start > total_bytes in fitrim ioctl")
CC: <stable(a)vger.kernel.org> # v4.4+
Signed-off-by: Qu Wenruo <wqu(a)suse.com>
Reviewed-by: Nikolay Borisov <nborisov(a)suse.com>
Reviewed-by: David Sterba <dsterba(a)suse.com>
Signed-off-by: David Sterba <dsterba(a)suse.com>
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 5dbb3f713125..da3257585e29 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -10851,21 +10851,13 @@ int btrfs_trim_fs(struct btrfs_fs_info *fs_info, struct fstrim_range *range)
u64 start;
u64 end;
u64 trimmed = 0;
- u64 total_bytes = btrfs_super_total_bytes(fs_info->super_copy);
u64 bg_failed = 0;
u64 dev_failed = 0;
int bg_ret = 0;
int dev_ret = 0;
int ret = 0;
- /*
- * try to trim all FS space, our block group may start from non-zero.
- */
- if (range->len == total_bytes)
- cache = btrfs_lookup_first_block_group(fs_info, range->start);
- else
- cache = btrfs_lookup_block_group(fs_info, range->start);
-
+ cache = btrfs_lookup_first_block_group(fs_info, range->start);
for (; cache; cache = next_block_group(fs_info, cache)) {
if (cache->key.objectid >= (range->start + range->len)) {
btrfs_put_block_group(cache);
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 4905d13dee0a..a990a9045139 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -491,7 +491,6 @@ static noinline int btrfs_ioctl_fitrim(struct file *file, void __user *arg)
struct fstrim_range range;
u64 minlen = ULLONG_MAX;
u64 num_devices = 0;
- u64 total_bytes = btrfs_super_total_bytes(fs_info->super_copy);
int ret;
if (!capable(CAP_SYS_ADMIN))
@@ -515,11 +514,15 @@ static noinline int btrfs_ioctl_fitrim(struct file *file, void __user *arg)
return -EOPNOTSUPP;
if (copy_from_user(&range, arg, sizeof(range)))
return -EFAULT;
- if (range.start > total_bytes ||
- range.len < fs_info->sb->s_blocksize)
+
+ /*
+ * NOTE: Don't truncate the range using super->total_bytes. Bytenr of
+ * block group is in the logical address space, which can be any
+ * sectorsize aligned bytenr in the range [0, U64_MAX].
+ */
+ if (range.len < fs_info->sb->s_blocksize)
return -EINVAL;
- range.len = min(range.len, total_bytes - range.start);
range.minlen = max(range.minlen, minlen);
ret = btrfs_trim_fs(fs_info, &range);
if (ret < 0)
commit 958c0bd86075d4ef1c936998deefe1947e539240 upstream.
Realtek USB3.0 Card Reader [0bda:0328] reports wrong port status on
Cannon lake PCH USB3.1 xHCI [8086:a36d] after resume from S3,
after clear port reset it works fine.
Since this device is registered on USB3 roothub at boot,
when port status reports not superspeed, xhci_get_port_status will call
an uninitialized completion in bus_state[0].
Kernel will hang because of NULL pointer.
Restrict the USB2 resume status check in USB2 roothub to fix hang issue.
Cc: stable(a)vger.kernel.org # 4.17.x-
Signed-off-by: Aaron Ma <aaron.ma(a)canonical.com>
Signed-off-by: Mathias Nyman <mathias.nyman(a)linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Aaron Ma <aaron.ma(a)canonical.com>
---
drivers/usb/host/xhci-hub.c | 2 +-
drivers/usb/host/xhci-ring.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index aee29604bd79..b3376b1ab009 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -744,7 +744,7 @@ static u32 xhci_get_port_status(struct usb_hcd *hcd,
status |= USB_PORT_STAT_SUSPEND;
}
if ((raw_port_status & PORT_PLS_MASK) == XDEV_RESUME &&
- !DEV_SUPERSPEED_ANY(raw_port_status)) {
+ !DEV_SUPERSPEED_ANY(raw_port_status) && hcd->speed < HCD_USB3) {
if ((raw_port_status & PORT_RESET) ||
!(raw_port_status & PORT_PE))
return 0xffffffff;
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index ece0787d62bf..9f141113f202 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -1673,7 +1673,7 @@ static void handle_port_status(struct xhci_hcd *xhci,
* RExit to a disconnect state). If so, let the the driver know it's
* out of the RExit state.
*/
- if (!DEV_SUPERSPEED_ANY(temp) &&
+ if (!DEV_SUPERSPEED_ANY(portsc) && hcd->speed < HCD_USB3 &&
test_and_clear_bit(faked_port_index,
&bus_state->rexit_ports)) {
complete(&bus_state->rexit_done[faked_port_index]);
--
2.19.2
The patch below does not apply to the 4.14-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 ed72bc8bcb9277061e753faf300b20f97323761c Mon Sep 17 00:00:00 2001
From: Oleksij Rempel <o.rempel(a)pengutronix.de>
Date: Tue, 18 Sep 2018 11:40:39 +0200
Subject: [PATCH] can: flexcan: handle tx-complete CAN frames via rx-offload
infrastructure
Current flexcan driver will put TX-ECHO in regular unsorted way, in
this case TX-ECHO can come after the response to the same TXed message.
In some cases, for example for J1939 stack, things will break.
This patch is using new rx-offload API to put the messages just in the
right place.
Signed-off-by: Oleksij Rempel <o.rempel(a)pengutronix.de>
Cc: linux-stable <stable(a)vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl(a)pengutronix.de>
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index 68b46395c580..41a175f80c4b 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -787,8 +787,11 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
/* transmission complete interrupt */
if (reg_iflag2 & FLEXCAN_IFLAG_MB(FLEXCAN_TX_MB)) {
+ u32 reg_ctrl = priv->read(®s->mb[FLEXCAN_TX_MB].can_ctrl);
+
handled = IRQ_HANDLED;
- stats->tx_bytes += can_get_echo_skb(dev, 0);
+ stats->tx_bytes += can_rx_offload_get_echo_skb(&priv->offload,
+ 0, reg_ctrl << 16);
stats->tx_packets++;
can_led_event(dev, CAN_LED_EVENT_TX);
This is a note to let you know that I've just added the patch titled
Revert "usb: dwc3: gadget: skip Set/Clear Halt when invalid"
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 38317f5c0f2faae5110854f36edad810f841d62f Mon Sep 17 00:00:00 2001
From: Felipe Balbi <felipe.balbi(a)linux.intel.com>
Date: Mon, 19 Nov 2018 08:34:04 +0200
Subject: Revert "usb: dwc3: gadget: skip Set/Clear Halt when invalid"
This reverts commit ffb80fc672c3a7b6afd0cefcb1524fb99917b2f3.
Turns out that commit is wrong. Host controllers are allowed to use
Clear Feature HALT as means to sync data toggle between host and
periperal.
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Felipe Balbi <felipe.balbi(a)linux.intel.com>
---
drivers/usb/dwc3/gadget.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 9faad896b3a1..9f92ee03dde7 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1470,9 +1470,6 @@ int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value, int protocol)
unsigned transfer_in_flight;
unsigned started;
- if (dep->flags & DWC3_EP_STALL)
- return 0;
-
if (dep->number > 1)
trb = dwc3_ep_prev_trb(dep, dep->trb_enqueue);
else
@@ -1494,8 +1491,6 @@ int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value, int protocol)
else
dep->flags |= DWC3_EP_STALL;
} else {
- if (!(dep->flags & DWC3_EP_STALL))
- return 0;
ret = dwc3_send_clear_stall_ep_cmd(dep);
if (ret)
--
2.19.2
The patch below does not apply to the 4.4-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 82715ac71e6b94a2c2136e31f3a8e6748e33aa8c Mon Sep 17 00:00:00 2001
From: Emmanuel Grumbach <emmanuel.grumbach(a)intel.com>
Date: Wed, 3 Oct 2018 11:16:54 +0300
Subject: [PATCH] iwlwifi: mvm: fix regulatory domain update when the firmware
starts
When the firmware starts, it doesn't have any regulatory
information, hence it uses the world wide limitations. The
driver can feed the firmware with previous knowledge that
was kept in the driver, but the firmware may still not
update its internal tables.
This happens when we start a BSS interface, and then the
firmware can change the regulatory tables based on our
location and it'll use more lenient, location specific
rules. Then, if the firmware is shut down (when the
interface is brought down), and then an AP interface is
created, the firmware will forget the country specific
rules.
The host will think that we are in a certain country that
may allow channels and will try to teach the firmware about
our location, but the firmware may still not allow to drop
the world wide limitations and apply country specific rules
because it was just re-started.
In this case, the firmware will reply with MCC_RESP_ILLEGAL
to the MCC_UPDATE_CMD. In that case, iwlwifi needs to let
the upper layers (cfg80211 / hostapd) know that the channel
list they know about has been updated.
This fixes https://bugzilla.kernel.org/show_bug.cgi?id=201105
Cc: stable(a)vger.kernel.org
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach(a)intel.com>
Signed-off-by: Luca Coelho <luciano.coelho(a)intel.com>
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
index 7c09ce20e8b1..00f831d88366 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
@@ -301,8 +301,12 @@ struct ieee80211_regdomain *iwl_mvm_get_regdomain(struct wiphy *wiphy,
goto out;
}
- if (changed)
- *changed = (resp->status == MCC_RESP_NEW_CHAN_PROFILE);
+ if (changed) {
+ u32 status = le32_to_cpu(resp->status);
+
+ *changed = (status == MCC_RESP_NEW_CHAN_PROFILE ||
+ status == MCC_RESP_ILLEGAL);
+ }
regd = iwl_parse_nvm_mcc_info(mvm->trans->dev, mvm->cfg,
__le32_to_cpu(resp->n_channels),
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c b/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c
index 3633f27d048a..6fc5cc1f2b5b 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/nvm.c
@@ -539,9 +539,8 @@ iwl_mvm_update_mcc(struct iwl_mvm *mvm, const char *alpha2,
}
IWL_DEBUG_LAR(mvm,
- "MCC response status: 0x%x. new MCC: 0x%x ('%c%c') change: %d n_chans: %d\n",
- status, mcc, mcc >> 8, mcc & 0xff,
- !!(status == MCC_RESP_NEW_CHAN_PROFILE), n_channels);
+ "MCC response status: 0x%x. new MCC: 0x%x ('%c%c') n_chans: %d\n",
+ status, mcc, mcc >> 8, mcc & 0xff, n_channels);
exit:
iwl_free_resp(&cmd);
Dear Friend,
I am Abel Brent, a NATO soldier serving in Afghanistan. I and my
Comrades, we are seeking your assistance to help us
receive/invest our funds in your country in any lucrative
business. Please if this proposal is acceptable by you, kindly
respond back to me for more details.
Thanks and waiting to hear from you.
Abel.
From: Stefan Agner <stefan(a)agner.ch>
commit ef8c4ed9db80261f397f0c0bf723684601ae3b52 upstream.
When using a GCC cross toolchain which is not in a compiled in
Clang search path, Clang reverts to the system assembler and
linker. This leads to assembler or linker errors, depending on
which tool is first used for a given architecture.
It seems that Clang is not searching $PATH for a matching
assembler or linker.
Make sure that Clang picks up the correct assembler or linker by
passing the cross compilers bin directory as search path.
This allows to use Clang provided by distributions with GCC
toolchains not in /usr/bin.
Link: https://github.com/ClangBuiltLinux/linux/issues/78
Signed-off-by: Stefan Agner <stefan(a)agner.ch>
Reviewed-and-tested-by: Nick Desaulniers <ndesaulniers(a)google.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro(a)socionext.com>
[nc: Adjust context]
Signed-off-by: Nathan Chancellor <natechancellor(a)gmail.com>
---
Makefile | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index 874d72a3e6a7..cb131e135c42 100644
--- a/Makefile
+++ b/Makefile
@@ -480,13 +480,15 @@ endif
ifeq ($(cc-name),clang)
ifneq ($(CROSS_COMPILE),)
CLANG_TARGET := --target=$(notdir $(CROSS_COMPILE:%-=%))
-GCC_TOOLCHAIN := $(realpath $(dir $(shell which $(LD)))/..)
+GCC_TOOLCHAIN_DIR := $(dir $(shell which $(LD)))
+CLANG_PREFIX := --prefix=$(GCC_TOOLCHAIN_DIR)
+GCC_TOOLCHAIN := $(realpath $(GCC_TOOLCHAIN_DIR)/..)
endif
ifneq ($(GCC_TOOLCHAIN),)
CLANG_GCC_TC := --gcc-toolchain=$(GCC_TOOLCHAIN)
endif
-KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
-KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC)
+KBUILD_CFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
+KBUILD_AFLAGS += $(CLANG_TARGET) $(CLANG_GCC_TC) $(CLANG_PREFIX)
KBUILD_CFLAGS += $(call cc-option, -no-integrated-as)
KBUILD_AFLAGS += $(call cc-option, -no-integrated-as)
endif
--
2.20.0.rc1
The patch below does not apply to the 4.14-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 66e839030fd698586734e017fd55c4f2a89dba0b Mon Sep 17 00:00:00 2001
From: Matt Chen <matt.chen(a)intel.com>
Date: Fri, 3 Aug 2018 14:29:20 +0800
Subject: [PATCH] iwlwifi: fix wrong WGDS_WIFI_DATA_SIZE
>From coreboot/BIOS:
Name ("WGDS", Package() {
Revision,
Package() {
DomainType, // 0x7:WiFi ==> We miss this one.
WgdsWiFiSarDeltaGroup1PowerMax1, // Group 1 FCC 2400 Max
WgdsWiFiSarDeltaGroup1PowerChainA1, // Group 1 FCC 2400 A Offset
WgdsWiFiSarDeltaGroup1PowerChainB1, // Group 1 FCC 2400 B Offset
WgdsWiFiSarDeltaGroup1PowerMax2, // Group 1 FCC 5200 Max
WgdsWiFiSarDeltaGroup1PowerChainA2, // Group 1 FCC 5200 A Offset
WgdsWiFiSarDeltaGroup1PowerChainB2, // Group 1 FCC 5200 B Offset
WgdsWiFiSarDeltaGroup2PowerMax1, // Group 2 EC Jap 2400 Max
WgdsWiFiSarDeltaGroup2PowerChainA1, // Group 2 EC Jap 2400 A Offset
WgdsWiFiSarDeltaGroup2PowerChainB1, // Group 2 EC Jap 2400 B Offset
WgdsWiFiSarDeltaGroup2PowerMax2, // Group 2 EC Jap 5200 Max
WgdsWiFiSarDeltaGroup2PowerChainA2, // Group 2 EC Jap 5200 A Offset
WgdsWiFiSarDeltaGroup2PowerChainB2, // Group 2 EC Jap 5200 B Offset
WgdsWiFiSarDeltaGroup3PowerMax1, // Group 3 ROW 2400 Max
WgdsWiFiSarDeltaGroup3PowerChainA1, // Group 3 ROW 2400 A Offset
WgdsWiFiSarDeltaGroup3PowerChainB1, // Group 3 ROW 2400 B Offset
WgdsWiFiSarDeltaGroup3PowerMax2, // Group 3 ROW 5200 Max
WgdsWiFiSarDeltaGroup3PowerChainA2, // Group 3 ROW 5200 A Offset
WgdsWiFiSarDeltaGroup3PowerChainB2, // Group 3 ROW 5200 B Offset
}
})
When read the ACPI data to find out the WGDS, the DATA_SIZE is never
matched.
>From the above format, it gives 19 numbers, but our driver is hardcode
as 18.
Fix it to pass then can parse the data into our wgds table.
Then we will see:
iwlwifi 0000:01:00.0: U iwl_mvm_sar_geo_init Sending GEO_TX_POWER_LIMIT
iwlwifi 0000:01:00.0: U iwl_mvm_sar_geo_init SAR geographic profile[0]
Band[0]: chain A = 68 chain B = 69 max_tx_power = 54
iwlwifi 0000:01:00.0: U iwl_mvm_sar_geo_init SAR geographic profile[0]
Band[1]: chain A = 48 chain B = 49 max_tx_power = 70
iwlwifi 0000:01:00.0: U iwl_mvm_sar_geo_init SAR geographic profile[1]
Band[0]: chain A = 51 chain B = 67 max_tx_power = 50
iwlwifi 0000:01:00.0: U iwl_mvm_sar_geo_init SAR geographic profile[1]
Band[1]: chain A = 69 chain B = 70 max_tx_power = 68
iwlwifi 0000:01:00.0: U iwl_mvm_sar_geo_init SAR geographic profile[2]
Band[0]: chain A = 49 chain B = 50 max_tx_power = 48
iwlwifi 0000:01:00.0: U iwl_mvm_sar_geo_init SAR geographic profile[2]
Band[1]: chain A = 52 chain B = 53 max_tx_power = 51
Cc: stable(a)vger.kernel.org # 4.12+
Fixes: a6bff3cb19b7 ("iwlwifi: mvm: add GEO_TX_POWER_LIMIT cmd for geographic tx power table")
Signed-off-by: Matt Chen <matt.chen(a)intel.com>
Signed-off-by: Luca Coelho <luciano.coelho(a)intel.com>
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/acpi.h b/drivers/net/wireless/intel/iwlwifi/fw/acpi.h
index 2439e98431ee..7492dfb6729b 100644
--- a/drivers/net/wireless/intel/iwlwifi/fw/acpi.h
+++ b/drivers/net/wireless/intel/iwlwifi/fw/acpi.h
@@ -6,6 +6,7 @@
* GPL LICENSE SUMMARY
*
* Copyright(c) 2017 Intel Deutschland GmbH
+ * Copyright(c) 2018 Intel Corporation
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of version 2 of the GNU General Public License as
@@ -26,6 +27,7 @@
* BSD LICENSE
*
* Copyright(c) 2017 Intel Deutschland GmbH
+ * Copyright(c) 2018 Intel Corporation
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -81,7 +83,7 @@
#define ACPI_WRDS_WIFI_DATA_SIZE (ACPI_SAR_TABLE_SIZE + 2)
#define ACPI_EWRD_WIFI_DATA_SIZE ((ACPI_SAR_PROFILE_NUM - 1) * \
ACPI_SAR_TABLE_SIZE + 3)
-#define ACPI_WGDS_WIFI_DATA_SIZE 18
+#define ACPI_WGDS_WIFI_DATA_SIZE 19
#define ACPI_WRDD_WIFI_DATA_SIZE 2
#define ACPI_SPLC_WIFI_DATA_SIZE 2
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
index dade206d5511..899f4a6432fb 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
@@ -893,7 +893,7 @@ static int iwl_mvm_sar_geo_init(struct iwl_mvm *mvm)
IWL_DEBUG_RADIO(mvm, "Sending GEO_TX_POWER_LIMIT\n");
BUILD_BUG_ON(ACPI_NUM_GEO_PROFILES * ACPI_WGDS_NUM_BANDS *
- ACPI_WGDS_TABLE_SIZE != ACPI_WGDS_WIFI_DATA_SIZE);
+ ACPI_WGDS_TABLE_SIZE + 1 != ACPI_WGDS_WIFI_DATA_SIZE);
BUILD_BUG_ON(ACPI_NUM_GEO_PROFILES > IWL_NUM_GEO_PROFILES);
Hi Greg,
Few stable candidates for 4.9.y for your consideration.
Cherry picked and build tested on linux-4.9.141 for
ARCH=arm/arm64 + allmodconfig.
Few fixes are applicable for 4.4.y and 3.18.y as well,
but they needed minor rebasing, so I'll submit them
along with other fixes shortly in separate threads.
Regards,
Amit Pundir
Amitkumar Karwar (3):
mwifiex: prevent register accesses after host is sleeping
mwifiex: report error to PCIe for suspend failure
mwifiex: Fix NULL pointer dereference in skb_dequeue()
Johannes Thumshirn (1):
cw1200: Don't leak memory if krealloc failes
Karthik D A (1):
mwifiex: fix p2p device doesn't find in scan problem
Subhash Jadavani (2):
scsi: ufs: fix race between clock gating and devfreq scaling work
scsi: ufshcd: release resources if probe fails
Vasanthakumar Thiagarajan (1):
ath10k: fix kernel panic due to race in accessing arvif list
Venkat Gopalakrishnan (1):
scsi: ufshcd: Fix race between clk scaling and ungate work
Yaniv Gardi (1):
scsi: ufs: fix bugs related to null pointer access and array size
drivers/net/wireless/ath/ath10k/mac.c | 6 ++
drivers/net/wireless/marvell/mwifiex/cfg80211.c | 10 +++-
drivers/net/wireless/marvell/mwifiex/pcie.c | 19 +++++--
drivers/net/wireless/marvell/mwifiex/wmm.c | 12 +++-
drivers/net/wireless/st/cw1200/wsm.c | 16 +++---
drivers/scsi/ufs/ufs.h | 3 +-
drivers/scsi/ufs/ufshcd-pci.c | 2 +
drivers/scsi/ufs/ufshcd-pltfrm.c | 5 +-
drivers/scsi/ufs/ufshcd.c | 75 ++++++++++++++++++++++---
9 files changed, 118 insertions(+), 30 deletions(-)
--
2.7.4
On Thu, 2018-11-29 at 09:12 +0000, Sasha Levin wrote:
> Hi,
>
> [This is an automated email]
>
> This commit has been processed because it contains a -stable tag.
> The stable tag indicates that it's relevant for the following trees:
> all
>
> The bot has tested the following trees: v4.19.5, v4.14.84, v4.9.141,
> v4.4.165, v3.18.127,
>
> v4.19.5: Build OK!
> v4.14.84: Build OK!
> v4.9.141: Failed to apply! Possible dependencies:
>
> v4.4.165: Failed to apply! Possible dependencies:
>
> v3.18.127: Failed to apply! Possible dependencies:
>
> How should we proceed with this patch?
I think it's fine to apply it only to 4.19 and 4.14. It's not
imperative that the older kernels get it. People building those kernels
should already have their tools in place; it's not like we expect *new*
users of ancient kernels, who will be tripped up by this.
Currently kernel might allocate different connector ids
for the same outputs in case of DP MST, which seems to
confuse userspace. There are can be different connector
ids in the list, which could be assigned to the same
output, while being in different states.
This results in issues, like external displays staying
blank after quick unplugging and plugging back(bug #106250).
Returning only active DP connectors fixes the issue.
v2: Removed caps from the title
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106250
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy(a)intel.com>
---
drivers/gpu/drm/drm_mode_config.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c
index ee80788f2c40..ec5b2b08a45e 100644
--- a/drivers/gpu/drm/drm_mode_config.c
+++ b/drivers/gpu/drm/drm_mode_config.c
@@ -143,6 +143,7 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
drm_connector_list_iter_begin(dev, &conn_iter);
count = 0;
connector_id = u64_to_user_ptr(card_res->connector_id_ptr);
+ DRM_DEBUG_KMS("GetResources: writing connectors start");
drm_for_each_connector_iter(connector, &conn_iter) {
/* only expose writeback connectors if userspace understands them */
if (!file_priv->writeback_connectors &&
@@ -150,15 +151,20 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
continue;
if (drm_lease_held(file_priv, connector->base.id)) {
- if (count < card_res->count_connectors &&
- put_user(connector->base.id, connector_id + count)) {
- drm_connector_list_iter_end(&conn_iter);
- return -EFAULT;
+ if (connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort ||
+ connector->status != connector_status_disconnected) {
+ if (count < card_res->count_connectors &&
+ put_user(connector->base.id, connector_id + count)) {
+ drm_connector_list_iter_end(&conn_iter);
+ return -EFAULT;
+ }
+ DRM_DEBUG_KMS("GetResources: connector %s", connector->name);
+ count++;
}
- count++;
}
}
card_res->count_connectors = count;
+ DRM_DEBUG_KMS("GetResources: writing connectors end - count %d", count);
drm_connector_list_iter_end(&conn_iter);
return ret;
--
2.17.1
The patch below does not apply to the 4.19-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 25bbe21bf427a81b8e3ccd480ea0e1d940256156 Mon Sep 17 00:00:00 2001
From: Matthew Wilcox <willy(a)infradead.org>
Date: Fri, 16 Nov 2018 15:50:02 -0500
Subject: [PATCH] dax: Avoid losing wakeup in dax_lock_mapping_entry
After calling get_unlocked_entry(), you have to call
put_unlocked_entry() to avoid subsequent waiters losing wakeups.
Fixes: c2a7d2a11552 ("filesystem-dax: Introduce dax_lock_mapping_entry()")
Cc: stable(a)vger.kernel.org
Signed-off-by: Matthew Wilcox <willy(a)infradead.org>
diff --git a/fs/dax.c b/fs/dax.c
index cf2394e2bf4b..9bcce89ea18e 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -391,6 +391,7 @@ bool dax_lock_mapping_entry(struct page *page)
rcu_read_unlock();
entry = get_unlocked_entry(&xas);
xas_unlock_irq(&xas);
+ put_unlocked_entry(&xas, entry);
rcu_read_lock();
continue;
}
From: "Cherian, George" <George.Cherian(a)cavium.com>
commit 11644a7659529730eaf2f166efaabe7c3dc7af8c upstream
Implement workaround for ThunderX2 Errata-129 (documented in
CN99XX Known Issues" available at Cavium support site).
As per ThunderX2errata-129, USB 2 device may come up as USB 1
if a connection to a USB 1 device is followed by another connection to
a USB 2 device, the link will come up as USB 1 for the USB 2 device.
Resolution: Reset the PHY after the USB 1 device is disconnected.
The PHY reset sequence is done using private registers in XHCI register
space. After the PHY is reset we check for the PLL lock status and retry
the operation if it fails. From our tests, retrying 4 times is sufficient.
Add a new quirk flag XHCI_RESET_PLL_ON_DISCONNECT to invoke the workaround
in handle_xhci_port_status().
Cc: stable(a)vger.kernel.org
Cc: stable(a)vger.kernel.org # 4.14.x: 36b6857: xhci: Allow more than 32 quirks
Signed-off-by: George Cherian <george.cherian(a)cavium.com>
Signed-off-by: Mathias Nyman <mathias.nyman(a)linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
There is a conflict while cherry-pick of 36b6857: xhci: Allow more than
32 quirks. It is trivial to resolve. Let me know in case if it is an
issue.
drivers/usb/host/xhci-pci.c | 5 +++++
drivers/usb/host/xhci-ring.c | 35 ++++++++++++++++++++++++++++++++++-
drivers/usb/host/xhci.h | 1 +
3 files changed, 40 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 9218f506f8e3..4b07b6859b4c 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -236,6 +236,11 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
if (pdev->vendor == PCI_VENDOR_ID_TI && pdev->device == 0x8241)
xhci->quirks |= XHCI_LIMIT_ENDPOINT_INTERVAL_7;
+ if ((pdev->vendor == PCI_VENDOR_ID_BROADCOM ||
+ pdev->vendor == PCI_VENDOR_ID_CAVIUM) &&
+ pdev->device == 0x9026)
+ xhci->quirks |= XHCI_RESET_PLL_ON_DISCONNECT;
+
if (xhci->quirks & XHCI_RESET_ON_RESUME)
xhci_dbg_trace(xhci, trace_xhci_dbg_quirks,
"QUIRK: Resetting on resume");
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 6996235e34a9..ea35f346d26b 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -1568,6 +1568,35 @@ static void handle_device_notification(struct xhci_hcd *xhci,
usb_wakeup_notification(udev->parent, udev->portnum);
}
+/*
+ * Quirk hanlder for errata seen on Cavium ThunderX2 processor XHCI
+ * Controller.
+ * As per ThunderX2errata-129 USB 2 device may come up as USB 1
+ * If a connection to a USB 1 device is followed by another connection
+ * to a USB 2 device.
+ *
+ * Reset the PHY after the USB device is disconnected if device speed
+ * is less than HCD_USB3.
+ * Retry the reset sequence max of 4 times checking the PLL lock status.
+ *
+ */
+static void xhci_cavium_reset_phy_quirk(struct xhci_hcd *xhci)
+{
+ struct usb_hcd *hcd = xhci_to_hcd(xhci);
+ u32 pll_lock_check;
+ u32 retry_count = 4;
+
+ do {
+ /* Assert PHY reset */
+ writel(0x6F, hcd->regs + 0x1048);
+ udelay(10);
+ /* De-assert the PHY reset */
+ writel(0x7F, hcd->regs + 0x1048);
+ udelay(200);
+ pll_lock_check = readl(hcd->regs + 0x1070);
+ } while (!(pll_lock_check & 0x1) && --retry_count);
+}
+
static void handle_port_status(struct xhci_hcd *xhci,
union xhci_trb *event)
{
@@ -1725,9 +1754,13 @@ static void handle_port_status(struct xhci_hcd *xhci,
goto cleanup;
}
- if (hcd->speed < HCD_USB3)
+ if (hcd->speed < HCD_USB3) {
xhci_test_and_clear_bit(xhci, port_array, faked_port_index,
PORT_PLC);
+ if ((xhci->quirks & XHCI_RESET_PLL_ON_DISCONNECT) &&
+ (portsc & PORT_CSC) && !(portsc & PORT_CONNECT))
+ xhci_cavium_reset_phy_quirk(xhci);
+ }
cleanup:
/* Update event ring dequeue pointer before dropping the lock */
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index d7d2a3dfafb8..84457fc192fc 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1836,6 +1836,7 @@ struct xhci_hcd {
#define XHCI_U2_DISABLE_WAKE BIT_ULL(27)
#define XHCI_ASMEDIA_MODIFY_FLOWCONTROL BIT_ULL(28)
#define XHCI_SUSPEND_DELAY BIT_ULL(30)
+#define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
unsigned int num_active_eps;
unsigned int limit_active_eps;
--
2.19.2
The patch titled
Subject: mm/khugepaged: collapse_shmem() do not crash on Compound
has been added to the -mm tree. Its filename is
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-khugepaged-collapse_shmem-do-no…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-khugepaged-collapse_shmem-do-no…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/khugepaged: collapse_shmem() do not crash on Compound
collapse_shmem()'s VM_BUG_ON_PAGE(PageTransCompound) was unsafe: before it
holds page lock of the first page, racing truncation then extension might
conceivably have inserted a hugepage there already. Fail with the
SCAN_PAGE_COMPOUND result, instead of crashing (CONFIG_DEBUG_VM=y) or
otherwise mishandling the unexpected hugepage - though later we might code
up a more constructive way of handling it, with SCAN_SUCCESS.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261529310.2275@eggly.anvils
Fixes: f3f0e1d2150b2 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Cc: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/khugepaged.c~mm-khugepaged-collapse_shmem-do-not-crash-on-compound
+++ a/mm/khugepaged.c
@@ -1399,7 +1399,15 @@ static void collapse_shmem(struct mm_str
*/
VM_BUG_ON_PAGE(!PageLocked(page), page);
VM_BUG_ON_PAGE(!PageUptodate(page), page);
- VM_BUG_ON_PAGE(PageTransCompound(page), page);
+
+ /*
+ * If file was truncated then extended, or hole-punched, before
+ * we locked the first page, then a THP might be there already.
+ */
+ if (PageTransCompound(page)) {
+ result = SCAN_PAGE_COMPOUND;
+ goto out_unlock;
+ }
if (page_mapping(page) != mapping) {
result = SCAN_TRUNCATED;
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
The patch titled
Subject: mm/khugepaged: collapse_shmem() without freezing new_page
has been added to the -mm tree. Its filename is
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-khugepaged-collapse_shmem-witho…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-khugepaged-collapse_shmem-witho…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/khugepaged: collapse_shmem() without freezing new_page
khugepaged's collapse_shmem() does almost all of its work, to assemble the
huge new_page from 512 scattered old pages, with the new_page's refcount
frozen to 0 (and refcounts of all old pages so far also frozen to 0).
Including shmem_getpage() to read in any which were out on swap, memory
reclaim if necessary to allocate their intermediate pages, and copying
over all the data from old to new.
Imagine the frozen refcount as a spinlock held, but without any lock
debugging to highlight the abuse: it's not good, and under serious load
heads into lockups - speculative getters of the page are not expecting to
spin while khugepaged is rescheduled.
One can get a little further under load by hacking around elsewhere; but
fortunately, freezing the new_page turns out to have been entirely
unnecessary, with no hacks needed elsewhere.
The huge new_page lock is already held throughout, and guards all its
subpages as they are brought one by one into the page cache tree; and
anything reading the data in that page, without the lock, before it has
been marked PageUptodate, would already be in the wrong. So simply
eliminate the freezing of the new_page.
Each of the old pages remains frozen with refcount 0 after it has been
replaced by a new_page subpage in the page cache tree, until they are all
unfrozen on success or failure: just as before. They could be unfrozen
sooner, but cause no problem once no longer visible to find_get_entry(),
filemap_map_pages() and other speculative lookups.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261527570.2275@eggly.anvils
Fixes: f3f0e1d2150b2 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/khugepaged.c~mm-khugepaged-collapse_shmem-without-freezing-new_page
+++ a/mm/khugepaged.c
@@ -1287,7 +1287,7 @@ static void retract_page_tables(struct a
* collapse_shmem - collapse small tmpfs/shmem pages into huge one.
*
* Basic scheme is simple, details are more complex:
- * - allocate and freeze a new huge page;
+ * - allocate and lock a new huge page;
* - scan page cache replacing old pages with the new one
* + swap in pages if necessary;
* + fill in gaps;
@@ -1295,11 +1295,11 @@ static void retract_page_tables(struct a
* - if replacing succeeds:
* + copy data over;
* + free old pages;
- * + unfreeze huge page;
+ * + unlock huge page;
* - if replacing failed;
* + put all pages back and unfreeze them;
* + restore gaps in the page cache;
- * + free huge page;
+ * + unlock and free huge page;
*/
static void collapse_shmem(struct mm_struct *mm,
struct address_space *mapping, pgoff_t start,
@@ -1333,13 +1333,11 @@ static void collapse_shmem(struct mm_str
__SetPageSwapBacked(new_page);
new_page->index = start;
new_page->mapping = mapping;
- BUG_ON(!page_ref_freeze(new_page, 1));
/*
- * At this point the new_page is 'frozen' (page_count() is zero),
- * locked and not up-to-date. It's safe to insert it into the page
- * cache, because nobody would be able to map it or use it in other
- * way until we unfreeze it.
+ * At this point the new_page is locked and not up-to-date.
+ * It's safe to insert it into the page cache, because nobody would
+ * be able to map it or use it in another way until we unlock it.
*/
/* This will be less messy when we use multi-index entries */
@@ -1491,9 +1489,8 @@ xa_unlocked:
index++;
}
- /* Everything is ready, let's unfreeze the new_page */
SetPageUptodate(new_page);
- page_ref_unfreeze(new_page, HPAGE_PMD_NR);
+ page_ref_add(new_page, HPAGE_PMD_NR - 1);
set_page_dirty(new_page);
mem_cgroup_commit_charge(new_page, memcg, false, true);
lru_cache_add_anon(new_page);
@@ -1541,8 +1538,6 @@ xa_unlocked:
VM_BUG_ON(nr_none);
xas_unlock_irq(&xas);
- /* Unfreeze new_page, caller would take care about freeing it */
- page_ref_unfreeze(new_page, 1);
mem_cgroup_cancel_charge(new_page, memcg, true);
new_page->mapping = NULL;
}
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
The patch titled
Subject: mm/khugepaged: minor reorderings in collapse_shmem()
has been added to the -mm tree. Its filename is
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-khugepaged-minor-reorderings-in…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-khugepaged-minor-reorderings-in…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/khugepaged: minor reorderings in collapse_shmem()
Several cleanups in collapse_shmem(): most of which probably do not really
matter, beyond doing things in a more familiar and reassuring order.
Simplify the failure gotos in the main loop, and on success update stats
while interrupts still disabled from the last iteration.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261526400.2275@eggly.anvils
Fixes: f3f0e1d2150b2 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Cc: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/khugepaged.c~mm-khugepaged-minor-reorderings-in-collapse_shmem
+++ a/mm/khugepaged.c
@@ -1329,10 +1329,10 @@ static void collapse_shmem(struct mm_str
goto out;
}
+ __SetPageLocked(new_page);
+ __SetPageSwapBacked(new_page);
new_page->index = start;
new_page->mapping = mapping;
- __SetPageSwapBacked(new_page);
- __SetPageLocked(new_page);
BUG_ON(!page_ref_freeze(new_page, 1));
/*
@@ -1366,13 +1366,13 @@ static void collapse_shmem(struct mm_str
if (index == start) {
if (!xas_next_entry(&xas, end - 1)) {
result = SCAN_TRUNCATED;
- break;
+ goto xa_locked;
}
xas_set(&xas, index);
}
if (!shmem_charge(mapping->host, 1)) {
result = SCAN_FAIL;
- break;
+ goto xa_locked;
}
xas_store(&xas, new_page + (index % HPAGE_PMD_NR));
nr_none++;
@@ -1387,13 +1387,12 @@ static void collapse_shmem(struct mm_str
result = SCAN_FAIL;
goto xa_unlocked;
}
- xas_lock_irq(&xas);
- xas_set(&xas, index);
} else if (trylock_page(page)) {
get_page(page);
+ xas_unlock_irq(&xas);
} else {
result = SCAN_PAGE_LOCK;
- break;
+ goto xa_locked;
}
/*
@@ -1408,11 +1407,10 @@ static void collapse_shmem(struct mm_str
result = SCAN_TRUNCATED;
goto out_unlock;
}
- xas_unlock_irq(&xas);
if (isolate_lru_page(page)) {
result = SCAN_DEL_PAGE_LRU;
- goto out_isolate_failed;
+ goto out_unlock;
}
if (page_mapped(page))
@@ -1432,7 +1430,9 @@ static void collapse_shmem(struct mm_str
*/
if (!page_ref_freeze(page, 3)) {
result = SCAN_PAGE_COUNT;
- goto out_lru;
+ xas_unlock_irq(&xas);
+ putback_lru_page(page);
+ goto out_unlock;
}
/*
@@ -1444,24 +1444,26 @@ static void collapse_shmem(struct mm_str
/* Finally, replace with the new page. */
xas_store(&xas, new_page + (index % HPAGE_PMD_NR));
continue;
-out_lru:
- xas_unlock_irq(&xas);
- putback_lru_page(page);
-out_isolate_failed:
- unlock_page(page);
- put_page(page);
- goto xa_unlocked;
out_unlock:
unlock_page(page);
put_page(page);
- break;
+ goto xa_unlocked;
+ }
+
+ __inc_node_page_state(new_page, NR_SHMEM_THPS);
+ if (nr_none) {
+ struct zone *zone = page_zone(new_page);
+
+ __mod_node_page_state(zone->zone_pgdat, NR_FILE_PAGES, nr_none);
+ __mod_node_page_state(zone->zone_pgdat, NR_SHMEM, nr_none);
}
- xas_unlock_irq(&xas);
+xa_locked:
+ xas_unlock_irq(&xas);
xa_unlocked:
+
if (result == SCAN_SUCCEED) {
struct page *page, *tmp;
- struct zone *zone = page_zone(new_page);
/*
* Replacing old pages with new one has succeeded, now we
@@ -1476,11 +1478,11 @@ xa_unlocked:
copy_highpage(new_page + (page->index % HPAGE_PMD_NR),
page);
list_del(&page->lru);
- unlock_page(page);
- page_ref_unfreeze(page, 1);
page->mapping = NULL;
+ page_ref_unfreeze(page, 1);
ClearPageActive(page);
ClearPageUnevictable(page);
+ unlock_page(page);
put_page(page);
index++;
}
@@ -1489,28 +1491,17 @@ xa_unlocked:
index++;
}
- local_irq_disable();
- __inc_node_page_state(new_page, NR_SHMEM_THPS);
- if (nr_none) {
- __mod_node_page_state(zone->zone_pgdat, NR_FILE_PAGES, nr_none);
- __mod_node_page_state(zone->zone_pgdat, NR_SHMEM, nr_none);
- }
- local_irq_enable();
-
- /*
- * Remove pte page tables, so we can re-fault
- * the page as huge.
- */
- retract_page_tables(mapping, start);
-
/* Everything is ready, let's unfreeze the new_page */
- set_page_dirty(new_page);
SetPageUptodate(new_page);
page_ref_unfreeze(new_page, HPAGE_PMD_NR);
+ set_page_dirty(new_page);
mem_cgroup_commit_charge(new_page, memcg, false, true);
lru_cache_add_anon(new_page);
- unlock_page(new_page);
+ /*
+ * Remove pte page tables, so we can re-fault the page as huge.
+ */
+ retract_page_tables(mapping, start);
*hpage = NULL;
khugepaged_pages_collapsed++;
@@ -1543,8 +1534,8 @@ xa_unlocked:
xas_store(&xas, page);
xas_pause(&xas);
xas_unlock_irq(&xas);
- putback_lru_page(page);
unlock_page(page);
+ putback_lru_page(page);
xas_lock_irq(&xas);
}
VM_BUG_ON(nr_none);
@@ -1553,9 +1544,10 @@ xa_unlocked:
/* Unfreeze new_page, caller would take care about freeing it */
page_ref_unfreeze(new_page, 1);
mem_cgroup_cancel_charge(new_page, memcg, true);
- unlock_page(new_page);
new_page->mapping = NULL;
}
+
+ unlock_page(new_page);
out:
VM_BUG_ON(!list_empty(&pagelist));
/* TODO: tracepoints */
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
The patch titled
Subject: mm/khugepaged: collapse_shmem() remember to clear holes
has been added to the -mm tree. Its filename is
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-khugepaged-collapse_shmem-remem…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-khugepaged-collapse_shmem-remem…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/khugepaged: collapse_shmem() remember to clear holes
Huge tmpfs testing reminds us that there is no __GFP_ZERO in the gfp flags
khugepaged uses to allocate a huge page - in all common cases it would
just be a waste of effort - so collapse_shmem() must remember to clear out
any holes that it instantiates.
The obvious place to do so, where they are put into the page cache tree,
is not a good choice: because interrupts are disabled there. Leave it
until further down, once success is assured, where the other pages are
copied (before setting PageUptodate).
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261525080.2275@eggly.anvils
Fixes: f3f0e1d2150b2 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/khugepaged.c~mm-khugepaged-collapse_shmem-remember-to-clear-holes
+++ a/mm/khugepaged.c
@@ -1467,7 +1467,12 @@ xa_unlocked:
* Replacing old pages with new one has succeeded, now we
* need to copy the content and free the old pages.
*/
+ index = start;
list_for_each_entry_safe(page, tmp, &pagelist, lru) {
+ while (index < page->index) {
+ clear_highpage(new_page + (index % HPAGE_PMD_NR));
+ index++;
+ }
copy_highpage(new_page + (page->index % HPAGE_PMD_NR),
page);
list_del(&page->lru);
@@ -1477,6 +1482,11 @@ xa_unlocked:
ClearPageActive(page);
ClearPageUnevictable(page);
put_page(page);
+ index++;
+ }
+ while (index < end) {
+ clear_highpage(new_page + (index % HPAGE_PMD_NR));
+ index++;
}
local_irq_disable();
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
The patch titled
Subject: mm/khugepaged: fix crashes due to misaccounted holes
has been added to the -mm tree. Its filename is
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-khugepaged-fix-crashes-due-to-m…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-khugepaged-fix-crashes-due-to-m…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/khugepaged: fix crashes due to misaccounted holes
Huge tmpfs testing on a shortish file mapped into a pmd-rounded extent hit
shmem_evict_inode()'s WARN_ON(inode->i_blocks) followed by clear_inode()'s
BUG_ON(inode->i_data.nrpages) when the file was later closed and unlinked.
khugepaged's collapse_shmem() was forgetting to update mapping->nrpages on
the rollback path, after it had added but then needs to undo some holes.
There is indeed an irritating asymmetry between shmem_charge(), whose
callers want it to increment nrpages after successfully accounting blocks,
and shmem_uncharge(), when __delete_from_page_cache() already decremented
nrpages itself: oh well, just add a comment on that to them both.
And shmem_recalc_inode() is supposed to be called when the accounting is
expected to be in balance (so it can deduce from imbalance that reclaim
discarded some pages): so change shmem_charge() to update nrpages earlier
(though it's rare for the difference to matter at all).
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261523450.2275@eggly.anvils
Fixes: 800d8c63b2e98 ("shmem: add huge pages support")
Fixes: f3f0e1d2150b2 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/khugepaged.c~mm-khugepaged-fix-crashes-due-to-misaccounted-holes
+++ a/mm/khugepaged.c
@@ -1506,9 +1506,12 @@ xa_unlocked:
khugepaged_pages_collapsed++;
} else {
struct page *page;
+
/* Something went wrong: roll back page cache changes */
- shmem_uncharge(mapping->host, nr_none);
xas_lock_irq(&xas);
+ mapping->nrpages -= nr_none;
+ shmem_uncharge(mapping->host, nr_none);
+
xas_set(&xas, start);
xas_for_each(&xas, page, end - 1) {
page = list_first_entry_or_null(&pagelist,
--- a/mm/shmem.c~mm-khugepaged-fix-crashes-due-to-misaccounted-holes
+++ a/mm/shmem.c
@@ -297,12 +297,14 @@ bool shmem_charge(struct inode *inode, l
if (!shmem_inode_acct_block(inode, pages))
return false;
+ /* nrpages adjustment first, then shmem_recalc_inode() when balanced */
+ inode->i_mapping->nrpages += pages;
+
spin_lock_irqsave(&info->lock, flags);
info->alloced += pages;
inode->i_blocks += pages * BLOCKS_PER_PAGE;
shmem_recalc_inode(inode);
spin_unlock_irqrestore(&info->lock, flags);
- inode->i_mapping->nrpages += pages;
return true;
}
@@ -312,6 +314,8 @@ void shmem_uncharge(struct inode *inode,
struct shmem_inode_info *info = SHMEM_I(inode);
unsigned long flags;
+ /* nrpages adjustment done by __delete_from_page_cache() or caller */
+
spin_lock_irqsave(&info->lock, flags);
info->alloced -= pages;
inode->i_blocks -= pages * BLOCKS_PER_PAGE;
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
The patch titled
Subject: mm/khugepaged: collapse_shmem() stop if punched or truncated
has been added to the -mm tree. Its filename is
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-khugepaged-collapse_shmem-stop-…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-khugepaged-collapse_shmem-stop-…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/khugepaged: collapse_shmem() stop if punched or truncated
Huge tmpfs testing showed that although collapse_shmem() recognizes a
concurrently truncated or hole-punched page correctly, its handling of
holes was liable to refill an emptied extent. Add check to stop that.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261522040.2275@eggly.anvils
Fixes: f3f0e1d2150b2 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Reviewed-by: Matthew Wilcox <willy(a)infradead.org>
Cc: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/khugepaged.c~mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated
+++ a/mm/khugepaged.c
@@ -1359,6 +1359,17 @@ static void collapse_shmem(struct mm_str
VM_BUG_ON(index != xas.xa_index);
if (!page) {
+ /*
+ * Stop if extent has been truncated or hole-punched,
+ * and is now completely empty.
+ */
+ if (index == start) {
+ if (!xas_next_entry(&xas, end - 1)) {
+ result = SCAN_TRUNCATED;
+ break;
+ }
+ xas_set(&xas, index);
+ }
if (!shmem_charge(mapping->host, 1)) {
result = SCAN_FAIL;
break;
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
The patch titled
Subject: mm/huge_memory: fix lockdep complaint on 32-bit i_size_read()
has been added to the -mm tree. Its filename is
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-huge_memory-fix-lockdep-complai…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-huge_memory-fix-lockdep-complai…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/huge_memory: fix lockdep complaint on 32-bit i_size_read()
Huge tmpfs testing, on 32-bit kernel with lockdep enabled, showed that
__split_huge_page() was using i_size_read() while holding the irq-safe
lru_lock and page tree lock, but the 32-bit i_size_read() uses an
irq-unsafe seqlock which should not be nested inside them.
Instead, read the i_size earlier in split_huge_page_to_list(), and pass
the end offset down to __split_huge_page(): all while holding head page
lock, which is enough to prevent truncation of that extent before the page
tree lock has been taken.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261520070.2275@eggly.anvils
Fixes: baa355fd33142 ("thp: file pages support for split_huge_page()")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/huge_memory.c~mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read
+++ a/mm/huge_memory.c
@@ -2439,12 +2439,11 @@ static void __split_huge_page_tail(struc
}
static void __split_huge_page(struct page *page, struct list_head *list,
- unsigned long flags)
+ pgoff_t end, unsigned long flags)
{
struct page *head = compound_head(page);
struct zone *zone = page_zone(head);
struct lruvec *lruvec;
- pgoff_t end = -1;
int i;
lruvec = mem_cgroup_page_lruvec(head, zone->zone_pgdat);
@@ -2452,9 +2451,6 @@ static void __split_huge_page(struct pag
/* complete memcg works before add pages to LRU */
mem_cgroup_split_huge_fixup(head);
- if (!PageAnon(page))
- end = DIV_ROUND_UP(i_size_read(head->mapping->host), PAGE_SIZE);
-
for (i = HPAGE_PMD_NR - 1; i >= 1; i--) {
__split_huge_page_tail(head, i, lruvec, list);
/* Some pages can be beyond i_size: drop them from page cache */
@@ -2626,6 +2622,7 @@ int split_huge_page_to_list(struct page
int count, mapcount, extra_pins, ret;
bool mlocked;
unsigned long flags;
+ pgoff_t end;
VM_BUG_ON_PAGE(is_huge_zero_page(page), page);
VM_BUG_ON_PAGE(!PageLocked(page), page);
@@ -2648,6 +2645,7 @@ int split_huge_page_to_list(struct page
ret = -EBUSY;
goto out;
}
+ end = -1;
mapping = NULL;
anon_vma_lock_write(anon_vma);
} else {
@@ -2661,6 +2659,15 @@ int split_huge_page_to_list(struct page
anon_vma = NULL;
i_mmap_lock_read(mapping);
+
+ /*
+ *__split_huge_page() may need to trim off pages beyond EOF:
+ * but on 32-bit, i_size_read() takes an irq-unsafe seqlock,
+ * which cannot be nested inside the page tree lock. So note
+ * end now: i_size itself may be changed at any moment, but
+ * head page lock is good enough to serialize the trimming.
+ */
+ end = DIV_ROUND_UP(i_size_read(mapping->host), PAGE_SIZE);
}
/*
@@ -2707,7 +2714,7 @@ int split_huge_page_to_list(struct page
if (mapping)
__dec_node_page_state(page, NR_SHMEM_THPS);
spin_unlock(&pgdata->split_queue_lock);
- __split_huge_page(page, list, flags);
+ __split_huge_page(page, list, end, flags);
if (PageSwapCache(head)) {
swp_entry_t entry = { .val = page_private(head) };
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
The patch titled
Subject: mm/huge_memory: splitting set mapping+index before unfreeze
has been added to the -mm tree. Its filename is
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-huge_memory-splitting-set-mappi…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-huge_memory-splitting-set-mappi…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/huge_memory: splitting set mapping+index before unfreeze
Huge tmpfs stress testing has occasionally hit shmem_undo_range()'s
VM_BUG_ON_PAGE(page_to_pgoff(page) != index, page).
Move the setting of mapping and index up before the page_ref_unfreeze() in
__split_huge_page_tail() to fix this: so that a page cache lookup cannot
get a reference while the tail's mapping and index are unstable.
In fact, might as well move them up before the smp_wmb(): I don't see an
actual need for that, but if I'm missing something, this way round is
safer than the other, and no less efficient.
You might argue that VM_BUG_ON_PAGE(page_to_pgoff(page) != index, page) is
misplaced, and should be left until after the trylock_page(); but left as
is has not crashed since, and gives more stringent assurance.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261516380.2275@eggly.anvils
Fixes: e9b61f19858a5 ("thp: reintroduce split_huge_page()")
Requires: 605ca5ede764 ("mm/huge_memory.c: reorder operations in __split_huge_page_tail()")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/huge_memory.c~mm-huge_memory-splitting-set-mappingindex-before-unfreeze
+++ a/mm/huge_memory.c
@@ -2402,6 +2402,12 @@ static void __split_huge_page_tail(struc
(1L << PG_unevictable) |
(1L << PG_dirty)));
+ /* ->mapping in first tail page is compound_mapcount */
+ VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING,
+ page_tail);
+ page_tail->mapping = head->mapping;
+ page_tail->index = head->index + tail;
+
/* Page flags must be visible before we make the page non-compound. */
smp_wmb();
@@ -2422,12 +2428,6 @@ static void __split_huge_page_tail(struc
if (page_is_idle(head))
set_page_idle(page_tail);
- /* ->mapping in first tail page is compound_mapcount */
- VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING,
- page_tail);
- page_tail->mapping = head->mapping;
-
- page_tail->index = head->index + tail;
page_cpupid_xchg_last(page_tail, page_cpupid_last(head));
/*
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
The patch titled
Subject: mm/huge_memory: rename freeze_page() to unmap_page()
has been added to the -mm tree. Its filename is
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-huge_memory-rename-freeze_page-…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-huge_memory-rename-freeze_page-…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/huge_memory: rename freeze_page() to unmap_page()
The term "freeze" is used in several ways in the kernel, and in mm it has
the particular meaning of forcing page refcount temporarily to 0.
freeze_page() is just too confusing a name for a function that unmaps a
page: rename it unmap_page(), and rename unfreeze_page() remap_page().
Went to change the mention of freeze_page() added later in mm/rmap.c, but
found it to be incorrect: ordinary page reclaim reaches there too; but the
substance of the comment still seems correct, so edit it down.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261514080.2275@eggly.anvils
Fixes: e9b61f19858a5 ("thp: reintroduce split_huge_page()")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/huge_memory.c~mm-huge_memory-rename-freeze_page-to-unmap_page
+++ a/mm/huge_memory.c
@@ -2350,7 +2350,7 @@ void vma_adjust_trans_huge(struct vm_are
}
}
-static void freeze_page(struct page *page)
+static void unmap_page(struct page *page)
{
enum ttu_flags ttu_flags = TTU_IGNORE_MLOCK | TTU_IGNORE_ACCESS |
TTU_RMAP_LOCKED | TTU_SPLIT_HUGE_PMD;
@@ -2365,7 +2365,7 @@ static void freeze_page(struct page *pag
VM_BUG_ON_PAGE(!unmap_success, page);
}
-static void unfreeze_page(struct page *page)
+static void remap_page(struct page *page)
{
int i;
if (PageTransHuge(page)) {
@@ -2483,7 +2483,7 @@ static void __split_huge_page(struct pag
spin_unlock_irqrestore(zone_lru_lock(page_zone(head)), flags);
- unfreeze_page(head);
+ remap_page(head);
for (i = 0; i < HPAGE_PMD_NR; i++) {
struct page *subpage = head + i;
@@ -2664,7 +2664,7 @@ int split_huge_page_to_list(struct page
}
/*
- * Racy check if we can split the page, before freeze_page() will
+ * Racy check if we can split the page, before unmap_page() will
* split PMDs
*/
if (!can_split_huge_page(head, &extra_pins)) {
@@ -2673,7 +2673,7 @@ int split_huge_page_to_list(struct page
}
mlocked = PageMlocked(page);
- freeze_page(head);
+ unmap_page(head);
VM_BUG_ON_PAGE(compound_mapcount(head), head);
/* Make sure the page is not on per-CPU pagevec as it takes pin */
@@ -2727,7 +2727,7 @@ int split_huge_page_to_list(struct page
fail: if (mapping)
xa_unlock(&mapping->i_pages);
spin_unlock_irqrestore(zone_lru_lock(page_zone(head)), flags);
- unfreeze_page(head);
+ remap_page(head);
ret = -EBUSY;
}
--- a/mm/rmap.c~mm-huge_memory-rename-freeze_page-to-unmap_page
+++ a/mm/rmap.c
@@ -1627,16 +1627,9 @@ static bool try_to_unmap_one(struct page
address + PAGE_SIZE);
} else {
/*
- * We should not need to notify here as we reach this
- * case only from freeze_page() itself only call from
- * split_huge_page_to_list() so everything below must
- * be true:
- * - page is not anonymous
- * - page is locked
- *
- * So as it is a locked file back page thus it can not
- * be remove from the page cache and replace by a new
- * page before mmu_notifier_invalidate_range_end so no
+ * This is a locked file-backed page, thus it cannot
+ * be removed from the page cache and replaced by a new
+ * page before mmu_notifier_invalidate_range_end, so no
* concurrent thread might update its page table to
* point at new page while a device still is using this
* page.
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
From: Dexuan Cui <decui(a)microsoft.com>
We can concurrently try to open the same sub-channel from 2 paths:
path #1: vmbus_onoffer() -> vmbus_process_offer() -> handle_sc_creation().
path #2: storvsc_probe() -> storvsc_connect_to_vsp() ->
-> storvsc_channel_init() -> handle_multichannel_storage() ->
-> vmbus_are_subchannels_present() -> handle_sc_creation().
They conflict with each other, but it was not an issue before the recent
commit ae6935ed7d42 ("vmbus: split ring buffer allocation from open"),
because at the beginning of vmbus_open() we checked newchannel->state so
only one path could succeed, and the other would return with -EINVAL.
After ae6935ed7d42, the failing path frees the channel's ringbuffer by
vmbus_free_ring(), and this causes a panic later.
Commit ae6935ed7d42 itself is good, and it just reveals the longstanding
race. We can resolve the issue by removing path #2, i.e. removing the
second vmbus_are_subchannels_present() in handle_multichannel_storage().
BTW, the comment "Check to see if sub-channels have already been created"
in handle_multichannel_storage() is incorrect: when we unload the driver,
we first close the sub-channel(s) and then close the primary channel, next
the host sends rescind-offer message(s) so primary->sc_list will become
empty. This means the first vmbus_are_subchannels_present() in
handle_multichannel_storage() is never useful.
Fixes: ae6935ed7d42 ("vmbus: split ring buffer allocation from open")
Cc: stable(a)vger.kernel.org
Cc: Long Li <longli(a)microsoft.com>
Cc: Stephen Hemminger <sthemmin(a)microsoft.com>
Cc: K. Y. Srinivasan <kys(a)microsoft.com>
Cc: Haiyang Zhang <haiyangz(a)microsoft.com>
Signed-off-by: Dexuan Cui <decui(a)microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys(a)microsoft.com>
---
drivers/scsi/storvsc_drv.c | 61 +++++++++++++++++++-------------------
1 file changed, 30 insertions(+), 31 deletions(-)
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index f03dc03a42c3..8f88348ebe42 100644
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -446,7 +446,6 @@ struct storvsc_device {
bool destroy;
bool drain_notify;
- bool open_sub_channel;
atomic_t num_outstanding_req;
struct Scsi_Host *host;
@@ -636,33 +635,38 @@ static inline struct storvsc_device *get_in_stor_device(
static void handle_sc_creation(struct vmbus_channel *new_sc)
{
struct hv_device *device = new_sc->primary_channel->device_obj;
+ struct device *dev = &device->device;
struct storvsc_device *stor_device;
struct vmstorage_channel_properties props;
+ int ret;
stor_device = get_out_stor_device(device);
if (!stor_device)
return;
- if (stor_device->open_sub_channel == false)
- return;
-
memset(&props, 0, sizeof(struct vmstorage_channel_properties));
- vmbus_open(new_sc,
- storvsc_ringbuffer_size,
- storvsc_ringbuffer_size,
- (void *)&props,
- sizeof(struct vmstorage_channel_properties),
- storvsc_on_channel_callback, new_sc);
+ ret = vmbus_open(new_sc,
+ storvsc_ringbuffer_size,
+ storvsc_ringbuffer_size,
+ (void *)&props,
+ sizeof(struct vmstorage_channel_properties),
+ storvsc_on_channel_callback, new_sc);
- if (new_sc->state == CHANNEL_OPENED_STATE) {
- stor_device->stor_chns[new_sc->target_cpu] = new_sc;
- cpumask_set_cpu(new_sc->target_cpu, &stor_device->alloced_cpus);
+ /* In case vmbus_open() fails, we don't use the sub-channel. */
+ if (ret != 0) {
+ dev_err(dev, "Failed to open sub-channel: err=%d\n", ret);
+ return;
}
+
+ /* Add the sub-channel to the array of available channels. */
+ stor_device->stor_chns[new_sc->target_cpu] = new_sc;
+ cpumask_set_cpu(new_sc->target_cpu, &stor_device->alloced_cpus);
}
static void handle_multichannel_storage(struct hv_device *device, int max_chns)
{
+ struct device *dev = &device->device;
struct storvsc_device *stor_device;
int num_cpus = num_online_cpus();
int num_sc;
@@ -679,21 +683,11 @@ static void handle_multichannel_storage(struct hv_device *device, int max_chns)
request = &stor_device->init_request;
vstor_packet = &request->vstor_packet;
- stor_device->open_sub_channel = true;
/*
* Establish a handler for dealing with subchannels.
*/
vmbus_set_sc_create_callback(device->channel, handle_sc_creation);
- /*
- * Check to see if sub-channels have already been created. This
- * can happen when this driver is re-loaded after unloading.
- */
-
- if (vmbus_are_subchannels_present(device->channel))
- return;
-
- stor_device->open_sub_channel = false;
/*
* Request the host to create sub-channels.
*/
@@ -710,23 +704,29 @@ static void handle_multichannel_storage(struct hv_device *device, int max_chns)
VM_PKT_DATA_INBAND,
VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
- if (ret != 0)
+ if (ret != 0) {
+ dev_err(dev, "Failed to create sub-channel: err=%d\n", ret);
return;
+ }
t = wait_for_completion_timeout(&request->wait_event, 10*HZ);
- if (t == 0)
+ if (t == 0) {
+ dev_err(dev, "Failed to create sub-channel: timed out\n");
return;
+ }
if (vstor_packet->operation != VSTOR_OPERATION_COMPLETE_IO ||
- vstor_packet->status != 0)
+ vstor_packet->status != 0) {
+ dev_err(dev, "Failed to create sub-channel: op=%d, sts=%d\n",
+ vstor_packet->operation, vstor_packet->status);
return;
+ }
/*
- * Now that we created the sub-channels, invoke the check; this
- * may trigger the callback.
+ * We need to do nothing here, because vmbus_process_offer()
+ * invokes channel->sc_creation_callback, which will open and use
+ * the sub-channel(s).
*/
- stor_device->open_sub_channel = true;
- vmbus_are_subchannels_present(device->channel);
}
static void cache_wwn(struct storvsc_device *stor_device,
@@ -1794,7 +1794,6 @@ static int storvsc_probe(struct hv_device *device,
}
stor_device->destroy = false;
- stor_device->open_sub_channel = false;
init_waitqueue_head(&stor_device->waiting_to_drain);
stor_device->device = device;
stor_device->host = host;
--
2.19.1
The patch titled
Subject: zram: writeback throttle
has been added to the -mm tree. Its filename is
zram-writeback-throttle.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/zram-writeback-throttle.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/zram-writeback-throttle.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Minchan Kim <minchan(a)kernel.org>
Subject: zram: writeback throttle
On small memory systems there are lots of write IOs so if we use a flash
device as swap there would be serious flash wearout. To overcome this
problem, system developers need to design a write limitation strategy to
guarantee flash health for the entire product life.
This patch creates a new knob "writeback_limit" on zram. With that, if
the current writeback IO count (/sys/block/zramX/io_stat) exceeds the
limitation, zram stops further writeback until the admin can reset the
limit.
Link: http://lkml.kernel.org/r/20181127055429.251614-8-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan(a)kernel.org>
Cc: Joey Pabalinas <joeypabalinas(a)gmail.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work(a)gmail.com>
Cc: <stable(a)vger.kernel.org> [4.14+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
Documentation/ABI/testing/sysfs-block-zram | 9 +++
Documentation/blockdev/zram.txt | 2
drivers/block/zram/zram_drv.c | 47 ++++++++++++++++++-
drivers/block/zram/zram_drv.h | 2
4 files changed, 59 insertions(+), 1 deletion(-)
--- a/Documentation/ABI/testing/sysfs-block-zram~zram-writeback-throttle
+++ a/Documentation/ABI/testing/sysfs-block-zram
@@ -121,3 +121,12 @@ Description:
The bd_stat file is read-only and represents backing device's
statistics (bd_count, bd_reads, bd_writes) in a format
similar to block layer statistics file format.
+
+What: /sys/block/zram<id>/writeback_limit
+Date: November 2018
+Contact: Minchan Kim <minchan(a)kernel.org>
+Description:
+ The writeback_limit file is read-write and specifies the maximum
+ amount of writeback ZRAM can do. The limit could be changed
+ in run time and "0" means disable the limit.
+ No limit is the initial state.
--- a/Documentation/blockdev/zram.txt~zram-writeback-throttle
+++ a/Documentation/blockdev/zram.txt
@@ -164,6 +164,8 @@ reset WO trigger device r
mem_used_max WO reset the `mem_used_max' counter (see later)
mem_limit WO specifies the maximum amount of memory ZRAM can use
to store the compressed data
+writeback_limit WO specifies the maximum amount of write IO zram can
+ write out to backing device as 4KB unit
max_comp_streams RW the number of possible concurrent compress operations
comp_algorithm RW show and change the compression algorithm
compact WO trigger memory compaction
--- a/drivers/block/zram/zram_drv.c~zram-writeback-throttle
+++ a/drivers/block/zram/zram_drv.c
@@ -330,6 +330,40 @@ next:
}
#ifdef CONFIG_ZRAM_WRITEBACK
+
+static ssize_t writeback_limit_store(struct device *dev,
+ struct device_attribute *attr, const char *buf, size_t len)
+{
+ struct zram *zram = dev_to_zram(dev);
+ u64 val;
+ ssize_t ret = -EINVAL;
+
+ if (kstrtoull(buf, 10, &val))
+ return ret;
+
+ down_read(&zram->init_lock);
+ atomic64_set(&zram->stats.bd_wb_limit, val);
+ if (val == 0 || val > atomic64_read(&zram->stats.bd_writes))
+ zram->stop_writeback = false;
+ up_read(&zram->init_lock);
+ ret = len;
+
+ return ret;
+}
+
+static ssize_t writeback_limit_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ u64 val;
+ struct zram *zram = dev_to_zram(dev);
+
+ down_read(&zram->init_lock);
+ val = atomic64_read(&zram->stats.bd_wb_limit);
+ up_read(&zram->init_lock);
+
+ return scnprintf(buf, PAGE_SIZE, "%llu\n", val);
+}
+
static void reset_bdev(struct zram *zram)
{
struct block_device *bdev;
@@ -571,6 +605,7 @@ static ssize_t writeback_store(struct de
char mode_buf[8];
unsigned long mode = -1UL;
unsigned long blk_idx = 0;
+ u64 wb_count, wb_limit;
sz = strscpy(mode_buf, buf, sizeof(mode_buf));
if (sz <= 0)
@@ -612,6 +647,11 @@ static ssize_t writeback_store(struct de
bvec.bv_len = PAGE_SIZE;
bvec.bv_offset = 0;
+ if (zram->stop_writeback) {
+ ret = -EIO;
+ break;
+ }
+
if (!blk_idx) {
blk_idx = alloc_block_bdev(zram);
if (!blk_idx) {
@@ -670,7 +710,7 @@ static ssize_t writeback_store(struct de
continue;
}
- atomic64_inc(&zram->stats.bd_writes);
+ wb_count = atomic64_inc_return(&zram->stats.bd_writes);
/*
* We released zram_slot_lock so need to check if the slot was
* changed. If there is freeing for the slot, we can catch it
@@ -694,6 +734,9 @@ static ssize_t writeback_store(struct de
zram_set_element(zram, index, blk_idx);
blk_idx = 0;
atomic64_inc(&zram->stats.pages_stored);
+ wb_limit = atomic64_read(&zram->stats.bd_wb_limit);
+ if (wb_limit != 0 && wb_count >= wb_limit)
+ zram->stop_writeback = true;
next:
zram_slot_unlock(zram, index);
}
@@ -1767,6 +1810,7 @@ static DEVICE_ATTR_RW(comp_algorithm);
#ifdef CONFIG_ZRAM_WRITEBACK
static DEVICE_ATTR_RW(backing_dev);
static DEVICE_ATTR_WO(writeback);
+static DEVICE_ATTR_RW(writeback_limit);
#endif
static struct attribute *zram_disk_attrs[] = {
@@ -1782,6 +1826,7 @@ static struct attribute *zram_disk_attrs
#ifdef CONFIG_ZRAM_WRITEBACK
&dev_attr_backing_dev.attr,
&dev_attr_writeback.attr,
+ &dev_attr_writeback_limit.attr,
#endif
&dev_attr_io_stat.attr,
&dev_attr_mm_stat.attr,
--- a/drivers/block/zram/zram_drv.h~zram-writeback-throttle
+++ a/drivers/block/zram/zram_drv.h
@@ -86,6 +86,7 @@ struct zram_stats {
atomic64_t bd_count; /* no. of pages in backing device */
atomic64_t bd_reads; /* no. of reads from backing device */
atomic64_t bd_writes; /* no. of writes from backing device */
+ atomic64_t bd_wb_limit; /* writeback limit of backing device */
#endif
};
@@ -113,6 +114,7 @@ struct zram {
*/
bool claim; /* Protected by bdev->bd_mutex */
struct file *backing_dev;
+ bool stop_writeback;
#ifdef CONFIG_ZRAM_WRITEBACK
struct block_device *bdev;
unsigned int old_block_size;
_
Patches currently in -mm which might be from minchan(a)kernel.org are
zram-fix-lockdep-warning-of-free-block-handling.patch
zram-fix-double-free-backing-device.patch
zram-refactoring-flags-and-writeback-stuff.patch
zram-introduce-zram_idle-flag.patch
zram-support-idle-huge-page-writeback.patch
zram-add-bd_stat-statistics.patch
zram-writeback-throttle.patch
The patch titled
Subject: zram: add bd_stat statistics
has been added to the -mm tree. Its filename is
zram-add-bd_stat-statistics.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/zram-add-bd_stat-statistics.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/zram-add-bd_stat-statistics.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Minchan Kim <minchan(a)kernel.org>
Subject: zram: add bd_stat statistics
bd_stat represents things that happened in the backing device. Currently
it supports bd_counts, bd_reads and bd_writes which are helpful to
understand wearout of flash and memory saving.
Link: http://lkml.kernel.org/r/20181127055429.251614-7-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan(a)kernel.org>
Cc: Joey Pabalinas <joeypabalinas(a)gmail.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work(a)gmail.com>
Cc: <stable(a)vger.kernel.org> [4.14+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
Documentation/ABI/testing/sysfs-block-zram | 8 +++++
Documentation/blockdev/zram.txt | 11 +++++++
drivers/block/zram/zram_drv.c | 29 +++++++++++++++++++
drivers/block/zram/zram_drv.h | 5 +++
4 files changed, 53 insertions(+)
--- a/Documentation/ABI/testing/sysfs-block-zram~zram-add-bd_stat-statistics
+++ a/Documentation/ABI/testing/sysfs-block-zram
@@ -113,3 +113,11 @@ Contact: Minchan Kim <minchan(a)kernel.org
Description:
The writeback file is write-only and trigger idle and/or
huge page writeback to backing device.
+
+What: /sys/block/zram<id>/bd_stat
+Date: November 2018
+Contact: Minchan Kim <minchan(a)kernel.org>
+Description:
+ The bd_stat file is read-only and represents backing device's
+ statistics (bd_count, bd_reads, bd_writes) in a format
+ similar to block layer statistics file format.
--- a/Documentation/blockdev/zram.txt~zram-add-bd_stat-statistics
+++ a/Documentation/blockdev/zram.txt
@@ -221,6 +221,17 @@ line of text and contains the following
pages_compacted the number of pages freed during compaction
huge_pages the number of incompressible pages
+File /sys/block/zram<id>/bd_stat
+
+The stat file represents device's backing device statistics. It consists of
+a single line of text and contains the following stats separated by whitespace:
+ bd_count size of data written in backing device.
+ Unit: 4K bytes
+ bd_reads the number of reads from backing device
+ Unit: 4K bytes
+ bd_writes the number of writes to backing device
+ Unit: 4K bytes
+
9) Deactivate:
swapoff /dev/zram0
umount /dev/zram1
--- a/drivers/block/zram/zram_drv.c~zram-add-bd_stat-statistics
+++ a/drivers/block/zram/zram_drv.c
@@ -502,6 +502,7 @@ retry:
if (test_and_set_bit(blk_idx, zram->bitmap))
goto retry;
+ atomic64_inc(&zram->stats.bd_count);
return blk_idx;
}
@@ -511,6 +512,7 @@ static void free_block_bdev(struct zram
was_set = test_and_clear_bit(blk_idx, zram->bitmap);
WARN_ON_ONCE(!was_set);
+ atomic64_dec(&zram->stats.bd_count);
}
static void zram_page_end_io(struct bio *bio)
@@ -668,6 +670,7 @@ static ssize_t writeback_store(struct de
continue;
}
+ atomic64_inc(&zram->stats.bd_writes);
/*
* We released zram_slot_lock so need to check if the slot was
* changed. If there is freeing for the slot, we can catch it
@@ -757,6 +760,7 @@ static int read_from_bdev_sync(struct zr
static int read_from_bdev(struct zram *zram, struct bio_vec *bvec,
unsigned long entry, struct bio *parent, bool sync)
{
+ atomic64_inc(&zram->stats.bd_reads);
if (sync)
return read_from_bdev_sync(zram, bvec, entry, parent);
else
@@ -1013,6 +1017,25 @@ static ssize_t mm_stat_show(struct devic
return ret;
}
+#ifdef CONFIG_ZRAM_WRITEBACK
+static ssize_t bd_stat_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ struct zram *zram = dev_to_zram(dev);
+ ssize_t ret;
+
+ down_read(&zram->init_lock);
+ ret = scnprintf(buf, PAGE_SIZE,
+ "%8llu %8llu %8llu\n",
+ (u64)atomic64_read(&zram->stats.bd_count),
+ (u64)atomic64_read(&zram->stats.bd_reads),
+ (u64)atomic64_read(&zram->stats.bd_writes));
+ up_read(&zram->init_lock);
+
+ return ret;
+}
+#endif
+
static ssize_t debug_stat_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
@@ -1033,6 +1056,9 @@ static ssize_t debug_stat_show(struct de
static DEVICE_ATTR_RO(io_stat);
static DEVICE_ATTR_RO(mm_stat);
+#ifdef CONFIG_ZRAM_WRITEBACK
+static DEVICE_ATTR_RO(bd_stat);
+#endif
static DEVICE_ATTR_RO(debug_stat);
static void zram_meta_free(struct zram *zram, u64 disksize)
@@ -1759,6 +1785,9 @@ static struct attribute *zram_disk_attrs
#endif
&dev_attr_io_stat.attr,
&dev_attr_mm_stat.attr,
+#ifdef CONFIG_ZRAM_WRITEBACK
+ &dev_attr_bd_stat.attr,
+#endif
&dev_attr_debug_stat.attr,
NULL,
};
--- a/drivers/block/zram/zram_drv.h~zram-add-bd_stat-statistics
+++ a/drivers/block/zram/zram_drv.h
@@ -82,6 +82,11 @@ struct zram_stats {
atomic_long_t max_used_pages; /* no. of maximum pages stored */
atomic64_t writestall; /* no. of write slow paths */
atomic64_t miss_free; /* no. of missed free */
+#ifdef CONFIG_ZRAM_WRITEBACK
+ atomic64_t bd_count; /* no. of pages in backing device */
+ atomic64_t bd_reads; /* no. of reads from backing device */
+ atomic64_t bd_writes; /* no. of writes from backing device */
+#endif
};
struct zram {
_
Patches currently in -mm which might be from minchan(a)kernel.org are
zram-fix-lockdep-warning-of-free-block-handling.patch
zram-fix-double-free-backing-device.patch
zram-refactoring-flags-and-writeback-stuff.patch
zram-introduce-zram_idle-flag.patch
zram-support-idle-huge-page-writeback.patch
zram-add-bd_stat-statistics.patch
zram-writeback-throttle.patch
The patch titled
Subject: zram: support idle/huge page writeback
has been added to the -mm tree. Its filename is
zram-support-idle-huge-page-writeback.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/zram-support-idle-huge-page-writeb…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/zram-support-idle-huge-page-writeb…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Minchan Kim <minchan(a)kernel.org>
Subject: zram: support idle/huge page writeback
Add a new feature "zram idle/huge page writeback". In the zram-swap use
case, zram usually has many idle/huge swap pages. It's pointless to keep
them in memory (ie, zram).
To solve this problem, this feature introduces idle/huge page writeback to
the backing device so the goal is to save more memory space on embedded
systems.
Normal sequence to use idle/huge page writeback feature is as follows,
while (1) {
# mark allocated zram slot to idle
echo all > /sys/block/zram0/idle
# leave system working for several hours
# Unless there is no access for some blocks on zram,
# they are still IDLE marked pages.
echo "idle" > /sys/block/zram0/writeback
or/and
echo "huge" > /sys/block/zram0/writeback
# write the IDLE or/and huge marked slot into backing device
# and free the memory.
}
By per discussion:
https://lore.kernel.org/lkml/20181122065926.GG3441@jagdpanzerIV/T/#u,
This patch removes direct incommpressibe page writeback feature
(d2afd25114f4 ("zram: write incompressible pages to backing device")) so
we could regard it as regression because incompressible pages don't go to
backing storage automatically. Instead, users should do this via "echo
huge" > /sys/block/zram/writeback" manually.
If we hear some regression, we could restore the function.
Link: http://lkml.kernel.org/r/20181127055429.251614-6-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan(a)kernel.org>
Reviewed-by: Joey Pabalinas <joeypabalinas(a)gmail.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work(a)gmail.com>
Cc: <stable(a)vger.kernel.org> [4.14+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
Documentation/ABI/testing/sysfs-block-zram | 7
Documentation/blockdev/zram.txt | 28 +-
drivers/block/zram/Kconfig | 5
drivers/block/zram/zram_drv.c | 247 +++++++++++++------
drivers/block/zram/zram_drv.h | 1
5 files changed, 209 insertions(+), 79 deletions(-)
--- a/Documentation/ABI/testing/sysfs-block-zram~zram-support-idle-huge-page-writeback
+++ a/Documentation/ABI/testing/sysfs-block-zram
@@ -106,3 +106,10 @@ Description:
idle file is write-only and mark zram slot as idle.
If system has mounted debugfs, user can see which slots
are idle via /sys/kernel/debug/zram/zram<id>/block_state
+
+What: /sys/block/zram<id>/writeback
+Date: November 2018
+Contact: Minchan Kim <minchan(a)kernel.org>
+Description:
+ The writeback file is write-only and trigger idle and/or
+ huge page writeback to backing device.
--- a/Documentation/blockdev/zram.txt~zram-support-idle-huge-page-writeback
+++ a/Documentation/blockdev/zram.txt
@@ -238,11 +238,31 @@ line of text and contains the following
= writeback
-With incompressible pages, there is no memory saving with zram.
-Instead, with CONFIG_ZRAM_WRITEBACK, zram can write incompressible page
+With CONFIG_ZRAM_WRITEBACK, zram can write idle/incompressible page
to backing storage rather than keeping it in memory.
-User should set up backing device via /sys/block/zramX/backing_dev
-before disksize setting.
+To use the feature, admin should set up backing device via
+
+ "echo /dev/sda5 > /sys/block/zramX/backing_dev"
+
+before disksize setting. It supports only partition at this moment.
+If admin want to use incompressible page writeback, they could do via
+
+ "echo huge > /sys/block/zramX/write"
+
+To use idle page writeback, first, user need to declare zram pages
+as idle.
+
+ "echo all > /sys/block/zramX/idle"
+
+From now on, any pages on zram are idle pages. The idle mark
+will be removed until someone request access of the block.
+IOW, unless there is access request, those pages are still idle pages.
+
+Admin can request writeback of those idle pages at right timing via
+
+ "echo idle > /sys/block/zramX/writeback"
+
+With the command, zram writeback idle pages from memory to the storage.
= memory tracking
--- a/drivers/block/zram/Kconfig~zram-support-idle-huge-page-writeback
+++ a/drivers/block/zram/Kconfig
@@ -15,7 +15,7 @@ config ZRAM
See Documentation/blockdev/zram.txt for more information.
config ZRAM_WRITEBACK
- bool "Write back incompressible page to backing device"
+ bool "Write back incompressible or idle page to backing device"
depends on ZRAM
help
With incompressible page, there is no memory saving to keep it
@@ -23,6 +23,9 @@ config ZRAM_WRITEBACK
For this feature, admin should set up backing device via
/sys/block/zramX/backing_dev.
+ With /sys/block/zramX/{idle,writeback}, application could ask
+ idle page's writeback to the backing device to save in memory.
+
See Documentation/blockdev/zram.txt for more information.
config ZRAM_MEMORY_TRACKING
--- a/drivers/block/zram/zram_drv.c~zram-support-idle-huge-page-writeback
+++ a/drivers/block/zram/zram_drv.c
@@ -52,6 +52,9 @@ static unsigned int num_devices = 1;
static size_t huge_class_size;
static void zram_free_page(struct zram *zram, size_t index);
+static int zram_bvec_read(struct zram *zram, struct bio_vec *bvec,
+ u32 index, int offset, struct bio *bio);
+
static int zram_slot_trylock(struct zram *zram, u32 index)
{
@@ -73,13 +76,6 @@ static inline bool init_done(struct zram
return zram->disksize;
}
-static inline bool zram_allocated(struct zram *zram, u32 index)
-{
-
- return (zram->table[index].flags >> (ZRAM_FLAG_SHIFT + 1)) ||
- zram->table[index].handle;
-}
-
static inline struct zram *dev_to_zram(struct device *dev)
{
return (struct zram *)dev_to_disk(dev)->private_data;
@@ -138,6 +134,13 @@ static void zram_set_obj_size(struct zra
zram->table[index].flags = (flags << ZRAM_FLAG_SHIFT) | size;
}
+static inline bool zram_allocated(struct zram *zram, u32 index)
+{
+ return zram_get_obj_size(zram, index) ||
+ zram_test_flag(zram, index, ZRAM_SAME) ||
+ zram_test_flag(zram, index, ZRAM_WB);
+}
+
#if PAGE_SIZE != 4096
static inline bool is_partial_io(struct bio_vec *bvec)
{
@@ -308,10 +311,14 @@ static ssize_t idle_store(struct device
}
for (index = 0; index < nr_pages; index++) {
+ /*
+ * Do not mark ZRAM_UNDER_WB slot as ZRAM_IDLE to close race.
+ * See the comment in writeback_store.
+ */
zram_slot_lock(zram, index);
- if (!zram_allocated(zram, index))
+ if (!zram_allocated(zram, index) ||
+ zram_test_flag(zram, index, ZRAM_UNDER_WB))
goto next;
-
zram_set_flag(zram, index, ZRAM_IDLE);
next:
zram_slot_unlock(zram, index);
@@ -546,6 +553,158 @@ static int read_from_bdev_async(struct z
return 1;
}
+#define HUGE_WRITEBACK 0x1
+#define IDLE_WRITEBACK 0x2
+
+static ssize_t writeback_store(struct device *dev,
+ struct device_attribute *attr, const char *buf, size_t len)
+{
+ struct zram *zram = dev_to_zram(dev);
+ unsigned long nr_pages = zram->disksize >> PAGE_SHIFT;
+ unsigned long index;
+ struct bio bio;
+ struct bio_vec bio_vec;
+ struct page *page;
+ ssize_t ret, sz;
+ char mode_buf[8];
+ unsigned long mode = -1UL;
+ unsigned long blk_idx = 0;
+
+ sz = strscpy(mode_buf, buf, sizeof(mode_buf));
+ if (sz <= 0)
+ return -EINVAL;
+
+ /* ignore trailing newline */
+ if (mode_buf[sz - 1] == '\n')
+ mode_buf[sz - 1] = 0x00;
+
+ if (!strcmp(mode_buf, "idle"))
+ mode = IDLE_WRITEBACK;
+ else if (!strcmp(mode_buf, "huge"))
+ mode = HUGE_WRITEBACK;
+
+ if (mode == -1UL)
+ return -EINVAL;
+
+ down_read(&zram->init_lock);
+ if (!init_done(zram)) {
+ ret = -EINVAL;
+ goto release_init_lock;
+ }
+
+ if (!zram->backing_dev) {
+ ret = -ENODEV;
+ goto release_init_lock;
+ }
+
+ page = alloc_page(GFP_KERNEL);
+ if (!page) {
+ ret = -ENOMEM;
+ goto release_init_lock;
+ }
+
+ for (index = 0; index < nr_pages; index++) {
+ struct bio_vec bvec;
+
+ bvec.bv_page = page;
+ bvec.bv_len = PAGE_SIZE;
+ bvec.bv_offset = 0;
+
+ if (!blk_idx) {
+ blk_idx = alloc_block_bdev(zram);
+ if (!blk_idx) {
+ ret = -ENOSPC;
+ break;
+ }
+ }
+
+ zram_slot_lock(zram, index);
+ if (!zram_allocated(zram, index))
+ goto next;
+
+ if (zram_test_flag(zram, index, ZRAM_WB) ||
+ zram_test_flag(zram, index, ZRAM_SAME) ||
+ zram_test_flag(zram, index, ZRAM_UNDER_WB))
+ goto next;
+
+ if ((mode & IDLE_WRITEBACK &&
+ !zram_test_flag(zram, index, ZRAM_IDLE)) &&
+ (mode & HUGE_WRITEBACK &&
+ !zram_test_flag(zram, index, ZRAM_HUGE)))
+ goto next;
+ /*
+ * Clearing ZRAM_UNDER_WB is duty of caller.
+ * IOW, zram_free_page never clear it.
+ */
+ zram_set_flag(zram, index, ZRAM_UNDER_WB);
+ /* Need for hugepage writeback racing */
+ zram_set_flag(zram, index, ZRAM_IDLE);
+ zram_slot_unlock(zram, index);
+ if (zram_bvec_read(zram, &bvec, index, 0, NULL)) {
+ zram_slot_lock(zram, index);
+ zram_clear_flag(zram, index, ZRAM_UNDER_WB);
+ zram_clear_flag(zram, index, ZRAM_IDLE);
+ zram_slot_unlock(zram, index);
+ continue;
+ }
+
+ bio_init(&bio, &bio_vec, 1);
+ bio_set_dev(&bio, zram->bdev);
+ bio.bi_iter.bi_sector = blk_idx * (PAGE_SIZE >> 9);
+ bio.bi_opf = REQ_OP_WRITE | REQ_SYNC;
+
+ bio_add_page(&bio, bvec.bv_page, bvec.bv_len,
+ bvec.bv_offset);
+ /*
+ * XXX: A single page IO would be inefficient for write
+ * but it would be not bad as starter.
+ */
+ ret = submit_bio_wait(&bio);
+ if (ret) {
+ zram_slot_lock(zram, index);
+ zram_clear_flag(zram, index, ZRAM_UNDER_WB);
+ zram_clear_flag(zram, index, ZRAM_IDLE);
+ zram_slot_unlock(zram, index);
+ continue;
+ }
+
+ /*
+ * We released zram_slot_lock so need to check if the slot was
+ * changed. If there is freeing for the slot, we can catch it
+ * easily by zram_allocated.
+ * A subtle case is the slot is freed/reallocated/marked as
+ * ZRAM_IDLE again. To close the race, idle_store doesn't
+ * mark ZRAM_IDLE once it found the slot was ZRAM_UNDER_WB.
+ * Thus, we could close the race by checking ZRAM_IDLE bit.
+ */
+ zram_slot_lock(zram, index);
+ if (!zram_allocated(zram, index) ||
+ !zram_test_flag(zram, index, ZRAM_IDLE)) {
+ zram_clear_flag(zram, index, ZRAM_UNDER_WB);
+ zram_clear_flag(zram, index, ZRAM_IDLE);
+ goto next;
+ }
+
+ zram_free_page(zram, index);
+ zram_clear_flag(zram, index, ZRAM_UNDER_WB);
+ zram_set_flag(zram, index, ZRAM_WB);
+ zram_set_element(zram, index, blk_idx);
+ blk_idx = 0;
+ atomic64_inc(&zram->stats.pages_stored);
+next:
+ zram_slot_unlock(zram, index);
+ }
+
+ if (blk_idx)
+ free_block_bdev(zram, blk_idx);
+ ret = len;
+ __free_page(page);
+release_init_lock:
+ up_read(&zram->init_lock);
+
+ return ret;
+}
+
struct zram_work {
struct work_struct work;
struct zram *zram;
@@ -603,57 +762,8 @@ static int read_from_bdev(struct zram *z
else
return read_from_bdev_async(zram, bvec, entry, parent);
}
-
-static int write_to_bdev(struct zram *zram, struct bio_vec *bvec,
- u32 index, struct bio *parent,
- unsigned long *pentry)
-{
- struct bio *bio;
- unsigned long entry;
-
- bio = bio_alloc(GFP_ATOMIC, 1);
- if (!bio)
- return -ENOMEM;
-
- entry = alloc_block_bdev(zram);
- if (!entry) {
- bio_put(bio);
- return -ENOSPC;
- }
-
- bio->bi_iter.bi_sector = entry * (PAGE_SIZE >> 9);
- bio_set_dev(bio, zram->bdev);
- if (!bio_add_page(bio, bvec->bv_page, bvec->bv_len,
- bvec->bv_offset)) {
- bio_put(bio);
- free_block_bdev(zram, entry);
- return -EIO;
- }
-
- if (!parent) {
- bio->bi_opf = REQ_OP_WRITE | REQ_SYNC;
- bio->bi_end_io = zram_page_end_io;
- } else {
- bio->bi_opf = parent->bi_opf;
- bio_chain(bio, parent);
- }
-
- submit_bio(bio);
- *pentry = entry;
-
- return 0;
-}
-
#else
static inline void reset_bdev(struct zram *zram) {};
-static int write_to_bdev(struct zram *zram, struct bio_vec *bvec,
- u32 index, struct bio *parent,
- unsigned long *pentry)
-
-{
- return -EIO;
-}
-
static int read_from_bdev(struct zram *zram, struct bio_vec *bvec,
unsigned long entry, struct bio *parent, bool sync)
{
@@ -1006,7 +1116,8 @@ out:
atomic64_dec(&zram->stats.pages_stored);
zram_set_handle(zram, index, 0);
zram_set_obj_size(zram, index, 0);
- WARN_ON_ONCE(zram->table[index].flags & ~(1UL << ZRAM_LOCK));
+ WARN_ON_ONCE(zram->table[index].flags &
+ ~(1UL << ZRAM_LOCK | 1UL << ZRAM_UNDER_WB));
}
static int __zram_bvec_read(struct zram *zram, struct page *page, u32 index,
@@ -1115,7 +1226,6 @@ static int __zram_bvec_write(struct zram
struct page *page = bvec->bv_page;
unsigned long element = 0;
enum zram_pageflags flags = 0;
- bool allow_wb = true;
mem = kmap_atomic(page);
if (page_same_filled(mem, &element)) {
@@ -1140,21 +1250,8 @@ compress_again:
return ret;
}
- if (unlikely(comp_len >= huge_class_size)) {
+ if (comp_len >= huge_class_size)
comp_len = PAGE_SIZE;
- if (zram->backing_dev && allow_wb) {
- zcomp_stream_put(zram->comp);
- ret = write_to_bdev(zram, bvec, index, bio, &element);
- if (!ret) {
- flags = ZRAM_WB;
- ret = 1;
- goto out;
- }
- allow_wb = false;
- goto compress_again;
- }
- }
-
/*
* handle allocation has 2 paths:
* a) fast path is executed with preemption disabled (for
@@ -1643,6 +1740,7 @@ static DEVICE_ATTR_RW(max_comp_streams);
static DEVICE_ATTR_RW(comp_algorithm);
#ifdef CONFIG_ZRAM_WRITEBACK
static DEVICE_ATTR_RW(backing_dev);
+static DEVICE_ATTR_WO(writeback);
#endif
static struct attribute *zram_disk_attrs[] = {
@@ -1657,6 +1755,7 @@ static struct attribute *zram_disk_attrs
&dev_attr_comp_algorithm.attr,
#ifdef CONFIG_ZRAM_WRITEBACK
&dev_attr_backing_dev.attr,
+ &dev_attr_writeback.attr,
#endif
&dev_attr_io_stat.attr,
&dev_attr_mm_stat.attr,
--- a/drivers/block/zram/zram_drv.h~zram-support-idle-huge-page-writeback
+++ a/drivers/block/zram/zram_drv.h
@@ -47,6 +47,7 @@ enum zram_pageflags {
ZRAM_LOCK = ZRAM_FLAG_SHIFT,
ZRAM_SAME, /* Page consists the same element */
ZRAM_WB, /* page is stored on backing_device */
+ ZRAM_UNDER_WB, /* page is under writeback */
ZRAM_HUGE, /* Incompressible page */
ZRAM_IDLE, /* not accessed page since last idle marking */
_
Patches currently in -mm which might be from minchan(a)kernel.org are
zram-fix-lockdep-warning-of-free-block-handling.patch
zram-fix-double-free-backing-device.patch
zram-refactoring-flags-and-writeback-stuff.patch
zram-introduce-zram_idle-flag.patch
zram-support-idle-huge-page-writeback.patch
zram-add-bd_stat-statistics.patch
zram-writeback-throttle.patch
The patch titled
Subject: zram: introduce ZRAM_IDLE flag
has been added to the -mm tree. Its filename is
zram-introduce-zram_idle-flag.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/zram-introduce-zram_idle-flag.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/zram-introduce-zram_idle-flag.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Minchan Kim <minchan(a)kernel.org>
Subject: zram: introduce ZRAM_IDLE flag
To support idle page writeback with upcoming patches, this patch
introduces a new ZRAM_IDLE flag.
Userspace can mark zram slots as "idle" via
"echo all > /sys/block/zramX/idle"
which marks every allocated zram slot as ZRAM_IDLE.
User could see it by /sys/kernel/debug/zram/zram0/block_state.
300 75.033841 ...i
301 63.806904 s..i
302 63.806919 ..hi
Once there is IO for the slot, the mark will be disappeared.
300 75.033841 ...
301 63.806904 s..i
302 63.806919 ..hi
Therefore, 300th block is idle zpage. With this feature,
user can how many zram has idle pages which are waste of memory.
Link: http://lkml.kernel.org/r/20181127055429.251614-5-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan(a)kernel.org>
Cc: Joey Pabalinas <joeypabalinas(a)gmail.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work(a)gmail.com>
Cc: <stable(a)vger.kernel.org> [4.14+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
Documentation/ABI/testing/sysfs-block-zram | 8 ++
Documentation/blockdev/zram.txt | 10 ++-
drivers/block/zram/zram_drv.c | 57 ++++++++++++++++++-
drivers/block/zram/zram_drv.h | 1
4 files changed, 69 insertions(+), 7 deletions(-)
--- a/Documentation/ABI/testing/sysfs-block-zram~zram-introduce-zram_idle-flag
+++ a/Documentation/ABI/testing/sysfs-block-zram
@@ -98,3 +98,11 @@ Description:
The backing_dev file is read-write and set up backing
device for zram to write incompressible pages.
For using, user should enable CONFIG_ZRAM_WRITEBACK.
+
+What: /sys/block/zram<id>/idle
+Date: November 2018
+Contact: Minchan Kim <minchan(a)kernel.org>
+Description:
+ idle file is write-only and mark zram slot as idle.
+ If system has mounted debugfs, user can see which slots
+ are idle via /sys/kernel/debug/zram/zram<id>/block_state
--- a/Documentation/blockdev/zram.txt~zram-introduce-zram_idle-flag
+++ a/Documentation/blockdev/zram.txt
@@ -169,6 +169,7 @@ comp_algorithm RW show and change
compact WO trigger memory compaction
debug_stat RO this file is used for zram debugging purposes
backing_dev RW set up backend storage for zram to write out
+idle WO mark allocated slot as idle
User space is advised to use the following files to read the device statistics.
@@ -251,16 +252,17 @@ pages of the process with*pagemap.
If you enable the feature, you could see block state via
/sys/kernel/debug/zram/zram0/block_state". The output is as follows,
- 300 75.033841 .wh
- 301 63.806904 s..
- 302 63.806919 ..h
+ 300 75.033841 .wh.
+ 301 63.806904 s...
+ 302 63.806919 ..hi
First column is zram's block index.
Second column is access time since the system was booted
Third column is state of the block.
(s: same page
w: written page to backing store
-h: huge page)
+h: huge page
+i: idle page)
First line of above example says 300th block is accessed at 75.033841sec
and the block's state is huge so it is written back to the backing
--- a/drivers/block/zram/zram_drv.c~zram-introduce-zram_idle-flag
+++ a/drivers/block/zram/zram_drv.c
@@ -281,6 +281,47 @@ static ssize_t mem_used_max_store(struct
return len;
}
+static ssize_t idle_store(struct device *dev,
+ struct device_attribute *attr, const char *buf, size_t len)
+{
+ struct zram *zram = dev_to_zram(dev);
+ unsigned long nr_pages = zram->disksize >> PAGE_SHIFT;
+ int index;
+ char mode_buf[8];
+ ssize_t sz;
+
+ sz = strscpy(mode_buf, buf, sizeof(mode_buf));
+ if (sz <= 0)
+ return -EINVAL;
+
+ /* ignore trailing new line */
+ if (mode_buf[sz - 1] == '\n')
+ mode_buf[sz - 1] = 0x00;
+
+ if (strcmp(mode_buf, "all"))
+ return -EINVAL;
+
+ down_read(&zram->init_lock);
+ if (!init_done(zram)) {
+ up_read(&zram->init_lock);
+ return -EINVAL;
+ }
+
+ for (index = 0; index < nr_pages; index++) {
+ zram_slot_lock(zram, index);
+ if (!zram_allocated(zram, index))
+ goto next;
+
+ zram_set_flag(zram, index, ZRAM_IDLE);
+next:
+ zram_slot_unlock(zram, index);
+ }
+
+ up_read(&zram->init_lock);
+
+ return len;
+}
+
#ifdef CONFIG_ZRAM_WRITEBACK
static void reset_bdev(struct zram *zram)
{
@@ -638,6 +679,7 @@ static void zram_debugfs_destroy(void)
static void zram_accessed(struct zram *zram, u32 index)
{
+ zram_clear_flag(zram, index, ZRAM_IDLE);
zram->table[index].ac_time = ktime_get_boottime();
}
@@ -670,12 +712,13 @@ static ssize_t read_block_state(struct f
ts = ktime_to_timespec64(zram->table[index].ac_time);
copied = snprintf(kbuf + written, count,
- "%12zd %12lld.%06lu %c%c%c\n",
+ "%12zd %12lld.%06lu %c%c%c%c\n",
index, (s64)ts.tv_sec,
ts.tv_nsec / NSEC_PER_USEC,
zram_test_flag(zram, index, ZRAM_SAME) ? 's' : '.',
zram_test_flag(zram, index, ZRAM_WB) ? 'w' : '.',
- zram_test_flag(zram, index, ZRAM_HUGE) ? 'h' : '.');
+ zram_test_flag(zram, index, ZRAM_HUGE) ? 'h' : '.',
+ zram_test_flag(zram, index, ZRAM_IDLE) ? 'i' : '.');
if (count < copied) {
zram_slot_unlock(zram, index);
@@ -720,7 +763,10 @@ static void zram_debugfs_unregister(stru
#else
static void zram_debugfs_create(void) {};
static void zram_debugfs_destroy(void) {};
-static void zram_accessed(struct zram *zram, u32 index) {};
+static void zram_accessed(struct zram *zram, u32 index)
+{
+ zram_clear_flag(zram, index, ZRAM_IDLE);
+};
static void zram_debugfs_register(struct zram *zram) {};
static void zram_debugfs_unregister(struct zram *zram) {};
#endif
@@ -924,6 +970,9 @@ static void zram_free_page(struct zram *
#ifdef CONFIG_ZRAM_MEMORY_TRACKING
zram->table[index].ac_time = 0;
#endif
+ if (zram_test_flag(zram, index, ZRAM_IDLE))
+ zram_clear_flag(zram, index, ZRAM_IDLE);
+
if (zram_test_flag(zram, index, ZRAM_HUGE)) {
zram_clear_flag(zram, index, ZRAM_HUGE);
atomic64_dec(&zram->stats.huge_pages);
@@ -1589,6 +1638,7 @@ static DEVICE_ATTR_RO(initstate);
static DEVICE_ATTR_WO(reset);
static DEVICE_ATTR_WO(mem_limit);
static DEVICE_ATTR_WO(mem_used_max);
+static DEVICE_ATTR_WO(idle);
static DEVICE_ATTR_RW(max_comp_streams);
static DEVICE_ATTR_RW(comp_algorithm);
#ifdef CONFIG_ZRAM_WRITEBACK
@@ -1602,6 +1652,7 @@ static struct attribute *zram_disk_attrs
&dev_attr_compact.attr,
&dev_attr_mem_limit.attr,
&dev_attr_mem_used_max.attr,
+ &dev_attr_idle.attr,
&dev_attr_max_comp_streams.attr,
&dev_attr_comp_algorithm.attr,
#ifdef CONFIG_ZRAM_WRITEBACK
--- a/drivers/block/zram/zram_drv.h~zram-introduce-zram_idle-flag
+++ a/drivers/block/zram/zram_drv.h
@@ -48,6 +48,7 @@ enum zram_pageflags {
ZRAM_SAME, /* Page consists the same element */
ZRAM_WB, /* page is stored on backing_device */
ZRAM_HUGE, /* Incompressible page */
+ ZRAM_IDLE, /* not accessed page since last idle marking */
__NR_ZRAM_PAGEFLAGS,
};
_
Patches currently in -mm which might be from minchan(a)kernel.org are
zram-fix-lockdep-warning-of-free-block-handling.patch
zram-fix-double-free-backing-device.patch
zram-refactoring-flags-and-writeback-stuff.patch
zram-introduce-zram_idle-flag.patch
zram-support-idle-huge-page-writeback.patch
zram-add-bd_stat-statistics.patch
zram-writeback-throttle.patch
The patch titled
Subject: zram: fix lockdep warning of free block handling
has been added to the -mm tree. Its filename is
zram-fix-lockdep-warning-of-free-block-handling.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/zram-fix-lockdep-warning-of-free-b…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/zram-fix-lockdep-warning-of-free-b…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Minchan Kim <minchan(a)kernel.org>
Subject: zram: fix lockdep warning of free block handling
Patch series "zram idle page writeback", v3.
Inherently, swap device has many idle pages which are rare touched since
it was allocated. It is never problem if we use storage device as swap.
However, it's just waste for zram-swap.
This patchset supports zram idle page writeback feature.
* Admin can define what is idle page "no access since X time ago"
* Admin can define when zram should writeback them
* Admin can define when zram should stop writeback to prevent wearout
Details are in each patch's description.
This patch (of 7):
[ 254.519728] ================================
[ 254.520311] WARNING: inconsistent lock state
[ 254.520898] 4.19.0+ #390 Not tainted
[ 254.521387] --------------------------------
[ 254.521732] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
[ 254.521732] zram_verify/2095 [HC0[0]:SC1[1]:HE1:SE0] takes:
[ 254.521732] 00000000b1828693 (&(&zram->bitmap_lock)->rlock){+.?.}, at: put_entry_bdev+0x1e/0x50
[ 254.521732] {SOFTIRQ-ON-W} state was registered at:
[ 254.521732] _raw_spin_lock+0x2c/0x40
[ 254.521732] zram_make_request+0x755/0xdc9
[ 254.521732] generic_make_request+0x373/0x6a0
[ 254.521732] submit_bio+0x6c/0x140
[ 254.521732] __swap_writepage+0x3a8/0x480
[ 254.521732] shrink_page_list+0x1102/0x1a60
[ 254.521732] shrink_inactive_list+0x21b/0x3f0
[ 254.521732] shrink_node_memcg.constprop.99+0x4f8/0x7e0
[ 254.521732] shrink_node+0x7d/0x2f0
[ 254.521732] do_try_to_free_pages+0xe0/0x300
[ 254.521732] try_to_free_pages+0x116/0x2b0
[ 254.521732] __alloc_pages_slowpath+0x3f4/0xf80
[ 254.521732] __alloc_pages_nodemask+0x2a2/0x2f0
[ 254.521732] __handle_mm_fault+0x42e/0xb50
[ 254.521732] handle_mm_fault+0x55/0xb0
[ 254.521732] __do_page_fault+0x235/0x4b0
[ 254.521732] page_fault+0x1e/0x30
[ 254.521732] irq event stamp: 228412
[ 254.521732] hardirqs last enabled at (228412): [<ffffffff98245846>] __slab_free+0x3e6/0x600
[ 254.521732] hardirqs last disabled at (228411): [<ffffffff98245625>] __slab_free+0x1c5/0x600
[ 254.521732] softirqs last enabled at (228396): [<ffffffff98e0031e>] __do_softirq+0x31e/0x427
[ 254.521732] softirqs last disabled at (228403): [<ffffffff98072051>] irq_exit+0xd1/0xe0
[ 254.521732]
[ 254.521732] other info that might help us debug this:
[ 254.521732] Possible unsafe locking scenario:
[ 254.521732]
[ 254.521732] CPU0
[ 254.521732] ----
[ 254.521732] lock(&(&zram->bitmap_lock)->rlock);
[ 254.521732] <Interrupt>
[ 254.521732] lock(&(&zram->bitmap_lock)->rlock);
[ 254.521732]
[ 254.521732] *** DEADLOCK ***
[ 254.521732]
[ 254.521732] no locks held by zram_verify/2095.
[ 254.521732]
[ 254.521732] stack backtrace:
[ 254.521732] CPU: 5 PID: 2095 Comm: zram_verify Not tainted 4.19.0+ #390
[ 254.521732] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
[ 254.521732] Call Trace:
[ 254.521732] <IRQ>
[ 254.521732] dump_stack+0x67/0x9b
[ 254.521732] print_usage_bug+0x1bd/0x1d3
[ 254.521732] mark_lock+0x4aa/0x540
[ 254.521732] ? check_usage_backwards+0x160/0x160
[ 254.521732] __lock_acquire+0x51d/0x1300
[ 254.521732] ? free_debug_processing+0x24e/0x400
[ 254.521732] ? bio_endio+0x6d/0x1a0
[ 254.521732] ? lockdep_hardirqs_on+0x9b/0x180
[ 254.521732] ? lock_acquire+0x90/0x180
[ 254.521732] lock_acquire+0x90/0x180
[ 254.521732] ? put_entry_bdev+0x1e/0x50
[ 254.521732] _raw_spin_lock+0x2c/0x40
[ 254.521732] ? put_entry_bdev+0x1e/0x50
[ 254.521732] put_entry_bdev+0x1e/0x50
[ 254.521732] zram_free_page+0xf6/0x110
[ 254.521732] zram_slot_free_notify+0x42/0xa0
[ 254.521732] end_swap_bio_read+0x5b/0x170
[ 254.521732] blk_update_request+0x8f/0x340
[ 254.521732] scsi_end_request+0x2c/0x1e0
[ 254.521732] scsi_io_completion+0x98/0x650
[ 254.521732] blk_done_softirq+0x9e/0xd0
[ 254.521732] __do_softirq+0xcc/0x427
[ 254.521732] irq_exit+0xd1/0xe0
[ 254.521732] do_IRQ+0x93/0x120
[ 254.521732] common_interrupt+0xf/0xf
[ 254.521732] </IRQ>
With writeback feature, zram_slot_free_notify could be called
in softirq context by end_swap_bio_read. However, bitmap_lock
is not aware of that so lockdep yell out. Thanks.
get_entry_bdev
spin_lock(bitmap->lock);
irq
softirq
end_swap_bio_read
zram_slot_free_notify
zram_slot_lock <-- deadlock prone
zram_free_page
put_entry_bdev
spin_lock(bitmap->lock); <-- deadlock prone
With akpm's suggestion (i.e. bitmap operation is already atomic), we
could remove bitmap lock. It might fail to find a empty slot if serious
contention happens. However, it's not severe problem because huge page
writeback has already possiblity to fail if there is severe memory
pressure. Worst case is just keeping the incompressible in memory, not
storage.
The other problem is zram_slot_lock in zram_slot_slot_free_notify. To
make it safe is this patch introduces zram_slot_trylock where
zram_slot_free_notify uses it. Although it's rare to be contented, this
patch adds new debug stat "miss_free" to keep monitoring how often it
happens.
Link: http://lkml.kernel.org/r/20181127055429.251614-2-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan(a)kernel.org>
Cc: Joey Pabalinas <joeypabalinas(a)gmail.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work(a)gmail.com>
Cc: <stable(a)vger.kernel.org> [4.14+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
drivers/block/zram/zram_drv.c | 38 +++++++++++++++++---------------
drivers/block/zram/zram_drv.h | 2 -
2 files changed, 22 insertions(+), 18 deletions(-)
--- a/drivers/block/zram/zram_drv.c~zram-fix-lockdep-warning-of-free-block-handling
+++ a/drivers/block/zram/zram_drv.c
@@ -53,6 +53,11 @@ static size_t huge_class_size;
static void zram_free_page(struct zram *zram, size_t index);
+static int zram_slot_trylock(struct zram *zram, u32 index)
+{
+ return bit_spin_trylock(ZRAM_LOCK, &zram->table[index].value);
+}
+
static void zram_slot_lock(struct zram *zram, u32 index)
{
bit_spin_lock(ZRAM_LOCK, &zram->table[index].value);
@@ -399,7 +404,6 @@ static ssize_t backing_dev_store(struct
goto out;
reset_bdev(zram);
- spin_lock_init(&zram->bitmap_lock);
zram->old_block_size = old_block_size;
zram->bdev = bdev;
@@ -443,29 +447,24 @@ out:
static unsigned long get_entry_bdev(struct zram *zram)
{
- unsigned long entry;
-
- spin_lock(&zram->bitmap_lock);
+ unsigned long blk_idx = 1;
+retry:
/* skip 0 bit to confuse zram.handle = 0 */
- entry = find_next_zero_bit(zram->bitmap, zram->nr_pages, 1);
- if (entry == zram->nr_pages) {
- spin_unlock(&zram->bitmap_lock);
+ blk_idx = find_next_zero_bit(zram->bitmap, zram->nr_pages, blk_idx);
+ if (blk_idx == zram->nr_pages)
return 0;
- }
- set_bit(entry, zram->bitmap);
- spin_unlock(&zram->bitmap_lock);
+ if (test_and_set_bit(blk_idx, zram->bitmap))
+ goto retry;
- return entry;
+ return blk_idx;
}
static void put_entry_bdev(struct zram *zram, unsigned long entry)
{
int was_set;
- spin_lock(&zram->bitmap_lock);
was_set = test_and_clear_bit(entry, zram->bitmap);
- spin_unlock(&zram->bitmap_lock);
WARN_ON_ONCE(!was_set);
}
@@ -886,9 +885,10 @@ static ssize_t debug_stat_show(struct de
down_read(&zram->init_lock);
ret = scnprintf(buf, PAGE_SIZE,
- "version: %d\n%8llu\n",
+ "version: %d\n%8llu %8llu\n",
version,
- (u64)atomic64_read(&zram->stats.writestall));
+ (u64)atomic64_read(&zram->stats.writestall),
+ (u64)atomic64_read(&zram->stats.miss_free));
up_read(&zram->init_lock);
return ret;
@@ -1400,10 +1400,14 @@ static void zram_slot_free_notify(struct
zram = bdev->bd_disk->private_data;
- zram_slot_lock(zram, index);
+ atomic64_inc(&zram->stats.notify_free);
+ if (!zram_slot_trylock(zram, index)) {
+ atomic64_inc(&zram->stats.miss_free);
+ return;
+ }
+
zram_free_page(zram, index);
zram_slot_unlock(zram, index);
- atomic64_inc(&zram->stats.notify_free);
}
static int zram_rw_page(struct block_device *bdev, sector_t sector,
--- a/drivers/block/zram/zram_drv.h~zram-fix-lockdep-warning-of-free-block-handling
+++ a/drivers/block/zram/zram_drv.h
@@ -79,6 +79,7 @@ struct zram_stats {
atomic64_t pages_stored; /* no. of pages currently stored */
atomic_long_t max_used_pages; /* no. of maximum pages stored */
atomic64_t writestall; /* no. of write slow paths */
+ atomic64_t miss_free; /* no. of missed free */
};
struct zram {
@@ -110,7 +111,6 @@ struct zram {
unsigned int old_block_size;
unsigned long *bitmap;
unsigned long nr_pages;
- spinlock_t bitmap_lock;
#endif
#ifdef CONFIG_ZRAM_MEMORY_TRACKING
struct dentry *debugfs_dir;
_
Patches currently in -mm which might be from minchan(a)kernel.org are
zram-fix-lockdep-warning-of-free-block-handling.patch
zram-fix-double-free-backing-device.patch
zram-refactoring-flags-and-writeback-stuff.patch
zram-introduce-zram_idle-flag.patch
zram-support-idle-huge-page-writeback.patch
zram-add-bd_stat-statistics.patch
zram-writeback-throttle.patch
This reverts commit:
c54c7374ff44 ("drm/dp_mst: Skip validating ports during destruction, just ref")
ugh.
In drm_dp_destroy_connector_work(), we have a pretty good chance of
freeing the actual struct drm_dp_mst_port. However, after destroying
things we send a hotplug through (*mgr->cbs->hotplug)(mgr) which is
where the problems start.
For i915, this calls all the way down to the fbcon probing helpers,
which start trying to access the port in a modeset.
[ 45.062001] ==================================================================
[ 45.062112] BUG: KASAN: use-after-free in ex_handler_refcount+0x146/0x180
[ 45.062196] Write of size 4 at addr ffff8882b4b70968 by task kworker/3:1/53
[ 45.062325] CPU: 3 PID: 53 Comm: kworker/3:1 Kdump: loaded Tainted: G O 4.20.0-rc4Lyude-Test+ #3
[ 45.062442] Hardware name: LENOVO 20BWS1KY00/20BWS1KY00, BIOS JBET71WW (1.35 ) 09/14/2018
[ 45.062554] Workqueue: events drm_dp_destroy_connector_work [drm_kms_helper]
[ 45.062641] Call Trace:
[ 45.062685] dump_stack+0xbd/0x15a
[ 45.062735] ? dump_stack_print_info.cold.0+0x1b/0x1b
[ 45.062801] ? printk+0x9f/0xc5
[ 45.062847] ? kmsg_dump_rewind_nolock+0xe4/0xe4
[ 45.062909] ? ex_handler_refcount+0x146/0x180
[ 45.062970] print_address_description+0x71/0x239
[ 45.063036] ? ex_handler_refcount+0x146/0x180
[ 45.063095] kasan_report.cold.5+0x242/0x30b
[ 45.063155] __asan_report_store4_noabort+0x1c/0x20
[ 45.063313] ex_handler_refcount+0x146/0x180
[ 45.063371] ? ex_handler_clear_fs+0xb0/0xb0
[ 45.063428] fixup_exception+0x98/0xd7
[ 45.063484] ? raw_notifier_call_chain+0x20/0x20
[ 45.063548] do_trap+0x6d/0x210
[ 45.063605] ? _GLOBAL__sub_I_65535_1_drm_dp_aux_unregister_devnode+0x2f/0x1c6 [drm_kms_helper]
[ 45.063732] do_error_trap+0xc0/0x170
[ 45.063802] ? _GLOBAL__sub_I_65535_1_drm_dp_aux_unregister_devnode+0x2f/0x1c6 [drm_kms_helper]
[ 45.063929] do_invalid_op+0x3b/0x50
[ 45.063997] ? _GLOBAL__sub_I_65535_1_drm_dp_aux_unregister_devnode+0x2f/0x1c6 [drm_kms_helper]
[ 45.064103] invalid_op+0x14/0x20
[ 45.064162] RIP: 0010:_GLOBAL__sub_I_65535_1_drm_dp_aux_unregister_devnode+0x2f/0x1c6 [drm_kms_helper]
[ 45.064274] Code: 00 48 c7 c7 80 fe 53 a0 48 89 e5 e8 5b 6f 26 e1 5d c3 48 8d 0e 0f 0b 48 8d 0b 0f 0b 48 8d 0f 0f 0b 48 8d 0f 0f 0b 49 8d 4d 00 <0f> 0b 49 8d 0e 0f 0b 48 8d 08 0f 0b 49 8d 4d 00 0f 0b 48 8d 0b 0f
[ 45.064569] RSP: 0018:ffff8882b789ee10 EFLAGS: 00010282
[ 45.064637] RAX: ffff8882af47ae70 RBX: ffff8882af47aa60 RCX: ffff8882b4b70968
[ 45.064723] RDX: ffff8882af47ae70 RSI: 0000000000000008 RDI: ffff8882b788bdb8
[ 45.064808] RBP: ffff8882b789ee28 R08: ffffed1056f13db4 R09: ffffed1056f13db3
[ 45.064894] R10: ffffed1056f13db3 R11: ffff8882b789ed9f R12: ffff8882af47ad28
[ 45.064980] R13: ffff8882b4b70968 R14: ffff8882acd86728 R15: ffff8882b4b75dc8
[ 45.065084] drm_dp_mst_reset_vcpi_slots+0x12/0x80 [drm_kms_helper]
[ 45.065225] intel_mst_disable_dp+0xda/0x180 [i915]
[ 45.065361] intel_encoders_disable.isra.107+0x197/0x310 [i915]
[ 45.065498] haswell_crtc_disable+0xbe/0x400 [i915]
[ 45.065622] ? i9xx_disable_plane+0x1c0/0x3e0 [i915]
[ 45.065750] intel_atomic_commit_tail+0x74e/0x3e60 [i915]
[ 45.065884] ? intel_pre_plane_update+0xbc0/0xbc0 [i915]
[ 45.065968] ? drm_atomic_helper_swap_state+0x88b/0x1d90 [drm_kms_helper]
[ 45.066054] ? kasan_check_write+0x14/0x20
[ 45.066165] ? i915_gem_track_fb+0x13a/0x330 [i915]
[ 45.066277] ? i915_sw_fence_complete+0xe9/0x140 [i915]
[ 45.066406] ? __i915_sw_fence_complete+0xc50/0xc50 [i915]
[ 45.066540] intel_atomic_commit+0x72e/0xef0 [i915]
[ 45.066635] ? drm_dev_dbg+0x200/0x200 [drm]
[ 45.066764] ? intel_atomic_commit_tail+0x3e60/0x3e60 [i915]
[ 45.066898] ? intel_atomic_commit_tail+0x3e60/0x3e60 [i915]
[ 45.067001] drm_atomic_commit+0xc4/0xf0 [drm]
[ 45.067074] restore_fbdev_mode_atomic+0x562/0x780 [drm_kms_helper]
[ 45.067166] ? drm_fb_helper_debug_leave+0x690/0x690 [drm_kms_helper]
[ 45.067249] ? kasan_check_read+0x11/0x20
[ 45.067324] restore_fbdev_mode+0x127/0x4b0 [drm_kms_helper]
[ 45.067364] ? kasan_check_read+0x11/0x20
[ 45.067406] drm_fb_helper_restore_fbdev_mode_unlocked+0x164/0x200 [drm_kms_helper]
[ 45.067462] ? drm_fb_helper_hotplug_event+0x30/0x30 [drm_kms_helper]
[ 45.067508] ? kasan_check_write+0x14/0x20
[ 45.070360] ? mutex_unlock+0x22/0x40
[ 45.073748] drm_fb_helper_set_par+0xb2/0xf0 [drm_kms_helper]
[ 45.075846] drm_fb_helper_hotplug_event.part.33+0x1cd/0x290 [drm_kms_helper]
[ 45.078088] drm_fb_helper_hotplug_event+0x1c/0x30 [drm_kms_helper]
[ 45.082614] intel_fbdev_output_poll_changed+0x9f/0x140 [i915]
[ 45.087069] drm_kms_helper_hotplug_event+0x67/0x90 [drm_kms_helper]
[ 45.089319] intel_dp_mst_hotplug+0x37/0x50 [i915]
[ 45.091496] drm_dp_destroy_connector_work+0x510/0x6f0 [drm_kms_helper]
[ 45.093675] ? drm_dp_update_payload_part1+0x1220/0x1220 [drm_kms_helper]
[ 45.095851] ? kasan_check_write+0x14/0x20
[ 45.098473] ? kasan_check_read+0x11/0x20
[ 45.101155] ? strscpy+0x17c/0x530
[ 45.103808] ? __switch_to_asm+0x34/0x70
[ 45.106456] ? syscall_return_via_sysret+0xf/0x7f
[ 45.109711] ? read_word_at_a_time+0x20/0x20
[ 45.113138] ? __switch_to_asm+0x40/0x70
[ 45.116529] ? __switch_to_asm+0x34/0x70
[ 45.119891] ? __switch_to_asm+0x40/0x70
[ 45.123224] ? __switch_to_asm+0x34/0x70
[ 45.126540] ? __switch_to_asm+0x34/0x70
[ 45.129824] process_one_work+0x88d/0x15d0
[ 45.133172] ? pool_mayday_timeout+0x850/0x850
[ 45.136459] ? pci_mmcfg_check_reserved+0x110/0x128
[ 45.139739] ? wake_q_add+0xb0/0xb0
[ 45.143010] ? check_preempt_wakeup+0x652/0x1050
[ 45.146304] ? worker_enter_idle+0x29e/0x740
[ 45.149589] ? __schedule+0x1ec0/0x1ec0
[ 45.152937] ? kasan_check_read+0x11/0x20
[ 45.156179] ? _raw_spin_lock_irq+0xa3/0x130
[ 45.159382] ? _raw_read_unlock_irqrestore+0x30/0x30
[ 45.162542] ? kasan_check_write+0x14/0x20
[ 45.165657] worker_thread+0x1a5/0x1470
[ 45.168725] ? set_load_weight+0x2e0/0x2e0
[ 45.171755] ? process_one_work+0x15d0/0x15d0
[ 45.174806] ? __switch_to_asm+0x34/0x70
[ 45.177645] ? __switch_to_asm+0x40/0x70
[ 45.180323] ? __switch_to_asm+0x34/0x70
[ 45.182936] ? __switch_to_asm+0x40/0x70
[ 45.185539] ? __switch_to_asm+0x34/0x70
[ 45.188100] ? __switch_to_asm+0x40/0x70
[ 45.190628] ? __schedule+0x7d4/0x1ec0
[ 45.193143] ? save_stack+0xa9/0xd0
[ 45.195632] ? kasan_check_write+0x10/0x20
[ 45.198162] ? kasan_kmalloc+0xc4/0xe0
[ 45.200609] ? kmem_cache_alloc_trace+0xdd/0x190
[ 45.203046] ? kthread+0x9f/0x3b0
[ 45.205470] ? ret_from_fork+0x35/0x40
[ 45.207876] ? unwind_next_frame+0x43/0x50
[ 45.210273] ? __save_stack_trace+0x82/0x100
[ 45.212658] ? deactivate_slab.isra.67+0x3d4/0x580
[ 45.215026] ? default_wake_function+0x35/0x50
[ 45.217399] ? kasan_check_read+0x11/0x20
[ 45.219825] ? _raw_spin_lock_irqsave+0xae/0x140
[ 45.222174] ? __lock_text_start+0x8/0x8
[ 45.224521] ? replenish_dl_entity.cold.62+0x4f/0x4f
[ 45.226868] ? __kthread_parkme+0x87/0xf0
[ 45.229200] kthread+0x2f7/0x3b0
[ 45.231557] ? process_one_work+0x15d0/0x15d0
[ 45.233923] ? kthread_park+0x120/0x120
[ 45.236249] ret_from_fork+0x35/0x40
[ 45.240875] Allocated by task 242:
[ 45.243136] save_stack+0x43/0xd0
[ 45.245385] kasan_kmalloc+0xc4/0xe0
[ 45.247597] kmem_cache_alloc_trace+0xdd/0x190
[ 45.249793] drm_dp_add_port+0x1e0/0x2170 [drm_kms_helper]
[ 45.252000] drm_dp_send_link_address+0x4a7/0x740 [drm_kms_helper]
[ 45.254389] drm_dp_check_and_send_link_address+0x1a7/0x210 [drm_kms_helper]
[ 45.256803] drm_dp_mst_link_probe_work+0x6f/0xb0 [drm_kms_helper]
[ 45.259200] process_one_work+0x88d/0x15d0
[ 45.261597] worker_thread+0x1a5/0x1470
[ 45.264038] kthread+0x2f7/0x3b0
[ 45.266371] ret_from_fork+0x35/0x40
[ 45.270937] Freed by task 53:
[ 45.273170] save_stack+0x43/0xd0
[ 45.275382] __kasan_slab_free+0x139/0x190
[ 45.277604] kasan_slab_free+0xe/0x10
[ 45.279826] kfree+0x99/0x1b0
[ 45.282044] drm_dp_free_mst_port+0x4a/0x60 [drm_kms_helper]
[ 45.284330] drm_dp_destroy_connector_work+0x43e/0x6f0 [drm_kms_helper]
[ 45.286660] process_one_work+0x88d/0x15d0
[ 45.288934] worker_thread+0x1a5/0x1470
[ 45.291231] kthread+0x2f7/0x3b0
[ 45.293547] ret_from_fork+0x35/0x40
[ 45.298206] The buggy address belongs to the object at ffff8882b4b70968
which belongs to the cache kmalloc-2k of size 2048
[ 45.303047] The buggy address is located 0 bytes inside of
2048-byte region [ffff8882b4b70968, ffff8882b4b71168)
[ 45.308010] The buggy address belongs to the page:
[ 45.310477] page:ffffea000ad2dc00 count:1 mapcount:0 mapping:ffff8882c080cf40 index:0x0 compound_mapcount: 0
[ 45.313051] flags: 0x8000000000010200(slab|head)
[ 45.315635] raw: 8000000000010200 ffffea000aac2808 ffffea000abe8608 ffff8882c080cf40
[ 45.318300] raw: 0000000000000000 00000000000d000d 00000001ffffffff 0000000000000000
[ 45.320966] page dumped because: kasan: bad access detected
[ 45.326312] Memory state around the buggy address:
[ 45.329085] ffff8882b4b70800: fb fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 45.331845] ffff8882b4b70880: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 45.334584] >ffff8882b4b70900: fc fc fc fc fc fc fc fc fc fc fc fc fc fb fb fb
[ 45.337302] ^
[ 45.340061] ffff8882b4b70980: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 45.342910] ffff8882b4b70a00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 45.345748] ==================================================================
So, this definitely isn't a fix that we want. This being said; there's
no real easy fix for this problem because of some of the catch-22's of
the MST helpers current design. For starters; we always need to validate
a port with drm_dp_get_validated_port_ref(), but validation relies on
the lifetime of the port in the actual topology. So once the port is
gone, it can't be validated again.
If we were to try to make the payload helpers not use port validation,
then we'd cause another problem: if the port isn't validated, it could
be freed and we'd just start causing more KASAN issues. There are
already hacks that attempt to workaround this in
drm_dp_mst_destroy_connector_work() by re-initializing the kref so that
it can be used again and it's memory can be freed once the VCPI helpers
finish removing the port's respective payloads. But none of these really
do anything helpful since the port still can't be validated since it's
gone from the topology. Also, that workaround is immensely confusing to
read through.
What really needs to be done in order to fix this is to teach DRM how to
track the lifetime of the structs for MST ports and branch devices
seperately from their lifetime in the actual topology. Simply put; this
means having two different krefs-one that removes the port/branch device
from the topology, and one that finally calls kfree(). This would let us
simplify things, since we'd now be able to keep ports around without
having to keep them in the topology at the same time, which is exactly
what we need in order to teach our VCPI helpers to only validate ports
when it's actually necessary without running the risk of trying to use
unallocated memory.
Such a fix is on it's way, but for now let's play it safe and just
revert this. If this bug has been around for well over a year, we can
wait a little while to get an actual proper fix here.
Signed-off-by: Lyude Paul <lyude(a)redhat.com>
Fixes: c54c7374ff44 ("drm/dp_mst: Skip validating ports during destruction, just ref")
Cc: Daniel Vetter <daniel(a)ffwll.ch>
Cc: Sean Paul <sean(a)poorly.run>
Cc: Jerry Zuo <Jerry.Zuo(a)amd.com>
Cc: Harry Wentland <Harry.Wentland(a)amd.com>
Cc: stable(a)vger.kernel.org # v4.6+
---
drivers/gpu/drm/drm_dp_mst_topology.c | 15 ++-------------
1 file changed, 2 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
index 08978ad72f33..529414556962 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -1023,20 +1023,9 @@ static struct drm_dp_mst_port *drm_dp_mst_get_port_ref_locked(struct drm_dp_mst_
static struct drm_dp_mst_port *drm_dp_get_validated_port_ref(struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port)
{
struct drm_dp_mst_port *rport = NULL;
-
mutex_lock(&mgr->lock);
- /*
- * Port may or may not be 'valid' but we don't care about that when
- * destroying the port and we are guaranteed that the port pointer
- * will be valid until we've finished
- */
- if (current_work() == &mgr->destroy_connector_work) {
- kref_get(&port->kref);
- rport = port;
- } else if (mgr->mst_primary) {
- rport = drm_dp_mst_get_port_ref_locked(mgr->mst_primary,
- port);
- }
+ if (mgr->mst_primary)
+ rport = drm_dp_mst_get_port_ref_locked(mgr->mst_primary, port);
mutex_unlock(&mgr->lock);
return rport;
}
--
2.19.2
After we drop the i_pages lock, the inode can be freed at any time.
The get_unlocked_entry() code has no choice but to reacquire the lock,
so it can't be used here. Create a new wait_entry_unlocked() which takes
care not to acquire the lock or dereference the address_space in any way.
Fixes: c2a7d2a11552 ("filesystem-dax: Introduce dax_lock_mapping_entry()")
Cc: stable(a)vger.kernel.org
Signed-off-by: Matthew Wilcox <willy(a)infradead.org>
---
fs/dax.c | 26 +++++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
diff --git a/fs/dax.c b/fs/dax.c
index e69fc231833b..cf1805645d18 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -232,6 +232,28 @@ static void *get_unlocked_entry(struct xa_state *xas)
}
}
+/*
+ * The only thing keeping the address space around is the i_pages lock
+ * (it's cycled in clear_inode() after removing the entries from i_pages)
+ * After we call xas_unlock_irq(), we cannot touch xas->xa.
+ */
+static void wait_entry_unlocked(struct xa_state *xas, void *entry)
+{
+ struct wait_exceptional_entry_queue ewait;
+ wait_queue_head_t *wq;
+
+ init_wait(&ewait.wait);
+ ewait.wait.func = wake_exceptional_entry_func;
+
+ wq = dax_entry_waitqueue(xas, entry, &ewait.key);
+ prepare_to_wait_exclusive(wq, &ewait.wait, TASK_UNINTERRUPTIBLE);
+ xas_unlock_irq(xas);
+ schedule();
+ finish_wait(wq, &ewait.wait);
+ if (waitqueue_active(wq))
+ __wake_up(wq, TASK_NORMAL, 1, &ewait.key);
+}
+
static void put_unlocked_entry(struct xa_state *xas, void *entry)
{
/* If we were the only waiter woken, wake the next one */
@@ -389,9 +411,7 @@ bool dax_lock_mapping_entry(struct page *page)
entry = xas_load(&xas);
if (dax_is_locked(entry)) {
rcu_read_unlock();
- entry = get_unlocked_entry(&xas);
- xas_unlock_irq(&xas);
- put_unlocked_entry(&xas, entry);
+ wait_entry_unlocked(&xas, entry);
rcu_read_lock();
continue;
}
--
2.19.1
This patch protects against data corruption that could happen in the bus,
by checking that that the digest size returned by the TPM during a PCR read
matches the size of the algorithm passed to tpm2_pcr_read().
This check is performed after information about the PCR banks has been
retrieved.
Signed-off-by: Roberto Sassu <roberto.sassu(a)huawei.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen(a)linux.intel.com>
Cc: stable(a)vger.kernel.org
---
drivers/char/tpm/tpm2-cmd.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
index acaaab72ef2e..974465f04b78 100644
--- a/drivers/char/tpm/tpm2-cmd.c
+++ b/drivers/char/tpm/tpm2-cmd.c
@@ -179,15 +179,29 @@ struct tpm2_pcr_read_out {
int tpm2_pcr_read(struct tpm_chip *chip, u32 pcr_idx,
struct tpm_digest *digest_struct, u16 *digest_size_ptr)
{
+ int i;
int rc;
struct tpm_buf buf;
struct tpm2_pcr_read_out *out;
u8 pcr_select[TPM2_PCR_SELECT_MIN] = {0};
u16 digest_size;
+ u16 expected_digest_size = 0;
if (pcr_idx >= TPM2_PLATFORM_PCR)
return -EINVAL;
+ if (!digest_size_ptr) {
+ for (i = 0; i < chip->nr_allocated_banks &&
+ chip->allocated_banks[i].alg_id != digest_struct->alg_id;
+ i++)
+ ;
+
+ if (i == chip->nr_allocated_banks)
+ return -EINVAL;
+
+ expected_digest_size = chip->allocated_banks[i].digest_size;
+ }
+
rc = tpm_buf_init(&buf, TPM2_ST_NO_SESSIONS, TPM2_CC_PCR_READ);
if (rc)
return rc;
@@ -207,7 +221,8 @@ int tpm2_pcr_read(struct tpm_chip *chip, u32 pcr_idx,
out = (struct tpm2_pcr_read_out *)&buf.data[TPM_HEADER_SIZE];
digest_size = be16_to_cpu(out->digest_size);
- if (digest_size > sizeof(digest_struct->digest)) {
+ if (digest_size > sizeof(digest_struct->digest) ||
+ (!digest_size_ptr && digest_size != expected_digest_size)) {
rc = -EINVAL;
goto out;
}
--
2.17.1
From: Jerome Brunet <jbrunet(a)baylibre.com>
[ Upstream commit e39f9dd8206ad66992ac0e6218ef1ba746f2cce9 ]
If a bias is enabled on a pin of an Amlogic SoC, calling .pin_config_set()
with PIN_CONFIG_BIAS_DISABLE will not disable the bias. Instead it will
force a pull-down bias on the pin.
Instead of the pull type register bank, the driver should access the pull
enable register bank.
Fixes: 6ac730951104 ("pinctrl: add driver for Amlogic Meson SoCs")
Signed-off-by: Jerome Brunet <jbrunet(a)baylibre.com>
Acked-by: Neil Armstrong <narmstrong(a)baylibre.com>
Signed-off-by: Linus Walleij <linus.walleij(a)linaro.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
drivers/pinctrl/meson/pinctrl-meson.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c
index 66ed70c12733..6c43322dbb97 100644
--- a/drivers/pinctrl/meson/pinctrl-meson.c
+++ b/drivers/pinctrl/meson/pinctrl-meson.c
@@ -273,7 +273,7 @@ static int meson_pinconf_set(struct pinctrl_dev *pcdev, unsigned int pin,
dev_dbg(pc->dev, "pin %u: disable bias\n", pin);
meson_calc_reg_and_bit(bank, pin, REG_PULL, ®, &bit);
- ret = regmap_update_bits(pc->reg_pull, reg,
+ ret = regmap_update_bits(pc->reg_pullen, reg,
BIT(bit), 0);
if (ret)
return ret;
--
2.17.1
Hi Greg,
Few stable candidates for 4.4.y for your consideration.
Cherry picked and build tested on linux-4.4.165 for
ARCH=arm/arm64 + allmodconfig.
Few fixes are applicable for 3.18.y as well, but they
needed minor rebasing, so I'll submit them shortly in
a separate thread.
Regards,
Amit Pundir
Amitkumar Karwar (1):
mwifiex: Fix NULL pointer dereference in skb_dequeue()
Johannes Thumshirn (1):
cw1200: Don't leak memory if krealloc failes
Karthik D A (1):
mwifiex: fix p2p device doesn't find in scan problem
Liping Zhang (1):
netfilter: nf_tables: fix oops when inserting an element into a
verdict map
Mauricio Faria de Oliveira (1):
scsi: qla2xxx: do not queue commands when unloading
Subhash Jadavani (2):
scsi: ufs: fix race between clock gating and devfreq scaling work
scsi: ufshcd: release resources if probe fails
Vasanthakumar Thiagarajan (1):
ath10k: fix kernel panic due to race in accessing arvif list
Venkat Gopalakrishnan (1):
scsi: ufshcd: Fix race between clk scaling and ungate work
Yaniv Gardi (1):
scsi: ufs: fix bugs related to null pointer access and array size
drivers/net/wireless/ath/ath10k/mac.c | 6 +++
drivers/net/wireless/cw1200/wsm.c | 16 ++++---
drivers/net/wireless/mwifiex/cfg80211.c | 10 ++++-
drivers/net/wireless/mwifiex/wmm.c | 12 ++++--
drivers/scsi/qla2xxx/qla_os.c | 5 +++
drivers/scsi/ufs/ufs.h | 3 +-
drivers/scsi/ufs/ufshcd-pci.c | 2 +
drivers/scsi/ufs/ufshcd-pltfrm.c | 5 +--
drivers/scsi/ufs/ufshcd.c | 75 +++++++++++++++++++++++++++++----
net/netfilter/nf_tables_api.c | 1 +
10 files changed, 110 insertions(+), 25 deletions(-)
--
2.7.4
From: Lihong Yang <lihong.yang(a)intel.com>
In __i40e_del_filter function, the flag __I40E_MACVLAN_SYNC_PENDING for
the PF state is wrongly set for the VSI. Deleting any of the MAC filters
has caused the incorrect syncing for the PF. Fix it by setting this state
flag to the intended PF.
CC: stable <stable(a)vger.kernel.org>
Signed-off-by: Lihong Yang <lihong.yang(a)intel.com>
Tested-by: Andrew Bowers <andrewx.bowers(a)intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher(a)intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 21c2688d6308..a3f45335437c 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -1413,7 +1413,7 @@ void __i40e_del_filter(struct i40e_vsi *vsi, struct i40e_mac_filter *f)
}
vsi->flags |= I40E_VSI_FLAG_FILTER_CHANGED;
- set_bit(__I40E_MACVLAN_SYNC_PENDING, vsi->state);
+ set_bit(__I40E_MACVLAN_SYNC_PENDING, vsi->back->state);
}
/**
--
2.19.2
From: Greg Hackmann <ghackmann(a)android.com>
(commit 1a381d4a0a9a0f999a13faaba22bf6b3fc80dcb9 upstream)
Linking the ARM64 defconfig kernel with LLVM lld fails with the error:
ld.lld: error: unknown argument: -p
Makefile:1015: recipe for target 'vmlinux' failed
Without this flag, the ARM64 defconfig kernel successfully links with
lld and boots on Dragonboard 410c.
After digging through binutils source and changelogs, it turns out that
-p is only relevant to ancient binutils installations targeting 32-bit
ARM. binutils accepts -p for AArch64 too, but it's always been
undocumented and silently ignored. A comment in
ld/emultempl/aarch64elf.em explains that it's "Only here for backwards
compatibility".
Since this flag is a no-op on ARM64, we can safely drop it.
Acked-by: Will Deacon <will.deacon(a)arm.com>
Reviewed-by: Nick Desaulniers <ndesaulniers(a)google.com>
Signed-off-by: Greg Hackmann <ghackmann(a)google.com>
Signed-off-by: Catalin Marinas <catalin.marinas(a)arm.com>
Signed-off-by: Nick Desaulniers <ndesaulniers(a)google.com>
---
This is needed for linking arm64 kernels with LLVM's LLD linker. I'm
most interested in this for 4.14 and know it applies cleanly there, but
would like it in 4.9 and 4.4 if possible. The upstream patch first
landed in v4.18-rc4.
arch/arm64/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 48158c550110..7976d2d242fa 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -10,7 +10,7 @@
#
# Copyright (C) 1995-2001 by Russell King
-LDFLAGS_vmlinux :=-p --no-undefined -X
+LDFLAGS_vmlinux :=--no-undefined -X
CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET)
GZFLAGS :=-9
--
2.20.0.rc0.387.gc7a69e6b6c-goog
The patch below does not apply to the 4.14-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 ceff2f4dcd44abf35864d9a99f85ac619e89a01d Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:46 +0200
Subject: [PATCH] drm/mediatek: fix OF sibling-node lookup
Use the new of_get_compatible_child() helper to lookup the sibling
instead of using of_find_compatible_node(), which searches the entire
tree from a given start node and thus can return an unrelated (i.e.
non-sibling) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the parent device node).
While at it, also fix the related cec-node reference leak.
Fixes: 8f83f26891e1 ("drm/mediatek: Add HDMI support")
Cc: stable <stable(a)vger.kernel.org> # 4.8
Cc: Junzhi Zhao <junzhi.zhao(a)mediatek.com>
Cc: Philipp Zabel <p.zabel(a)pengutronix.de>
Cc: CK Hu <ck.hu(a)mediatek.com>
Cc: David Airlie <airlied(a)linux.ie>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
index 2d45d1dd9554..643f5edd68fe 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
@@ -1446,8 +1446,7 @@ static int mtk_hdmi_dt_parse_pdata(struct mtk_hdmi *hdmi,
}
/* The CEC module handles HDMI hotplug detection */
- cec_np = of_find_compatible_node(np->parent, NULL,
- "mediatek,mt8173-cec");
+ cec_np = of_get_compatible_child(np->parent, "mediatek,mt8173-cec");
if (!cec_np) {
dev_err(dev, "Failed to find CEC node\n");
return -EINVAL;
@@ -1457,8 +1456,10 @@ static int mtk_hdmi_dt_parse_pdata(struct mtk_hdmi *hdmi,
if (!cec_pdev) {
dev_err(hdmi->dev, "Waiting for CEC device %pOF\n",
cec_np);
+ of_node_put(cec_np);
return -EPROBE_DEFER;
}
+ of_node_put(cec_np);
hdmi->cec_dev = &cec_pdev->dev;
/*
Currently kernel might allocate different connector ids
for the same outputs in case of DP MST, which seems to
confuse userspace. There are can be different connector
ids in the list, which could be assigned to the same
output, while being in different states.
This results in issues, like external displays staying
blank after quick unplugging and plugging back(bug #106250).
Returning only active DP connectors fixes the issue.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106250
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy(a)intel.com>
---
drivers/gpu/drm/drm_mode_config.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c
index ee80788f2c40..ec5b2b08a45e 100644
--- a/drivers/gpu/drm/drm_mode_config.c
+++ b/drivers/gpu/drm/drm_mode_config.c
@@ -143,6 +143,7 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
drm_connector_list_iter_begin(dev, &conn_iter);
count = 0;
connector_id = u64_to_user_ptr(card_res->connector_id_ptr);
+ DRM_DEBUG_KMS("GetResources: writing connectors start");
drm_for_each_connector_iter(connector, &conn_iter) {
/* only expose writeback connectors if userspace understands them */
if (!file_priv->writeback_connectors &&
@@ -150,15 +151,20 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
continue;
if (drm_lease_held(file_priv, connector->base.id)) {
- if (count < card_res->count_connectors &&
- put_user(connector->base.id, connector_id + count)) {
- drm_connector_list_iter_end(&conn_iter);
- return -EFAULT;
+ if (connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort ||
+ connector->status != connector_status_disconnected) {
+ if (count < card_res->count_connectors &&
+ put_user(connector->base.id, connector_id + count)) {
+ drm_connector_list_iter_end(&conn_iter);
+ return -EFAULT;
+ }
+ DRM_DEBUG_KMS("GetResources: connector %s", connector->name);
+ count++;
}
- count++;
}
}
card_res->count_connectors = count;
+ DRM_DEBUG_KMS("GetResources: writing connectors end - count %d", count);
drm_connector_list_iter_end(&conn_iter);
return ret;
--
2.17.1
The patch below does not apply to the 4.14-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 9844fb2e351311210e6660a9a1c62d17424a6145 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:53 +0200
Subject: [PATCH] power: supply: twl4030-charger: fix OF sibling-node lookup
Use the new of_get_compatible_child() helper to lookup the usb sibling
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(non-sibling) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the parent device node).
While at it, also fix the related phy-node reference leak.
Fixes: f5e4edb8c888 ("power: twl4030_charger: find associated phy by more reliable means.")
Cc: stable <stable(a)vger.kernel.org> # 4.2
Cc: NeilBrown <neilb(a)suse.de>
Cc: Felipe Balbi <felipe.balbi(a)linux.intel.com>
Cc: Sebastian Reichel <sre(a)kernel.org>
Reviewed-by: Sebastian Reichel <sre(a)kernel.org>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/power/supply/twl4030_charger.c b/drivers/power/supply/twl4030_charger.c
index bbcaee56db9d..b6a7d9f74cf3 100644
--- a/drivers/power/supply/twl4030_charger.c
+++ b/drivers/power/supply/twl4030_charger.c
@@ -996,12 +996,13 @@ static int twl4030_bci_probe(struct platform_device *pdev)
if (bci->dev->of_node) {
struct device_node *phynode;
- phynode = of_find_compatible_node(bci->dev->of_node->parent,
- NULL, "ti,twl4030-usb");
+ phynode = of_get_compatible_child(bci->dev->of_node->parent,
+ "ti,twl4030-usb");
if (phynode) {
bci->usb_nb.notifier_call = twl4030_bci_usb_ncb;
bci->transceiver = devm_usb_get_phy_by_node(
bci->dev, phynode, &bci->usb_nb);
+ of_node_put(phynode);
if (IS_ERR(bci->transceiver)) {
ret = PTR_ERR(bci->transceiver);
if (ret == -EPROBE_DEFER)
The patch below does not apply to the 4.14-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 5bf59773aaf36dd62117dc83d50e1bbf9ef432da Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:52 +0200
Subject: [PATCH] NFC: nfcmrvl_uart: fix OF child-node lookup
Use the new of_get_compatible_child() helper to lookup the nfc child
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(i.e. non-child) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the parent node).
Fixes: e097dc624f78 ("NFC: nfcmrvl: add UART driver")
Fixes: d8e018c0b321 ("NFC: nfcmrvl: update device tree bindings for Marvell NFC")
Cc: stable <stable(a)vger.kernel.org> # 4.2
Cc: Vincent Cuissard <cuissard(a)marvell.com>
Cc: Samuel Ortiz <sameo(a)linux.intel.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/nfc/nfcmrvl/uart.c b/drivers/nfc/nfcmrvl/uart.c
index 91162f8e0366..9a22056e8d9e 100644
--- a/drivers/nfc/nfcmrvl/uart.c
+++ b/drivers/nfc/nfcmrvl/uart.c
@@ -73,10 +73,9 @@ static int nfcmrvl_uart_parse_dt(struct device_node *node,
struct device_node *matched_node;
int ret;
- matched_node = of_find_compatible_node(node, NULL, "marvell,nfc-uart");
+ matched_node = of_get_compatible_child(node, "marvell,nfc-uart");
if (!matched_node) {
- matched_node = of_find_compatible_node(node, NULL,
- "mrvl,nfc-uart");
+ matched_node = of_get_compatible_child(node, "mrvl,nfc-uart");
if (!matched_node)
return -ENODEV;
}
The patch below does not apply to the 4.14-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 d397dbe606120a1ea1b11b0020c3f7a3852da5ac Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:50 +0200
Subject: [PATCH] net: bcmgenet: fix OF child-node lookup
Use the new of_get_compatible_child() helper to lookup the mdio child
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(i.e. non-child) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the node of the device being probed).
Fixes: aa09677cba42 ("net: bcmgenet: add MDIO routines")
Cc: stable <stable(a)vger.kernel.org> # 3.15
Cc: David S. Miller <davem(a)davemloft.net>
Reviewed-by: Florian Fainelli <f.fainelli(a)gmail.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c
index 5333274a283c..87fc65560ceb 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
@@ -333,7 +333,7 @@ static struct device_node *bcmgenet_mii_of_find_mdio(struct bcmgenet_priv *priv)
if (!compat)
return NULL;
- priv->mdio_dn = of_find_compatible_node(dn, NULL, compat);
+ priv->mdio_dn = of_get_compatible_child(dn, compat);
kfree(compat);
if (!priv->mdio_dn) {
dev_err(kdev, "unable to find MDIO bus node\n");
The patch below does not apply to the 4.4-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 d397dbe606120a1ea1b11b0020c3f7a3852da5ac Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:50 +0200
Subject: [PATCH] net: bcmgenet: fix OF child-node lookup
Use the new of_get_compatible_child() helper to lookup the mdio child
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(i.e. non-child) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the node of the device being probed).
Fixes: aa09677cba42 ("net: bcmgenet: add MDIO routines")
Cc: stable <stable(a)vger.kernel.org> # 3.15
Cc: David S. Miller <davem(a)davemloft.net>
Reviewed-by: Florian Fainelli <f.fainelli(a)gmail.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c
index 5333274a283c..87fc65560ceb 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
@@ -333,7 +333,7 @@ static struct device_node *bcmgenet_mii_of_find_mdio(struct bcmgenet_priv *priv)
if (!compat)
return NULL;
- priv->mdio_dn = of_find_compatible_node(dn, NULL, compat);
+ priv->mdio_dn = of_get_compatible_child(dn, compat);
kfree(compat);
if (!priv->mdio_dn) {
dev_err(kdev, "unable to find MDIO bus node\n");
The patch below does not apply to the 4.9-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 d397dbe606120a1ea1b11b0020c3f7a3852da5ac Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:50 +0200
Subject: [PATCH] net: bcmgenet: fix OF child-node lookup
Use the new of_get_compatible_child() helper to lookup the mdio child
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(i.e. non-child) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the node of the device being probed).
Fixes: aa09677cba42 ("net: bcmgenet: add MDIO routines")
Cc: stable <stable(a)vger.kernel.org> # 3.15
Cc: David S. Miller <davem(a)davemloft.net>
Reviewed-by: Florian Fainelli <f.fainelli(a)gmail.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c
index 5333274a283c..87fc65560ceb 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
@@ -333,7 +333,7 @@ static struct device_node *bcmgenet_mii_of_find_mdio(struct bcmgenet_priv *priv)
if (!compat)
return NULL;
- priv->mdio_dn = of_find_compatible_node(dn, NULL, compat);
+ priv->mdio_dn = of_get_compatible_child(dn, compat);
kfree(compat);
if (!priv->mdio_dn) {
dev_err(kdev, "unable to find MDIO bus node\n");
The patch below does not apply to the 4.9-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 5bf59773aaf36dd62117dc83d50e1bbf9ef432da Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:52 +0200
Subject: [PATCH] NFC: nfcmrvl_uart: fix OF child-node lookup
Use the new of_get_compatible_child() helper to lookup the nfc child
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(i.e. non-child) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the parent node).
Fixes: e097dc624f78 ("NFC: nfcmrvl: add UART driver")
Fixes: d8e018c0b321 ("NFC: nfcmrvl: update device tree bindings for Marvell NFC")
Cc: stable <stable(a)vger.kernel.org> # 4.2
Cc: Vincent Cuissard <cuissard(a)marvell.com>
Cc: Samuel Ortiz <sameo(a)linux.intel.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/nfc/nfcmrvl/uart.c b/drivers/nfc/nfcmrvl/uart.c
index 91162f8e0366..9a22056e8d9e 100644
--- a/drivers/nfc/nfcmrvl/uart.c
+++ b/drivers/nfc/nfcmrvl/uart.c
@@ -73,10 +73,9 @@ static int nfcmrvl_uart_parse_dt(struct device_node *node,
struct device_node *matched_node;
int ret;
- matched_node = of_find_compatible_node(node, NULL, "marvell,nfc-uart");
+ matched_node = of_get_compatible_child(node, "marvell,nfc-uart");
if (!matched_node) {
- matched_node = of_find_compatible_node(node, NULL,
- "mrvl,nfc-uart");
+ matched_node = of_get_compatible_child(node, "mrvl,nfc-uart");
if (!matched_node)
return -ENODEV;
}
Hi Greg,
Few stable candidates for 3.18.y for your consideration.
Cherry picked and build tested on linux-3.18.127 for
ARCH=arm/arm64 + allmodconfig.
Regards,
Amit Pundir
Johannes Thumshirn (1):
cw1200: Don't leak memory if krealloc failes
Mauricio Faria de Oliveira (1):
scsi: qla2xxx: do not queue commands when unloading
Subhash Jadavani (1):
scsi: ufs: fix race between clock gating and devfreq scaling work
Venkat Gopalakrishnan (1):
scsi: ufshcd: Fix race between clk scaling and ungate work
Yaniv Gardi (1):
scsi: ufs: fix bugs related to null pointer access and array size
drivers/net/wireless/cw1200/wsm.c | 16 +++++----
drivers/net/wireless/mwifiex/pcie.c | 9 +++--
drivers/scsi/qla2xxx/qla_os.c | 14 ++++++++
drivers/scsi/ufs/ufs.h | 3 +-
drivers/scsi/ufs/ufshcd.c | 72 +++++++++++++++++++++++++++++++++----
5 files changed, 97 insertions(+), 17 deletions(-)
--
2.7.4
The patch below does not apply to the 4.4-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 5bf59773aaf36dd62117dc83d50e1bbf9ef432da Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:52 +0200
Subject: [PATCH] NFC: nfcmrvl_uart: fix OF child-node lookup
Use the new of_get_compatible_child() helper to lookup the nfc child
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(i.e. non-child) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the parent node).
Fixes: e097dc624f78 ("NFC: nfcmrvl: add UART driver")
Fixes: d8e018c0b321 ("NFC: nfcmrvl: update device tree bindings for Marvell NFC")
Cc: stable <stable(a)vger.kernel.org> # 4.2
Cc: Vincent Cuissard <cuissard(a)marvell.com>
Cc: Samuel Ortiz <sameo(a)linux.intel.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/nfc/nfcmrvl/uart.c b/drivers/nfc/nfcmrvl/uart.c
index 91162f8e0366..9a22056e8d9e 100644
--- a/drivers/nfc/nfcmrvl/uart.c
+++ b/drivers/nfc/nfcmrvl/uart.c
@@ -73,10 +73,9 @@ static int nfcmrvl_uart_parse_dt(struct device_node *node,
struct device_node *matched_node;
int ret;
- matched_node = of_find_compatible_node(node, NULL, "marvell,nfc-uart");
+ matched_node = of_get_compatible_child(node, "marvell,nfc-uart");
if (!matched_node) {
- matched_node = of_find_compatible_node(node, NULL,
- "mrvl,nfc-uart");
+ matched_node = of_get_compatible_child(node, "mrvl,nfc-uart");
if (!matched_node)
return -ENODEV;
}
Hi Amir,
Here's a backport of this patch to 4.18 and earlier. Tested good with
ltp/fanotify09.
I didn't quite understand the relevance of masking against ALL_FSNOTIFY_EVENTS
in __fsnotify_parent() and the backport in fsnotify() is also not quite trivial.
So, can you please review?
Thanks,
Miklos
---
From: Amir Goldstein <amir73il(a)gmail.com>
Date: Tue, 30 Oct 2018 20:29:53 +0200
Subject: [PATCH] fanotify: fix handling of events on child sub-directory
When an event is reported on a sub-directory and the parent inode has
a mark mask with FS_EVENT_ON_CHILD|FS_ISDIR, the event will be sent to
fsnotify() even if the event type is not in the parent mark mask
(e.g. FS_OPEN).
Further more, if that event happened on a mount or a filesystem with
a mount/sb mark that does have that event type in their mask, the "on
child" event will be reported on the mount/sb mark. That is not
desired, because user will get a duplicate event for the same action.
Note that the event reported on the victim inode is never merged with
the event reported on the parent inode, because of the check in
should_merge(): old_fsn->inode == new_fsn->inode.
Fix this by looking for a match of an actual event type (i.e. not just
FS_ISDIR) in parent's inode mark mask and by not reporting an "on child"
event to group if event type is only found on mount/sb marks.
[backport hint: The bug seems to have always been in fanotify, but this
patch will only apply cleanly to v4.19.y]
Cc: <stable(a)vger.kernel.org> # v4.19
Signed-off-by: Amir Goldstein <amir73il(a)gmail.com>
Signed-off-by: Jan Kara <jack(a)suse.cz>
(cherry picked from commit b469e7e47c8a075cc08bcd1e85d4365134bdcdd5)
---
fs/notify/fanotify/fanotify.c | 10 +++++-----
fs/notify/fsnotify.c | 8 ++++++--
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/fs/notify/fanotify/fanotify.c b/fs/notify/fanotify/fanotify.c
index f90842efea13..78126bd7c162 100644
--- a/fs/notify/fanotify/fanotify.c
+++ b/fs/notify/fanotify/fanotify.c
@@ -113,12 +113,12 @@ static bool fanotify_should_send_event(struct fsnotify_iter_info *iter_info,
continue;
mark = iter_info->marks[type];
/*
- * if the event is for a child and this inode doesn't care about
- * events on the child, don't send it!
+ * If the event is for a child and this mark doesn't care about
+ * events on a child, don't send it!
*/
- if (type == FSNOTIFY_OBJ_TYPE_INODE &&
- (event_mask & FS_EVENT_ON_CHILD) &&
- !(mark->mask & FS_EVENT_ON_CHILD))
+ if (event_mask & FS_EVENT_ON_CHILD &&
+ (type != FSNOTIFY_OBJ_TYPE_INODE ||
+ !(mark->mask & FS_EVENT_ON_CHILD)))
continue;
marks_mask |= mark->mask;
diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
index ababdbfab537..46d27b357226 100644
--- a/fs/notify/fsnotify.c
+++ b/fs/notify/fsnotify.c
@@ -158,9 +158,9 @@ int __fsnotify_parent(const struct path *path, struct dentry *dentry, __u32 mask
parent = dget_parent(dentry);
p_inode = parent->d_inode;
- if (unlikely(!fsnotify_inode_watches_children(p_inode)))
+ if (unlikely(!fsnotify_inode_watches_children(p_inode))) {
__fsnotify_update_child_dentry_flags(p_inode);
- else if (p_inode->i_fsnotify_mask & mask) {
+ } else if (p_inode->i_fsnotify_mask & mask & ~FS_EVENT_ON_CHILD) {
struct name_snapshot name;
/* we are notifying a parent so come up with the new mask which
@@ -329,6 +329,10 @@ int fsnotify(struct inode *to_tell, __u32 mask, const void *data, int data_is,
else
mnt = NULL;
+ /* An event "on child" is not intended for a mount mark */
+ if (mask & FS_EVENT_ON_CHILD)
+ mnt = NULL;
+
/*
* Optimization: srcu_read_lock() has a memory barrier which can
* be expensive. It protects walking the *_fsnotify_marks lists.
--
2.14.5
commit 2f31a67f01a8beb22cae754c53522cb61a005750 upstream.
Backport to apply on 4.14.y and older stable releases
USB3 roothub might autosuspend before a plugged USB3 device is detected,
causing USB3 device enumeration failure.
USB3 devices don't show up as connected and enabled until USB3 link trainig
completes. On a fast booting platform with a slow USB3 link training the
link might reach the connected enabled state just as the bus is suspending.
If this device is discovered first time by the xhci_bus_suspend() routine
it will be put to U3 suspended state like the other ports which failed to
suspend earlier.
The hub thread will notice the connect change and resume the bus,
moving the port back to U0
This U0 -> U3 -> U0 transition right after being connected seems to be
too much for some devices, causing them to first go to SS.Inactive state,
and finally end up stuck in a polling state with reset asserted
Fix this by failing the bus suspend if a port has a connect change or is
in a polling state in xhci_bus_suspend().
Don't do any port changes until all ports are checked, buffer all port
changes and only write them in the end if suspend can proceed
Cc: stable(a)vger.kernel.org
Signed-off-by: Mathias Nyman <mathias.nyman(a)linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/host/xhci-hub.c | 60 ++++++++++++++++++++++++++++++++++-----------
1 file changed, 46 insertions(+), 14 deletions(-)
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index d2a9767..61db9ee 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -1481,13 +1481,16 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
__le32 __iomem **port_array;
struct xhci_bus_state *bus_state;
unsigned long flags;
+ u32 portsc_buf[USB_MAXCHILDREN];
+ bool wake_enabled;
max_ports = xhci_get_ports(hcd, &port_array);
bus_state = &xhci->bus_state[hcd_index(hcd)];
+ wake_enabled = hcd->self.root_hub->do_remote_wakeup;
spin_lock_irqsave(&xhci->lock, flags);
- if (hcd->self.root_hub->do_remote_wakeup) {
+ if (wake_enabled) {
if (bus_state->resuming_ports || /* USB2 */
bus_state->port_remote_wakeup) { /* USB3 */
spin_unlock_irqrestore(&xhci->lock, flags);
@@ -1495,26 +1498,36 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
return -EBUSY;
}
}
-
- port_index = max_ports;
+ /*
+ * Prepare ports for suspend, but don't write anything before all ports
+ * are checked and we know bus suspend can proceed
+ */
bus_state->bus_suspended = 0;
+ port_index = max_ports;
while (port_index--) {
- /* suspend the port if the port is not suspended */
u32 t1, t2;
- int slot_id;
t1 = readl(port_array[port_index]);
t2 = xhci_port_state_to_neutral(t1);
+ portsc_buf[port_index] = 0;
- if ((t1 & PORT_PE) && !(t1 & PORT_PLS_MASK)) {
- xhci_dbg(xhci, "port %d not suspended\n", port_index);
- slot_id = xhci_find_slot_id_by_port(hcd, xhci,
- port_index + 1);
- if (slot_id) {
+ /* Bail out if a USB3 port has a new device in link training */
+ if ((t1 & PORT_PLS_MASK) == XDEV_POLLING) {
+ bus_state->bus_suspended = 0;
+ spin_unlock_irqrestore(&xhci->lock, flags);
+ xhci_dbg(xhci, "Bus suspend bailout, port in polling\n");
+ return -EBUSY;
+ }
+
+ /* suspend ports in U0, or bail out for new connect changes */
+ if ((t1 & PORT_PE) && (t1 & PORT_PLS_MASK) == XDEV_U0) {
+ if ((t1 & PORT_CSC) && wake_enabled) {
+ bus_state->bus_suspended = 0;
spin_unlock_irqrestore(&xhci->lock, flags);
- xhci_stop_device(xhci, slot_id, 1);
- spin_lock_irqsave(&xhci->lock, flags);
+ xhci_dbg(xhci, "Bus suspend bailout, port connect change\n");
+ return -EBUSY;
}
+ xhci_dbg(xhci, "port %d not suspended\n", port_index);
t2 &= ~PORT_PLS_MASK;
t2 |= PORT_LINK_STROBE | XDEV_U3;
set_bit(port_index, &bus_state->bus_suspended);
@@ -1523,7 +1536,7 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
* including the USB 3.0 roothub, but only if CONFIG_PM
* is enabled, so also enable remote wake here.
*/
- if (hcd->self.root_hub->do_remote_wakeup) {
+ if (wake_enabled) {
if (t1 & PORT_CONNECT) {
t2 |= PORT_WKOC_E | PORT_WKDISC_E;
t2 &= ~PORT_WKCONN_E;
@@ -1543,7 +1556,26 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
t1 = xhci_port_state_to_neutral(t1);
if (t1 != t2)
- writel(t2, port_array[port_index]);
+ portsc_buf[port_index] = t2;
+ }
+
+ /* write port settings, stopping and suspending ports if needed */
+ port_index = max_ports;
+ while (port_index--) {
+ if (!portsc_buf[port_index])
+ continue;
+ if (test_bit(port_index, &bus_state->bus_suspended)) {
+ int slot_id;
+
+ slot_id = xhci_find_slot_id_by_port(hcd, xhci,
+ port_index + 1);
+ if (slot_id) {
+ spin_unlock_irqrestore(&xhci->lock, flags);
+ xhci_stop_device(xhci, slot_id, 1);
+ spin_lock_irqsave(&xhci->lock, flags);
+ }
+ }
+ writel(portsc_buf[port_index], port_array[port_index]);
}
hcd->state = HC_STATE_SUSPENDED;
bus_state->next_statechange = jiffies + msecs_to_jiffies(10);
--
2.7.4
From: Parav Pandit <parav(a)mellanox.com>
commit b2bedfb39541a7e14798d066b6f8685d84c8fcf5 upstream
Currently qp->port stores the port number whenever IB_QP_PORT
QP attribute mask is set (during QP state transition to INIT state).
This port number should be stored for the real QP when XRC target QP
is used.
Follow the ib_modify_qp() implementation and hide the access to ->real_qp.
This commit is required for proper operation of commit 65be9cbe1224
("RDMA/uverbs: Expand primary and alt AV port checks") which was added
to 4.14.61.
Without this commit, XRC qp's do not work.
Fixes: a512c2fbef9c ("IB/core: Introduce modify QP operation with udata")
Signed-off-by: Jack Morgenstein <jackm(a)dev.mellanox.co.il>
Signed-off-by: Parav Pandit <parav(a)mellanox.com>
Reviewed-by: Daniel Jurgens <danielj(a)mellanox.com>
Signed-off-by: Leon Romanovsky <leon(a)kernel.org>
Signed-off-by: Jason Gunthorpe <jgg(a)mellanox.com>
---
drivers/infiniband/core/verbs.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
index feb80db..6d59af0 100644
--- a/drivers/infiniband/core/verbs.c
+++ b/drivers/infiniband/core/verbs.c
@@ -1285,7 +1285,7 @@ int ib_resolve_eth_dmac(struct ib_device *device,
/**
* ib_modify_qp_with_udata - Modifies the attributes for the specified QP.
- * @qp: The QP to modify.
+ * @ib_qp: The QP to modify.
* @attr: On input, specifies the QP attributes to modify. On output,
* the current values of selected QP attributes are returned.
* @attr_mask: A bit-mask used to specify which attributes of the QP
@@ -1294,9 +1294,10 @@ int ib_resolve_eth_dmac(struct ib_device *device,
* are being modified.
* It returns 0 on success and returns appropriate error code on error.
*/
-int ib_modify_qp_with_udata(struct ib_qp *qp, struct ib_qp_attr *attr,
+int ib_modify_qp_with_udata(struct ib_qp *ib_qp, struct ib_qp_attr *attr,
int attr_mask, struct ib_udata *udata)
{
+ struct ib_qp *qp = ib_qp->real_qp;
int ret;
if (attr_mask & IB_QP_AV) {
--
1.8.1.2
From: Hans Verkuil <hverkuil-cisco(a)xs4all.nl>
vb2_start_streaming() already rolls back the buffers, so there is no
need to call __vb2_queue_cancel(). Especially since __vb2_queue_cancel()
does too much, such as zeroing the q->queued_count value, causing vb2
to think that no buffers have been queued.
It appears that this call to __vb2_queue_cancel() is a left-over from
before commit b3379c6201bb3.
Signed-off-by: Hans Verkuil <hverkuil-cisco(a)xs4all.nl>
Fixes: b3379c6201bb3 ('vb2: only call start_streaming if sufficient buffers are queued')
Cc: <stable(a)vger.kernel.org> # for v4.16 and up
---
drivers/media/common/videobuf2/videobuf2-core.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c
index 0ca81d495bda..77e2bfe5e722 100644
--- a/drivers/media/common/videobuf2/videobuf2-core.c
+++ b/drivers/media/common/videobuf2/videobuf2-core.c
@@ -1941,10 +1941,8 @@ int vb2_core_streamon(struct vb2_queue *q, unsigned int type)
if (ret)
return ret;
ret = vb2_start_streaming(q);
- if (ret) {
- __vb2_queue_cancel(q);
+ if (ret)
return ret;
- }
}
q->streaming = 1;
--
2.19.1
If we race with inode destroy, it's possible for page->mapping to be
NULL before we even enter this routine, as well as after having slept
waiting for the dax entry to become unlocked.
Fixes: c2a7d2a11552 ("filesystem-dax: Introduce dax_lock_mapping_entry()")
Cc: stable(a)vger.kernel.org
Reported-by: Jan Kara <jack(a)suse.cz>
Signed-off-by: Matthew Wilcox <willy(a)infradead.org>
---
fs/dax.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/dax.c b/fs/dax.c
index 9bcce89ea18e..e69fc231833b 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -365,7 +365,7 @@ bool dax_lock_mapping_entry(struct page *page)
struct address_space *mapping = READ_ONCE(page->mapping);
locked = false;
- if (!dax_mapping(mapping))
+ if (!mapping || !dax_mapping(mapping))
break;
/*
--
2.19.1
The patch below does not apply to the 4.14-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 21556350ade3cb5d7afecc8b3544e56431d21695 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala(a)linux.intel.com>
Date: Wed, 14 Nov 2018 19:34:40 +0200
Subject: [PATCH] drm/i915: Disable LP3 watermarks on all SNB machines
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
I have a Thinkpad X220 Tablet in my hands that is losing vblank
interrupts whenever LP3 watermarks are used.
If I nudge the latency value written to the WM3 register just
by one in either direction the problem disappears. That to me
suggests that the punit will not enter the corrsponding
powersave mode (MPLL shutdown IIRC) unless the latency value
in the register matches exactly what we read from SSKPD. Ie.
it's not really a latency value but rather just a cookie
by which the punit can identify the desired power saving state.
On HSW/BDW this was changed such that we actually just write
the WM level number into those bits, which makes much more
sense given the observed behaviour.
We could try to handle this by disallowing LP3 watermarks
only when vblank interrupts are enabled but we'd first have
to prove that only vblank interrupts are affected, which
seems unlikely. Also we can't grab the wm mutex from the
vblank enable/disable hooks because those are called with
various spinlocks held. Thus we'd have to redesigne the
watermark locking. So to play it safe and keep the code
simple we simply disable LP3 watermarks on all SNB machines.
To do that we simply zero out the latency values for
watermark level 3, and we adjust the watermark computation
to check for that. The behaviour now matches that of the
g4x/vlv/skl wm code in the presence of a zeroed latency
value.
v2: s/USHRT_MAX/U32_MAX/ for consistency with the types (Chris)
Cc: stable(a)vger.kernel.org
Cc: Chris Wilson <chris(a)chris-wilson.co.uk>
Acked-by: Chris Wilson <chris(a)chris-wilson.co.uk>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101269
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103713
Signed-off-by: Ville Syrjälä <ville.syrjala(a)linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181114173440.6730-1-ville.s…
(cherry picked from commit 03981c6ebec4fc7056b9b45f847393aeac90d060)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen(a)linux.intel.com>
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 245f0022bcfd..3fe358db1276 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -2493,6 +2493,9 @@ static uint32_t ilk_compute_pri_wm(const struct intel_crtc_state *cstate,
uint32_t method1, method2;
int cpp;
+ if (mem_value == 0)
+ return U32_MAX;
+
if (!intel_wm_plane_visible(cstate, pstate))
return 0;
@@ -2522,6 +2525,9 @@ static uint32_t ilk_compute_spr_wm(const struct intel_crtc_state *cstate,
uint32_t method1, method2;
int cpp;
+ if (mem_value == 0)
+ return U32_MAX;
+
if (!intel_wm_plane_visible(cstate, pstate))
return 0;
@@ -2545,6 +2551,9 @@ static uint32_t ilk_compute_cur_wm(const struct intel_crtc_state *cstate,
{
int cpp;
+ if (mem_value == 0)
+ return U32_MAX;
+
if (!intel_wm_plane_visible(cstate, pstate))
return 0;
@@ -3008,6 +3017,34 @@ static void snb_wm_latency_quirk(struct drm_i915_private *dev_priv)
intel_print_wm_latency(dev_priv, "Cursor", dev_priv->wm.cur_latency);
}
+static void snb_wm_lp3_irq_quirk(struct drm_i915_private *dev_priv)
+{
+ /*
+ * On some SNB machines (Thinkpad X220 Tablet at least)
+ * LP3 usage can cause vblank interrupts to be lost.
+ * The DEIIR bit will go high but it looks like the CPU
+ * never gets interrupted.
+ *
+ * It's not clear whether other interrupt source could
+ * be affected or if this is somehow limited to vblank
+ * interrupts only. To play it safe we disable LP3
+ * watermarks entirely.
+ */
+ if (dev_priv->wm.pri_latency[3] == 0 &&
+ dev_priv->wm.spr_latency[3] == 0 &&
+ dev_priv->wm.cur_latency[3] == 0)
+ return;
+
+ dev_priv->wm.pri_latency[3] = 0;
+ dev_priv->wm.spr_latency[3] = 0;
+ dev_priv->wm.cur_latency[3] = 0;
+
+ DRM_DEBUG_KMS("LP3 watermarks disabled due to potential for lost interrupts\n");
+ intel_print_wm_latency(dev_priv, "Primary", dev_priv->wm.pri_latency);
+ intel_print_wm_latency(dev_priv, "Sprite", dev_priv->wm.spr_latency);
+ intel_print_wm_latency(dev_priv, "Cursor", dev_priv->wm.cur_latency);
+}
+
static void ilk_setup_wm_latency(struct drm_i915_private *dev_priv)
{
intel_read_wm_latency(dev_priv, dev_priv->wm.pri_latency);
@@ -3024,8 +3061,10 @@ static void ilk_setup_wm_latency(struct drm_i915_private *dev_priv)
intel_print_wm_latency(dev_priv, "Sprite", dev_priv->wm.spr_latency);
intel_print_wm_latency(dev_priv, "Cursor", dev_priv->wm.cur_latency);
- if (IS_GEN6(dev_priv))
+ if (IS_GEN6(dev_priv)) {
snb_wm_latency_quirk(dev_priv);
+ snb_wm_lp3_irq_quirk(dev_priv);
+ }
}
static void skl_setup_wm_latency(struct drm_i915_private *dev_priv)
From: Michael J. Ruhl <michael.j.ruhl(a)intel.com>
commit a0e0cb82804a6a21d9067022c2dfdf80d11da429 upstream
pq_update() can only be called in two places: from the completion
function when the complete (npkts) sequence of packets has been
submitted and processed, or from setup function if a subset of the
packets were submitted (i.e. the error path).
Currently both paths can call pq_update() if an error occurrs. This
race will cause the n_req value to go negative, hanging file_close(),
or cause a crash by freeing the txlist more than once.
Several variables are used to determine SDMA send state. Most of
these are unnecessary, and have code inspectible races between the
setup function and the completion function, in both the send path and
the error path.
The request 'status' value can be set by the setup or by the
completion function. This is code inspectibly racy. Since the status
is not needed in the completion code or by the caller it has been
removed.
The request 'done' value races between usage by the setup and the
completion function. The completion function does not need this.
When the number of processed packets matches npkts, it is done.
The 'has_error' value races between usage of the setup and the
completion function. This can cause incorrect error handling and leave
the n_req in an incorrect value (i.e. negative).
Simplify the code by removing all of the unneeded state checks and
variables.
Clean up iovs node when it is freed.
Eliminate race conditions in the error path:
If all packets are submitted, the completion handler will set the
completion status correctly (ok or aborted).
If all packets are not submitted, the caller must wait until the
submitted packets have completed, and then set the completion status.
These two change eliminate the race condition in the error path.
Cc: <stable(a)vger.kernel.org> # 4.14.0
Reviewed-by: Mitko Haralanov <mitko.haralanov(a)intel.com>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn(a)intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl(a)intel.com>
---
drivers/infiniband/hw/hfi1/user_sdma.c | 87 ++++++++++++++------------------
drivers/infiniband/hw/hfi1/user_sdma.h | 3 -
2 files changed, 39 insertions(+), 51 deletions(-)
diff --git a/drivers/infiniband/hw/hfi1/user_sdma.c b/drivers/infiniband/hw/hfi1/user_sdma.c
index 8c954a0..c14ec04 100644
--- a/drivers/infiniband/hw/hfi1/user_sdma.c
+++ b/drivers/infiniband/hw/hfi1/user_sdma.c
@@ -328,7 +328,6 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
u8 opcode, sc, vl;
u16 pkey;
u32 slid;
- int req_queued = 0;
u16 dlid;
u32 selector;
@@ -392,7 +391,6 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
req->data_len = 0;
req->pq = pq;
req->cq = cq;
- req->status = -1;
req->ahg_idx = -1;
req->iov_idx = 0;
req->sent = 0;
@@ -400,12 +398,14 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
req->seqcomp = 0;
req->seqsubmitted = 0;
req->tids = NULL;
- req->done = 0;
req->has_error = 0;
INIT_LIST_HEAD(&req->txps);
memcpy(&req->info, &info, sizeof(info));
+ /* The request is initialized, count it */
+ atomic_inc(&pq->n_reqs);
+
if (req_opcode(info.ctrl) == EXPECTED) {
/* expected must have a TID info and at least one data vector */
if (req->data_iovs < 2) {
@@ -500,7 +500,6 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
ret = pin_vector_pages(req, &req->iovs[i]);
if (ret) {
req->data_iovs = i;
- req->status = ret;
goto free_req;
}
req->data_len += req->iovs[i].iov.iov_len;
@@ -561,14 +560,10 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
req->ahg_idx = sdma_ahg_alloc(req->sde);
set_comp_state(pq, cq, info.comp_idx, QUEUED, 0);
- atomic_inc(&pq->n_reqs);
- req_queued = 1;
/* Send the first N packets in the request to buy us some time */
ret = user_sdma_send_pkts(req, pcount);
- if (unlikely(ret < 0 && ret != -EBUSY)) {
- req->status = ret;
+ if (unlikely(ret < 0 && ret != -EBUSY))
goto free_req;
- }
/*
* It is possible that the SDMA engine would have processed all the
@@ -588,14 +583,8 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
while (req->seqsubmitted != req->info.npkts) {
ret = user_sdma_send_pkts(req, pcount);
if (ret < 0) {
- if (ret != -EBUSY) {
- req->status = ret;
- WRITE_ONCE(req->has_error, 1);
- if (ACCESS_ONCE(req->seqcomp) ==
- req->seqsubmitted - 1)
- goto free_req;
- return ret;
- }
+ if (ret != -EBUSY)
+ goto free_req;
wait_event_interruptible_timeout(
pq->busy.wait_dma,
(pq->state == SDMA_PKT_Q_ACTIVE),
@@ -606,10 +595,19 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
*count += idx;
return 0;
free_req:
- user_sdma_free_request(req, true);
- if (req_queued)
+ /*
+ * If the submitted seqsubmitted == npkts, the completion routine
+ * controls the final state. If sequbmitted < npkts, wait for any
+ * outstanding packets to finish before cleaning up.
+ */
+ if (req->seqsubmitted < req->info.npkts) {
+ if (req->seqsubmitted)
+ wait_event(pq->busy.wait_dma,
+ (req->seqcomp == req->seqsubmitted - 1));
+ user_sdma_free_request(req, true);
pq_update(pq);
- set_comp_state(pq, cq, info.comp_idx, ERROR, req->status);
+ set_comp_state(pq, cq, info.comp_idx, ERROR, ret);
+ }
return ret;
}
@@ -917,7 +915,6 @@ static int user_sdma_send_pkts(struct user_sdma_request *req, unsigned maxpkts)
ret = sdma_send_txlist(req->sde, &pq->busy, &req->txps, &count);
req->seqsubmitted += count;
if (req->seqsubmitted == req->info.npkts) {
- WRITE_ONCE(req->done, 1);
/*
* The txreq has already been submitted to the HW queue
* so we can free the AHG entry now. Corruption will not
@@ -1347,11 +1344,15 @@ static int set_txreq_header_ahg(struct user_sdma_request *req,
return diff;
}
-/*
- * SDMA tx request completion callback. Called when the SDMA progress
- * state machine gets notification that the SDMA descriptors for this
- * tx request have been processed by the DMA engine. Called in
- * interrupt context.
+/**
+ * user_sdma_txreq_cb() - SDMA tx request completion callback.
+ * @txreq: valid sdma tx request
+ * @status: success/failure of request
+ *
+ * Called when the SDMA progress state machine gets notification that
+ * the SDMA descriptors for this tx request have been processed by the
+ * DMA engine. Called in interrupt context.
+ * Only do work on completed sequences.
*/
static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
{
@@ -1360,7 +1361,7 @@ static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
struct user_sdma_request *req;
struct hfi1_user_sdma_pkt_q *pq;
struct hfi1_user_sdma_comp_q *cq;
- u16 idx;
+ enum hfi1_sdma_comp_state state = COMPLETE;
if (!tx->req)
return;
@@ -1373,31 +1374,19 @@ static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
SDMA_DBG(req, "SDMA completion with error %d",
status);
WRITE_ONCE(req->has_error, 1);
+ state = ERROR;
}
req->seqcomp = tx->seqnum;
kmem_cache_free(pq->txreq_cache, tx);
- tx = NULL;
-
- idx = req->info.comp_idx;
- if (req->status == -1 && status == SDMA_TXREQ_S_OK) {
- if (req->seqcomp == req->info.npkts - 1) {
- req->status = 0;
- user_sdma_free_request(req, false);
- pq_update(pq);
- set_comp_state(pq, cq, idx, COMPLETE, 0);
- }
- } else {
- if (status != SDMA_TXREQ_S_OK)
- req->status = status;
- if (req->seqcomp == (ACCESS_ONCE(req->seqsubmitted) - 1) &&
- (READ_ONCE(req->done) ||
- READ_ONCE(req->has_error))) {
- user_sdma_free_request(req, false);
- pq_update(pq);
- set_comp_state(pq, cq, idx, ERROR, req->status);
- }
- }
+
+ /* sequence isn't complete? We are done */
+ if (req->seqcomp != req->info.npkts - 1)
+ return;
+
+ user_sdma_free_request(req, false);
+ set_comp_state(pq, cq, req->info.comp_idx, state, status);
+ pq_update(pq);
}
static inline void pq_update(struct hfi1_user_sdma_pkt_q *pq)
@@ -1430,6 +1419,8 @@ static void user_sdma_free_request(struct user_sdma_request *req, bool unpin)
if (!node)
continue;
+ req->iovs[i].node = NULL;
+
if (unpin)
hfi1_mmu_rb_remove(req->pq->handler,
&node->rb);
diff --git a/drivers/infiniband/hw/hfi1/user_sdma.h b/drivers/infiniband/hw/hfi1/user_sdma.h
index 9b8bb56..5af5233 100644
--- a/drivers/infiniband/hw/hfi1/user_sdma.h
+++ b/drivers/infiniband/hw/hfi1/user_sdma.h
@@ -196,8 +196,6 @@ struct user_sdma_request {
/* Writeable fields shared with interrupt */
u64 seqcomp ____cacheline_aligned_in_smp;
u64 seqsubmitted;
- /* status of the last txreq completed */
- int status;
/* Send side fields */
struct list_head txps ____cacheline_aligned_in_smp;
@@ -219,7 +217,6 @@ struct user_sdma_request {
u16 tididx;
/* progress index moving along the iovs array */
u8 iov_idx;
- u8 done;
u8 has_error;
struct user_sdma_iovec iovs[MAX_VECTORS_PER_REQ];
From: Michael J. Ruhl <michael.j.ruhl(a)intel.com>
commit a0e0cb82804a6a21d9067022c2dfdf80d11da429 upstream
pq_update() can only be called in two places: from the completion
function when the complete (npkts) sequence of packets has been
submitted and processed, or from setup function if a subset of the
packets were submitted (i.e. the error path).
Currently both paths can call pq_update() if an error occurrs. This
race will cause the n_req value to go negative, hanging file_close(),
or cause a crash by freeing the txlist more than once.
Several variables are used to determine SDMA send state. Most of
these are unnecessary, and have code inspectible races between the
setup function and the completion function, in both the send path and
the error path.
The request 'status' value can be set by the setup or by the
completion function. This is code inspectibly racy. Since the status
is not needed in the completion code or by the caller it has been
removed.
The request 'done' value races between usage by the setup and the
completion function. The completion function does not need this.
When the number of processed packets matches npkts, it is done.
The 'has_error' value races between usage of the setup and the
completion function. This can cause incorrect error handling and leave
the n_req in an incorrect value (i.e. negative).
Simplify the code by removing all of the unneeded state checks and
variables.
Clean up iovs node when it is freed.
Eliminate race conditions in the error path:
If all packets are submitted, the completion handler will set the
completion status correctly (ok or aborted).
If all packets are not submitted, the caller must wait until the
submitted packets have completed, and then set the completion status.
These two change eliminate the race condition in the error path.
Cc: <stable(a)vger.kernel.org> # 4.9.0
Reviewed-by: Mitko Haralanov <mitko.haralanov(a)intel.com>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn(a)intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl(a)intel.com>
---
drivers/infiniband/hw/hfi1/user_sdma.c | 106 ++++++++++++++------------------
1 file changed, 45 insertions(+), 61 deletions(-)
diff --git a/drivers/infiniband/hw/hfi1/user_sdma.c b/drivers/infiniband/hw/hfi1/user_sdma.c
index 018a415..619475c 100644
--- a/drivers/infiniband/hw/hfi1/user_sdma.c
+++ b/drivers/infiniband/hw/hfi1/user_sdma.c
@@ -148,11 +148,8 @@
#define TXREQ_FLAGS_REQ_LAST_PKT BIT(0)
/* SDMA request flag bits */
-#define SDMA_REQ_FOR_THREAD 1
-#define SDMA_REQ_SEND_DONE 2
-#define SDMA_REQ_HAVE_AHG 3
-#define SDMA_REQ_HAS_ERROR 4
-#define SDMA_REQ_DONE_ERROR 5
+#define SDMA_REQ_HAVE_AHG 1
+#define SDMA_REQ_HAS_ERROR 2
#define SDMA_PKT_Q_INACTIVE BIT(0)
#define SDMA_PKT_Q_ACTIVE BIT(1)
@@ -252,8 +249,6 @@ struct user_sdma_request {
u64 seqsubmitted;
struct list_head txps;
unsigned long flags;
- /* status of the last txreq completed */
- int status;
};
/*
@@ -546,7 +541,6 @@ int hfi1_user_sdma_process_request(struct file *fp, struct iovec *iovec,
struct sdma_req_info info;
struct user_sdma_request *req;
u8 opcode, sc, vl;
- int req_queued = 0;
u16 dlid;
u32 selector;
@@ -611,11 +605,13 @@ int hfi1_user_sdma_process_request(struct file *fp, struct iovec *iovec,
req->data_iovs = req_iovcnt(info.ctrl) - 1; /* subtract header vector */
req->pq = pq;
req->cq = cq;
- req->status = -1;
INIT_LIST_HEAD(&req->txps);
memcpy(&req->info, &info, sizeof(info));
+ /* The request is initialized, count it */
+ atomic_inc(&pq->n_reqs);
+
if (req_opcode(info.ctrl) == EXPECTED) {
/* expected must have a TID info and at least one data vector */
if (req->data_iovs < 2) {
@@ -704,7 +700,7 @@ int hfi1_user_sdma_process_request(struct file *fp, struct iovec *iovec,
memcpy(&req->iovs[i].iov, iovec + idx++, sizeof(struct iovec));
ret = pin_vector_pages(req, &req->iovs[i]);
if (ret) {
- req->status = ret;
+ req->data_iovs = i;
goto free_req;
}
req->data_len += req->iovs[i].iov.iov_len;
@@ -772,14 +768,10 @@ int hfi1_user_sdma_process_request(struct file *fp, struct iovec *iovec,
}
set_comp_state(pq, cq, info.comp_idx, QUEUED, 0);
- atomic_inc(&pq->n_reqs);
- req_queued = 1;
/* Send the first N packets in the request to buy us some time */
ret = user_sdma_send_pkts(req, pcount);
- if (unlikely(ret < 0 && ret != -EBUSY)) {
- req->status = ret;
+ if (unlikely(ret < 0 && ret != -EBUSY))
goto free_req;
- }
/*
* It is possible that the SDMA engine would have processed all the
@@ -796,17 +788,11 @@ int hfi1_user_sdma_process_request(struct file *fp, struct iovec *iovec,
* request have been submitted to the SDMA engine. However, it
* will not wait for send completions.
*/
- while (!test_bit(SDMA_REQ_SEND_DONE, &req->flags)) {
+ while (req->seqsubmitted != req->info.npkts) {
ret = user_sdma_send_pkts(req, pcount);
if (ret < 0) {
- if (ret != -EBUSY) {
- req->status = ret;
- set_bit(SDMA_REQ_DONE_ERROR, &req->flags);
- if (ACCESS_ONCE(req->seqcomp) ==
- req->seqsubmitted - 1)
- goto free_req;
- return ret;
- }
+ if (ret != -EBUSY)
+ goto free_req;
wait_event_interruptible_timeout(
pq->busy.wait_dma,
(pq->state == SDMA_PKT_Q_ACTIVE),
@@ -817,10 +803,19 @@ int hfi1_user_sdma_process_request(struct file *fp, struct iovec *iovec,
*count += idx;
return 0;
free_req:
- user_sdma_free_request(req, true);
- if (req_queued)
+ /*
+ * If the submitted seqsubmitted == npkts, the completion routine
+ * controls the final state. If sequbmitted < npkts, wait for any
+ * outstanding packets to finish before cleaning up.
+ */
+ if (req->seqsubmitted < req->info.npkts) {
+ if (req->seqsubmitted)
+ wait_event(pq->busy.wait_dma,
+ (req->seqcomp == req->seqsubmitted - 1));
+ user_sdma_free_request(req, true);
pq_update(pq);
- set_comp_state(pq, cq, info.comp_idx, ERROR, req->status);
+ set_comp_state(pq, cq, info.comp_idx, ERROR, ret);
+ }
return ret;
}
@@ -903,10 +898,8 @@ static int user_sdma_send_pkts(struct user_sdma_request *req, unsigned maxpkts)
pq = req->pq;
/* If tx completion has reported an error, we are done. */
- if (test_bit(SDMA_REQ_HAS_ERROR, &req->flags)) {
- set_bit(SDMA_REQ_DONE_ERROR, &req->flags);
+ if (test_bit(SDMA_REQ_HAS_ERROR, &req->flags))
return -EFAULT;
- }
/*
* Check if we might have sent the entire request already
@@ -929,10 +922,8 @@ static int user_sdma_send_pkts(struct user_sdma_request *req, unsigned maxpkts)
* with errors. If so, we are not going to process any
* more packets from this request.
*/
- if (test_bit(SDMA_REQ_HAS_ERROR, &req->flags)) {
- set_bit(SDMA_REQ_DONE_ERROR, &req->flags);
+ if (test_bit(SDMA_REQ_HAS_ERROR, &req->flags))
return -EFAULT;
- }
tx = kmem_cache_alloc(pq->txreq_cache, GFP_KERNEL);
if (!tx)
@@ -1090,7 +1081,6 @@ static int user_sdma_send_pkts(struct user_sdma_request *req, unsigned maxpkts)
ret = sdma_send_txlist(req->sde, &pq->busy, &req->txps, &count);
req->seqsubmitted += count;
if (req->seqsubmitted == req->info.npkts) {
- set_bit(SDMA_REQ_SEND_DONE, &req->flags);
/*
* The txreq has already been submitted to the HW queue
* so we can free the AHG entry now. Corruption will not
@@ -1489,11 +1479,15 @@ static int set_txreq_header_ahg(struct user_sdma_request *req,
return diff;
}
-/*
- * SDMA tx request completion callback. Called when the SDMA progress
- * state machine gets notification that the SDMA descriptors for this
- * tx request have been processed by the DMA engine. Called in
- * interrupt context.
+/**
+ * user_sdma_txreq_cb() - SDMA tx request completion callback.
+ * @txreq: valid sdma tx request
+ * @status: success/failure of request
+ *
+ * Called when the SDMA progress state machine gets notification that
+ * the SDMA descriptors for this tx request have been processed by the
+ * DMA engine. Called in interrupt context.
+ * Only do work on completed sequences.
*/
static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
{
@@ -1502,7 +1496,7 @@ static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
struct user_sdma_request *req;
struct hfi1_user_sdma_pkt_q *pq;
struct hfi1_user_sdma_comp_q *cq;
- u16 idx;
+ enum hfi1_sdma_comp_state state = COMPLETE;
if (!tx->req)
return;
@@ -1515,31 +1509,19 @@ static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
SDMA_DBG(req, "SDMA completion with error %d",
status);
set_bit(SDMA_REQ_HAS_ERROR, &req->flags);
+ state = ERROR;
}
req->seqcomp = tx->seqnum;
kmem_cache_free(pq->txreq_cache, tx);
- tx = NULL;
-
- idx = req->info.comp_idx;
- if (req->status == -1 && status == SDMA_TXREQ_S_OK) {
- if (req->seqcomp == req->info.npkts - 1) {
- req->status = 0;
- user_sdma_free_request(req, false);
- pq_update(pq);
- set_comp_state(pq, cq, idx, COMPLETE, 0);
- }
- } else {
- if (status != SDMA_TXREQ_S_OK)
- req->status = status;
- if (req->seqcomp == (ACCESS_ONCE(req->seqsubmitted) - 1) &&
- (test_bit(SDMA_REQ_SEND_DONE, &req->flags) ||
- test_bit(SDMA_REQ_DONE_ERROR, &req->flags))) {
- user_sdma_free_request(req, false);
- pq_update(pq);
- set_comp_state(pq, cq, idx, ERROR, req->status);
- }
- }
+
+ /* sequence isn't complete? We are done */
+ if (req->seqcomp != req->info.npkts - 1)
+ return;
+
+ user_sdma_free_request(req, false);
+ set_comp_state(pq, cq, req->info.comp_idx, state, status);
+ pq_update(pq);
}
static inline void pq_update(struct hfi1_user_sdma_pkt_q *pq)
@@ -1572,6 +1554,8 @@ static void user_sdma_free_request(struct user_sdma_request *req, bool unpin)
if (!node)
continue;
+ req->iovs[i].node = NULL;
+
if (unpin)
hfi1_mmu_rb_remove(req->pq->handler,
&node->rb);
From: Michael J. Ruhl <michael.j.ruhl(a)intel.com>
commit a0e0cb82804a6a21d9067022c2dfdf80d11da429 upstream
pq_update() can only be called in two places: from the completion
function when the complete (npkts) sequence of packets has been
submitted and processed, or from setup function if a subset of the
packets were submitted (i.e. the error path).
Currently both paths can call pq_update() if an error occurrs. This
race will cause the n_req value to go negative, hanging file_close(),
or cause a crash by freeing the txlist more than once.
Several variables are used to determine SDMA send state. Most of
these are unnecessary, and have code inspectible races between the
setup function and the completion function, in both the send path and
the error path.
The request 'status' value can be set by the setup or by the
completion function. This is code inspectibly racy. Since the status
is not needed in the completion code or by the caller it has been
removed.
The request 'done' value races between usage by the setup and the
completion function. The completion function does not need this.
When the number of processed packets matches npkts, it is done.
The 'has_error' value races between usage of the setup and the
completion function. This can cause incorrect error handling and leave
the n_req in an incorrect value (i.e. negative).
Simplify the code by removing all of the unneeded state checks and
variables.
Clean up iovs node when it is freed.
Eliminate race conditions in the error path:
If all packets are submitted, the completion handler will set the
completion status correctly (ok or aborted).
If all packets are not submitted, the caller must wait until the
submitted packets have completed, and then set the completion status.
These two change eliminate the race condition in the error path.
Cc: <stable(a)vger.kernel.org> # 4.18.x+
Reviewed-by: Mitko Haralanov <mitko.haralanov(a)intel.com>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn(a)intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl(a)intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro(a)intel.com>
Signed-off-by: Jason Gunthorpe <jgg(a)mellanox.com>
---
drivers/infiniband/hw/hfi1/user_sdma.c | 87 ++++++++++++++------------------
drivers/infiniband/hw/hfi1/user_sdma.h | 3 -
2 files changed, 39 insertions(+), 51 deletions(-)
diff --git a/drivers/infiniband/hw/hfi1/user_sdma.c b/drivers/infiniband/hw/hfi1/user_sdma.c
index 5c88706..39134dd 100644
--- a/drivers/infiniband/hw/hfi1/user_sdma.c
+++ b/drivers/infiniband/hw/hfi1/user_sdma.c
@@ -328,7 +328,6 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
u8 opcode, sc, vl;
u16 pkey;
u32 slid;
- int req_queued = 0;
u16 dlid;
u32 selector;
@@ -392,7 +391,6 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
req->data_len = 0;
req->pq = pq;
req->cq = cq;
- req->status = -1;
req->ahg_idx = -1;
req->iov_idx = 0;
req->sent = 0;
@@ -400,12 +398,14 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
req->seqcomp = 0;
req->seqsubmitted = 0;
req->tids = NULL;
- req->done = 0;
req->has_error = 0;
INIT_LIST_HEAD(&req->txps);
memcpy(&req->info, &info, sizeof(info));
+ /* The request is initialized, count it */
+ atomic_inc(&pq->n_reqs);
+
if (req_opcode(info.ctrl) == EXPECTED) {
/* expected must have a TID info and at least one data vector */
if (req->data_iovs < 2) {
@@ -500,7 +500,6 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
ret = pin_vector_pages(req, &req->iovs[i]);
if (ret) {
req->data_iovs = i;
- req->status = ret;
goto free_req;
}
req->data_len += req->iovs[i].iov.iov_len;
@@ -561,14 +560,10 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
req->ahg_idx = sdma_ahg_alloc(req->sde);
set_comp_state(pq, cq, info.comp_idx, QUEUED, 0);
- atomic_inc(&pq->n_reqs);
- req_queued = 1;
/* Send the first N packets in the request to buy us some time */
ret = user_sdma_send_pkts(req, pcount);
- if (unlikely(ret < 0 && ret != -EBUSY)) {
- req->status = ret;
+ if (unlikely(ret < 0 && ret != -EBUSY))
goto free_req;
- }
/*
* It is possible that the SDMA engine would have processed all the
@@ -588,14 +583,8 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
while (req->seqsubmitted != req->info.npkts) {
ret = user_sdma_send_pkts(req, pcount);
if (ret < 0) {
- if (ret != -EBUSY) {
- req->status = ret;
- WRITE_ONCE(req->has_error, 1);
- if (READ_ONCE(req->seqcomp) ==
- req->seqsubmitted - 1)
- goto free_req;
- return ret;
- }
+ if (ret != -EBUSY)
+ goto free_req;
wait_event_interruptible_timeout(
pq->busy.wait_dma,
(pq->state == SDMA_PKT_Q_ACTIVE),
@@ -606,10 +595,19 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
*count += idx;
return 0;
free_req:
- user_sdma_free_request(req, true);
- if (req_queued)
+ /*
+ * If the submitted seqsubmitted == npkts, the completion routine
+ * controls the final state. If sequbmitted < npkts, wait for any
+ * outstanding packets to finish before cleaning up.
+ */
+ if (req->seqsubmitted < req->info.npkts) {
+ if (req->seqsubmitted)
+ wait_event(pq->busy.wait_dma,
+ (req->seqcomp == req->seqsubmitted - 1));
+ user_sdma_free_request(req, true);
pq_update(pq);
- set_comp_state(pq, cq, info.comp_idx, ERROR, req->status);
+ set_comp_state(pq, cq, info.comp_idx, ERROR, ret);
+ }
return ret;
}
@@ -917,7 +915,6 @@ static int user_sdma_send_pkts(struct user_sdma_request *req, unsigned maxpkts)
ret = sdma_send_txlist(req->sde, &pq->busy, &req->txps, &count);
req->seqsubmitted += count;
if (req->seqsubmitted == req->info.npkts) {
- WRITE_ONCE(req->done, 1);
/*
* The txreq has already been submitted to the HW queue
* so we can free the AHG entry now. Corruption will not
@@ -1365,11 +1362,15 @@ static int set_txreq_header_ahg(struct user_sdma_request *req,
return idx;
}
-/*
- * SDMA tx request completion callback. Called when the SDMA progress
- * state machine gets notification that the SDMA descriptors for this
- * tx request have been processed by the DMA engine. Called in
- * interrupt context.
+/**
+ * user_sdma_txreq_cb() - SDMA tx request completion callback.
+ * @txreq: valid sdma tx request
+ * @status: success/failure of request
+ *
+ * Called when the SDMA progress state machine gets notification that
+ * the SDMA descriptors for this tx request have been processed by the
+ * DMA engine. Called in interrupt context.
+ * Only do work on completed sequences.
*/
static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
{
@@ -1378,7 +1379,7 @@ static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
struct user_sdma_request *req;
struct hfi1_user_sdma_pkt_q *pq;
struct hfi1_user_sdma_comp_q *cq;
- u16 idx;
+ enum hfi1_sdma_comp_state state = COMPLETE;
if (!tx->req)
return;
@@ -1391,31 +1392,19 @@ static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
SDMA_DBG(req, "SDMA completion with error %d",
status);
WRITE_ONCE(req->has_error, 1);
+ state = ERROR;
}
req->seqcomp = tx->seqnum;
kmem_cache_free(pq->txreq_cache, tx);
- tx = NULL;
-
- idx = req->info.comp_idx;
- if (req->status == -1 && status == SDMA_TXREQ_S_OK) {
- if (req->seqcomp == req->info.npkts - 1) {
- req->status = 0;
- user_sdma_free_request(req, false);
- pq_update(pq);
- set_comp_state(pq, cq, idx, COMPLETE, 0);
- }
- } else {
- if (status != SDMA_TXREQ_S_OK)
- req->status = status;
- if (req->seqcomp == (READ_ONCE(req->seqsubmitted) - 1) &&
- (READ_ONCE(req->done) ||
- READ_ONCE(req->has_error))) {
- user_sdma_free_request(req, false);
- pq_update(pq);
- set_comp_state(pq, cq, idx, ERROR, req->status);
- }
- }
+
+ /* sequence isn't complete? We are done */
+ if (req->seqcomp != req->info.npkts - 1)
+ return;
+
+ user_sdma_free_request(req, false);
+ set_comp_state(pq, cq, req->info.comp_idx, state, status);
+ pq_update(pq);
}
static inline void pq_update(struct hfi1_user_sdma_pkt_q *pq)
@@ -1448,6 +1437,8 @@ static void user_sdma_free_request(struct user_sdma_request *req, bool unpin)
if (!node)
continue;
+ req->iovs[i].node = NULL;
+
if (unpin)
hfi1_mmu_rb_remove(req->pq->handler,
&node->rb);
diff --git a/drivers/infiniband/hw/hfi1/user_sdma.h b/drivers/infiniband/hw/hfi1/user_sdma.h
index d2bc77f..0ae0645 100644
--- a/drivers/infiniband/hw/hfi1/user_sdma.h
+++ b/drivers/infiniband/hw/hfi1/user_sdma.h
@@ -205,8 +205,6 @@ struct user_sdma_request {
/* Writeable fields shared with interrupt */
u64 seqcomp ____cacheline_aligned_in_smp;
u64 seqsubmitted;
- /* status of the last txreq completed */
- int status;
/* Send side fields */
struct list_head txps ____cacheline_aligned_in_smp;
@@ -228,7 +226,6 @@ struct user_sdma_request {
u16 tididx;
/* progress index moving along the iovs array */
u8 iov_idx;
- u8 done;
u8 has_error;
struct user_sdma_iovec iovs[MAX_VECTORS_PER_REQ];
Snip
> > > >
> > > > On Tue, Nov 20, 2018 at 10:03:59AM +0100, Jean Delvare wrote:
> > > > > On Tue, 20 Nov 2018 09:54:19 +0100, Greg KH wrote:
> > > > > > Ok, I'll go revert this, but shouldn't it also be reverted in
> > > > > > Linus's tree as well?
> > > > >
Hi Jean and Greg,
> > > > > No. As I understand it (with my limited knowledge of ACPICA),
> > > > > the change itself is correct. The problem is that it will detect
> > > > > resource conflicts which were unnoticed before, and that will
> > > > > prevent drivers from loading. Some of them may be addressed with
> > > > > driver fixes or new drivers. Others are false positives (due to
> > > > > bogus BIOS) which users will have to work around with
> > > > > acpi_resource_conflicts=lax. We have been through this before,
> > > > > nothing new really, but it takes years to address such problems.
> > > > > This just
> > can't be done in stable kernel series.
> > >
> > > I would like to give you more context.
> > >
> > > There was a fairly complicated change that occurred in 4.17 and we
> > > caused a regression by forgetting to add region addresses in a
> > > global list during operation region initialization. We found the
> > > regression when bug reporters tried to boot their macbook pro and
> > > asus laptop and saw that there was a difference in behavior when
> > > drivers are being loaded
> >
> > Commit 4abb951b73ff0a8a979113ef185651aa3c8da19b has no Fixes tag.
> > Which commit introduced the regression? Can you point me to the
> > associated bug reports?
>
> Sorry about the missing fixed tag. It's supposed to fix
> 5a8361f7ecceaed64b4064000d16cb703462be49
> ACPICA: Integrate package handling with module-level code
>
> >
> > > So what I am trying to say is that we have been emitting these
> > > errors for a while before we caused the regression. The goal with
> > > this patch is to keep the behavior the same as kernels older than
> > > 4.17 where warnings are printed to dmesg due to resource conflicts.
> >
> > Fine with me for upstream, but I still need to be convinced that it
> > belongs to stable series. For now, the only 2 related bugs I know of
> > are
> > #200011 (which is NOT fixed by commit
>
> This bug is kind of messy. It's like 2 bugs in 1 report. This patch fixes a part of
> their problem. Another part has to do with ECDT load order.
>
> Would it help to open a separate bug report for this particular issue and close
> it?
> I think this might be a little confusing to someone who reads the commit
> message.
>
> > 4abb951b73ff0a8a979113ef185651aa3c8da19b) and #201721 (which is
> caused
>
> I did not know about this bug report.
>
> > by that commit). 1 vs 0, revert wins. If you want me to change my
> > mind, you must provide additional data points proving that commit
> > 4abb951b73ff0a8a979113ef185651aa3c8da19b solves more functional
> > regressions than it causes.
Here's an additional data point from the discussion on bz201721.
The user started using fancontrol during the period where resource conflict
checking was unintentionally removed. If the reporter tries using fancontrol
on 4.18.13, they report that fancontrol does not work. So it was basically
always the case that he needed to use acpi_resource_conflicts=lax for a short
period of time.
I understand that this "breaks" this machine but we shouldn't be reverting
resource conflict checking for all other drivers just because of fancontrol. By
removing this check, we are suppressing warnings and changing the loading behavior
of other drivers as well.
Thanks,
Erik
>
> If we do not have include this commit, then we are in a state where resource
> conflicts are not properly detected. These detections help kernels decide
> which drivers to load. However, I do see your point about this breaking the
> reporter's machine and it's possible that I may have missed something.
>
> We should get the reporter's dmesg for older kernels.
>
> It would be ideal to resolve this bug AND add region addresses in the global
> address list.
> I've asked the bug reporter in #201721 for more information. We can delay
> this patch for now and look at the reporter's issue more carefully.
>
> Thanks for all of the information!
>
> Erik
> >
> > Thanks,
> > --
> > Jean Delvare
> > SUSE L3 Support
The patch below does not apply to the 4.14-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 cbffaf7aa09edbaea2bc7dc440c945297095e2fd Mon Sep 17 00:00:00 2001
From: Alexander Stein <alexander.stein(a)systec-electronic.com>
Date: Thu, 11 Oct 2018 17:01:25 +0200
Subject: [PATCH] can: flexcan: Always use last mailbox for TX
Essentially this patch moves the TX mailbox to position 63, regardless
of timestamp based offloading or RX FIFO. So mainly the iflag register
usage regarding TX has changed. The rest is consolidating RX FIFO and
timestamp offloading as they now use both the same TX mailbox.
The reason is a very annoying behavior regarding sending RTR frames when
_not_ using RX FIFO:
If a TX mailbox sent a RTR frame it becomes a RX mailbox. For that
reason flexcan_irq disables the TX mailbox again. But if during the time
the RTR was sent and the TX mailbox is disabled a new CAN frames is
received, it is lost without notice. The reason is that so-called
"Move-in" process starts from the lowest mailbox which happen to be a TX
mailbox set to EMPTY.
Steps to reproduce (I used an imx7d):
1. generate regular bursts of messages
2. send a RTR from flexcan with higher priority than burst messages every
1ms, e.g. cangen -I 0x100 -L 0 -g 1 -R can0
3. notice a lost message without notification after some seconds
When running an iperf in parallel this problem is occurring even more
frequently. Using filters is not possible as at least one single CAN-ID
is allowed. Handling the TX MB during RX is also not possible as there
is no race-free disable of RX MB.
There is still a slight window when the described problem can occur. But
for that all RX MB must be in use which is essentially next to an
overrun. Still there will be no indication if it ever occurs.
Signed-off-by: Alexander Stein <alexander.stein(a)systec-electronic.com>
Cc: linux-stable <stable(a)vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl(a)pengutronix.de>
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index 0431f8d05518..677c41701cf3 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -135,13 +135,12 @@
/* FLEXCAN interrupt flag register (IFLAG) bits */
/* Errata ERR005829 step7: Reserve first valid MB */
-#define FLEXCAN_TX_MB_RESERVED_OFF_FIFO 8
-#define FLEXCAN_TX_MB_OFF_FIFO 9
+#define FLEXCAN_TX_MB_RESERVED_OFF_FIFO 8
#define FLEXCAN_TX_MB_RESERVED_OFF_TIMESTAMP 0
-#define FLEXCAN_TX_MB_OFF_TIMESTAMP 1
-#define FLEXCAN_RX_MB_OFF_TIMESTAMP_FIRST (FLEXCAN_TX_MB_OFF_TIMESTAMP + 1)
-#define FLEXCAN_RX_MB_OFF_TIMESTAMP_LAST 63
-#define FLEXCAN_IFLAG_MB(x) BIT(x)
+#define FLEXCAN_TX_MB 63
+#define FLEXCAN_RX_MB_OFF_TIMESTAMP_FIRST (FLEXCAN_TX_MB_RESERVED_OFF_TIMESTAMP + 1)
+#define FLEXCAN_RX_MB_OFF_TIMESTAMP_LAST (FLEXCAN_TX_MB - 1)
+#define FLEXCAN_IFLAG_MB(x) BIT(x & 0x1f)
#define FLEXCAN_IFLAG_RX_FIFO_OVERFLOW BIT(7)
#define FLEXCAN_IFLAG_RX_FIFO_WARN BIT(6)
#define FLEXCAN_IFLAG_RX_FIFO_AVAILABLE BIT(5)
@@ -737,9 +736,9 @@ static inline u64 flexcan_read_reg_iflag_rx(struct flexcan_priv *priv)
struct flexcan_regs __iomem *regs = priv->regs;
u32 iflag1, iflag2;
- iflag2 = priv->read(®s->iflag2) & priv->reg_imask2_default;
- iflag1 = priv->read(®s->iflag1) & priv->reg_imask1_default &
+ iflag2 = priv->read(®s->iflag2) & priv->reg_imask2_default &
~FLEXCAN_IFLAG_MB(priv->tx_mb_idx);
+ iflag1 = priv->read(®s->iflag1) & priv->reg_imask1_default;
return (u64)iflag2 << 32 | iflag1;
}
@@ -751,11 +750,9 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
struct flexcan_priv *priv = netdev_priv(dev);
struct flexcan_regs __iomem *regs = priv->regs;
irqreturn_t handled = IRQ_NONE;
- u32 reg_iflag1, reg_esr;
+ u32 reg_iflag2, reg_esr;
enum can_state last_state = priv->can.state;
- reg_iflag1 = priv->read(®s->iflag1);
-
/* reception interrupt */
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
u64 reg_iflag;
@@ -769,6 +766,9 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
break;
}
} else {
+ u32 reg_iflag1;
+
+ reg_iflag1 = priv->read(®s->iflag1);
if (reg_iflag1 & FLEXCAN_IFLAG_RX_FIFO_AVAILABLE) {
handled = IRQ_HANDLED;
can_rx_offload_irq_offload_fifo(&priv->offload);
@@ -784,8 +784,10 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
}
}
+ reg_iflag2 = priv->read(®s->iflag2);
+
/* transmission complete interrupt */
- if (reg_iflag1 & FLEXCAN_IFLAG_MB(priv->tx_mb_idx)) {
+ if (reg_iflag2 & FLEXCAN_IFLAG_MB(priv->tx_mb_idx)) {
handled = IRQ_HANDLED;
stats->tx_bytes += can_get_echo_skb(dev, 0);
stats->tx_packets++;
@@ -794,7 +796,7 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
/* after sending a RTR frame MB is in RX mode */
priv->write(FLEXCAN_MB_CODE_TX_INACTIVE,
&priv->tx_mb->can_ctrl);
- priv->write(FLEXCAN_IFLAG_MB(priv->tx_mb_idx), ®s->iflag1);
+ priv->write(FLEXCAN_IFLAG_MB(priv->tx_mb_idx), ®s->iflag2);
netif_wake_queue(dev);
}
@@ -936,15 +938,13 @@ static int flexcan_chip_start(struct net_device *dev)
reg_mcr &= ~FLEXCAN_MCR_MAXMB(0xff);
reg_mcr |= FLEXCAN_MCR_FRZ | FLEXCAN_MCR_HALT | FLEXCAN_MCR_SUPV |
FLEXCAN_MCR_WRN_EN | FLEXCAN_MCR_SRX_DIS | FLEXCAN_MCR_IRMQ |
- FLEXCAN_MCR_IDAM_C;
+ FLEXCAN_MCR_IDAM_C | FLEXCAN_MCR_MAXMB(priv->tx_mb_idx);
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
+ if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP)
reg_mcr &= ~FLEXCAN_MCR_FEN;
- reg_mcr |= FLEXCAN_MCR_MAXMB(priv->offload.mb_last);
- } else {
- reg_mcr |= FLEXCAN_MCR_FEN |
- FLEXCAN_MCR_MAXMB(priv->tx_mb_idx);
- }
+ else
+ reg_mcr |= FLEXCAN_MCR_FEN;
+
netdev_dbg(dev, "%s: writing mcr=0x%08x", __func__, reg_mcr);
priv->write(reg_mcr, ®s->mcr);
@@ -987,16 +987,17 @@ static int flexcan_chip_start(struct net_device *dev)
priv->write(reg_ctrl2, ®s->ctrl2);
}
- /* clear and invalidate all mailboxes first */
- for (i = priv->tx_mb_idx; i < ARRAY_SIZE(regs->mb); i++) {
- priv->write(FLEXCAN_MB_CODE_RX_INACTIVE,
- ®s->mb[i].can_ctrl);
- }
-
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
- for (i = priv->offload.mb_first; i <= priv->offload.mb_last; i++)
+ for (i = priv->offload.mb_first; i <= priv->offload.mb_last; i++) {
priv->write(FLEXCAN_MB_CODE_RX_EMPTY,
®s->mb[i].can_ctrl);
+ }
+ } else {
+ /* clear and invalidate unused mailboxes first */
+ for (i = FLEXCAN_TX_MB_RESERVED_OFF_FIFO; i <= ARRAY_SIZE(regs->mb); i++) {
+ priv->write(FLEXCAN_MB_CODE_RX_INACTIVE,
+ ®s->mb[i].can_ctrl);
+ }
}
/* Errata ERR005829: mark first TX mailbox as INACTIVE */
@@ -1360,17 +1361,15 @@ static int flexcan_probe(struct platform_device *pdev)
priv->devtype_data = devtype_data;
priv->reg_xceiver = reg_xceiver;
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
- priv->tx_mb_idx = FLEXCAN_TX_MB_OFF_TIMESTAMP;
+ if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP)
priv->tx_mb_reserved = ®s->mb[FLEXCAN_TX_MB_RESERVED_OFF_TIMESTAMP];
- } else {
- priv->tx_mb_idx = FLEXCAN_TX_MB_OFF_FIFO;
+ else
priv->tx_mb_reserved = ®s->mb[FLEXCAN_TX_MB_RESERVED_OFF_FIFO];
- }
+ priv->tx_mb_idx = FLEXCAN_TX_MB;
priv->tx_mb = ®s->mb[priv->tx_mb_idx];
- priv->reg_imask1_default = FLEXCAN_IFLAG_MB(priv->tx_mb_idx);
- priv->reg_imask2_default = 0;
+ priv->reg_imask1_default = 0;
+ priv->reg_imask2_default = FLEXCAN_IFLAG_MB(priv->tx_mb_idx);
priv->offload.mailbox_read = flexcan_mailbox_read;
The patch below does not apply to the 4.19-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 e01ad46d53b59720c6ae69963ee1756506954c85 Mon Sep 17 00:00:00 2001
From: Jianchao Wang <jianchao.w.wang(a)oracle.com>
Date: Fri, 12 Oct 2018 18:07:28 +0800
Subject: [PATCH] blk-mq: fallback to previous nr_hw_queues when updating fails
When we try to increate the nr_hw_queues, we may fail due to
shortage of memory or other reason, then blk_mq_realloc_hw_ctxs stops
and some entries in q->queue_hw_ctx are left with NULL. However,
because queue map has been updated with new nr_hw_queues, some cpus
have been mapped to hw queue which just encounters allocation failure,
thus blk_mq_map_queue could return NULL. This will cause panic in
following blk_mq_map_swqueue.
To fix it, when increase nr_hw_queues fails, fallback to previous
nr_hw_queues and post warning. At the same time, driver's .map_queues
usually use completion irq affinity to map hw and cpu, fallback
nr_hw_queues will cause lack of some cpu's map to hw, so use default
blk_mq_map_queues to do that.
Reported-by: syzbot+83e8cbe702263932d9d4(a)syzkaller.appspotmail.com
Signed-off-by: Jianchao Wang <jianchao.w.wang(a)oracle.com>
Signed-off-by: Jens Axboe <axboe(a)kernel.dk>
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 941f51380077..c2ecd64a2403 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -2557,7 +2557,7 @@ static struct blk_mq_hw_ctx *blk_mq_alloc_and_init_hctx(
static void blk_mq_realloc_hw_ctxs(struct blk_mq_tag_set *set,
struct request_queue *q)
{
- int i, j;
+ int i, j, end;
struct blk_mq_hw_ctx **hctxs = q->queue_hw_ctx;
/* protect against switching io scheduler */
@@ -2591,8 +2591,20 @@ static void blk_mq_realloc_hw_ctxs(struct blk_mq_tag_set *set,
break;
}
}
+ /*
+ * Increasing nr_hw_queues fails. Free the newly allocated
+ * hctxs and keep the previous q->nr_hw_queues.
+ */
+ if (i != set->nr_hw_queues) {
+ j = q->nr_hw_queues;
+ end = i;
+ } else {
+ j = i;
+ end = q->nr_hw_queues;
+ q->nr_hw_queues = set->nr_hw_queues;
+ }
- for (j = i; j < q->nr_hw_queues; j++) {
+ for (; j < end; j++) {
struct blk_mq_hw_ctx *hctx = hctxs[j];
if (hctx) {
@@ -2604,7 +2616,6 @@ static void blk_mq_realloc_hw_ctxs(struct blk_mq_tag_set *set,
}
}
- q->nr_hw_queues = i;
mutex_unlock(&q->sysfs_lock);
}
@@ -2989,6 +3000,7 @@ static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set,
{
struct request_queue *q;
LIST_HEAD(head);
+ int prev_nr_hw_queues;
lockdep_assert_held(&set->tag_list_lock);
@@ -3017,10 +3029,19 @@ static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set,
blk_mq_sysfs_unregister(q);
}
+ prev_nr_hw_queues = set->nr_hw_queues;
set->nr_hw_queues = nr_hw_queues;
blk_mq_update_queue_map(set);
+fallback:
list_for_each_entry(q, &set->tag_list, tag_set_list) {
blk_mq_realloc_hw_ctxs(set, q);
+ if (q->nr_hw_queues != set->nr_hw_queues) {
+ pr_warn("Increasing nr_hw_queues to %d fails, fallback to %d\n",
+ nr_hw_queues, prev_nr_hw_queues);
+ set->nr_hw_queues = prev_nr_hw_queues;
+ blk_mq_map_queues(set);
+ goto fallback;
+ }
blk_mq_map_swqueue(q);
}
The patch below does not apply to the 4.14-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 2f31a67f01a8beb22cae754c53522cb61a005750 Mon Sep 17 00:00:00 2001
From: Mathias Nyman <mathias.nyman(a)linux.intel.com>
Date: Thu, 15 Nov 2018 11:38:41 +0200
Subject: [PATCH] usb: xhci: Prevent bus suspend if a port connect change or
polling state is detected
USB3 roothub might autosuspend before a plugged USB3 device is detected,
causing USB3 device enumeration failure.
USB3 devices don't show up as connected and enabled until USB3 link trainig
completes. On a fast booting platform with a slow USB3 link training the
link might reach the connected enabled state just as the bus is suspending.
If this device is discovered first time by the xhci_bus_suspend() routine
it will be put to U3 suspended state like the other ports which failed to
suspend earlier.
The hub thread will notice the connect change and resume the bus,
moving the port back to U0
This U0 -> U3 -> U0 transition right after being connected seems to be
too much for some devices, causing them to first go to SS.Inactive state,
and finally end up stuck in a polling state with reset asserted
Fix this by failing the bus suspend if a port has a connect change or is
in a polling state in xhci_bus_suspend().
Don't do any port changes until all ports are checked, buffer all port
changes and only write them in the end if suspend can proceed
Cc: stable(a)vger.kernel.org
Signed-off-by: Mathias Nyman <mathias.nyman(a)linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index da98a11244e2..94aca1b5ac8a 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -1474,15 +1474,18 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
unsigned long flags;
struct xhci_hub *rhub;
struct xhci_port **ports;
+ u32 portsc_buf[USB_MAXCHILDREN];
+ bool wake_enabled;
rhub = xhci_get_rhub(hcd);
ports = rhub->ports;
max_ports = rhub->num_ports;
bus_state = &xhci->bus_state[hcd_index(hcd)];
+ wake_enabled = hcd->self.root_hub->do_remote_wakeup;
spin_lock_irqsave(&xhci->lock, flags);
- if (hcd->self.root_hub->do_remote_wakeup) {
+ if (wake_enabled) {
if (bus_state->resuming_ports || /* USB2 */
bus_state->port_remote_wakeup) { /* USB3 */
spin_unlock_irqrestore(&xhci->lock, flags);
@@ -1490,26 +1493,36 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
return -EBUSY;
}
}
-
- port_index = max_ports;
+ /*
+ * Prepare ports for suspend, but don't write anything before all ports
+ * are checked and we know bus suspend can proceed
+ */
bus_state->bus_suspended = 0;
+ port_index = max_ports;
while (port_index--) {
- /* suspend the port if the port is not suspended */
u32 t1, t2;
- int slot_id;
t1 = readl(ports[port_index]->addr);
t2 = xhci_port_state_to_neutral(t1);
+ portsc_buf[port_index] = 0;
- if ((t1 & PORT_PE) && !(t1 & PORT_PLS_MASK)) {
- xhci_dbg(xhci, "port %d not suspended\n", port_index);
- slot_id = xhci_find_slot_id_by_port(hcd, xhci,
- port_index + 1);
- if (slot_id) {
+ /* Bail out if a USB3 port has a new device in link training */
+ if ((t1 & PORT_PLS_MASK) == XDEV_POLLING) {
+ bus_state->bus_suspended = 0;
+ spin_unlock_irqrestore(&xhci->lock, flags);
+ xhci_dbg(xhci, "Bus suspend bailout, port in polling\n");
+ return -EBUSY;
+ }
+
+ /* suspend ports in U0, or bail out for new connect changes */
+ if ((t1 & PORT_PE) && (t1 & PORT_PLS_MASK) == XDEV_U0) {
+ if ((t1 & PORT_CSC) && wake_enabled) {
+ bus_state->bus_suspended = 0;
spin_unlock_irqrestore(&xhci->lock, flags);
- xhci_stop_device(xhci, slot_id, 1);
- spin_lock_irqsave(&xhci->lock, flags);
+ xhci_dbg(xhci, "Bus suspend bailout, port connect change\n");
+ return -EBUSY;
}
+ xhci_dbg(xhci, "port %d not suspended\n", port_index);
t2 &= ~PORT_PLS_MASK;
t2 |= PORT_LINK_STROBE | XDEV_U3;
set_bit(port_index, &bus_state->bus_suspended);
@@ -1518,7 +1531,7 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
* including the USB 3.0 roothub, but only if CONFIG_PM
* is enabled, so also enable remote wake here.
*/
- if (hcd->self.root_hub->do_remote_wakeup) {
+ if (wake_enabled) {
if (t1 & PORT_CONNECT) {
t2 |= PORT_WKOC_E | PORT_WKDISC_E;
t2 &= ~PORT_WKCONN_E;
@@ -1538,7 +1551,26 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
t1 = xhci_port_state_to_neutral(t1);
if (t1 != t2)
- writel(t2, ports[port_index]->addr);
+ portsc_buf[port_index] = t2;
+ }
+
+ /* write port settings, stopping and suspending ports if needed */
+ port_index = max_ports;
+ while (port_index--) {
+ if (!portsc_buf[port_index])
+ continue;
+ if (test_bit(port_index, &bus_state->bus_suspended)) {
+ int slot_id;
+
+ slot_id = xhci_find_slot_id_by_port(hcd, xhci,
+ port_index + 1);
+ if (slot_id) {
+ spin_unlock_irqrestore(&xhci->lock, flags);
+ xhci_stop_device(xhci, slot_id, 1);
+ spin_lock_irqsave(&xhci->lock, flags);
+ }
+ }
+ writel(portsc_buf[port_index], ports[port_index]->addr);
}
hcd->state = HC_STATE_SUSPENDED;
bus_state->next_statechange = jiffies + msecs_to_jiffies(10);
The patch below does not apply to the 4.14-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 11644a7659529730eaf2f166efaabe7c3dc7af8c Mon Sep 17 00:00:00 2001
From: "Cherian, George" <George.Cherian(a)cavium.com>
Date: Fri, 9 Nov 2018 17:21:22 +0200
Subject: [PATCH] xhci: Add quirk to workaround the errata seen on Cavium
Thunder-X2 Soc
Implement workaround for ThunderX2 Errata-129 (documented in
CN99XX Known Issues" available at Cavium support site).
As per ThunderX2errata-129, USB 2 device may come up as USB 1
if a connection to a USB 1 device is followed by another connection to
a USB 2 device, the link will come up as USB 1 for the USB 2 device.
Resolution: Reset the PHY after the USB 1 device is disconnected.
The PHY reset sequence is done using private registers in XHCI register
space. After the PHY is reset we check for the PLL lock status and retry
the operation if it fails. From our tests, retrying 4 times is sufficient.
Add a new quirk flag XHCI_RESET_PLL_ON_DISCONNECT to invoke the workaround
in handle_xhci_port_status().
Cc: stable(a)vger.kernel.org
Signed-off-by: George Cherian <george.cherian(a)cavium.com>
Signed-off-by: Mathias Nyman <mathias.nyman(a)linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 1fb448cd2667..a9515265db4d 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -248,6 +248,11 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
if (pdev->vendor == PCI_VENDOR_ID_TI && pdev->device == 0x8241)
xhci->quirks |= XHCI_LIMIT_ENDPOINT_INTERVAL_7;
+ if ((pdev->vendor == PCI_VENDOR_ID_BROADCOM ||
+ pdev->vendor == PCI_VENDOR_ID_CAVIUM) &&
+ pdev->device == 0x9026)
+ xhci->quirks |= XHCI_RESET_PLL_ON_DISCONNECT;
+
if (xhci->quirks & XHCI_RESET_ON_RESUME)
xhci_dbg_trace(xhci, trace_xhci_dbg_quirks,
"QUIRK: Resetting on resume");
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 250b758efe9f..65750582133f 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -1521,6 +1521,35 @@ static void handle_device_notification(struct xhci_hcd *xhci,
usb_wakeup_notification(udev->parent, udev->portnum);
}
+/*
+ * Quirk hanlder for errata seen on Cavium ThunderX2 processor XHCI
+ * Controller.
+ * As per ThunderX2errata-129 USB 2 device may come up as USB 1
+ * If a connection to a USB 1 device is followed by another connection
+ * to a USB 2 device.
+ *
+ * Reset the PHY after the USB device is disconnected if device speed
+ * is less than HCD_USB3.
+ * Retry the reset sequence max of 4 times checking the PLL lock status.
+ *
+ */
+static void xhci_cavium_reset_phy_quirk(struct xhci_hcd *xhci)
+{
+ struct usb_hcd *hcd = xhci_to_hcd(xhci);
+ u32 pll_lock_check;
+ u32 retry_count = 4;
+
+ do {
+ /* Assert PHY reset */
+ writel(0x6F, hcd->regs + 0x1048);
+ udelay(10);
+ /* De-assert the PHY reset */
+ writel(0x7F, hcd->regs + 0x1048);
+ udelay(200);
+ pll_lock_check = readl(hcd->regs + 0x1070);
+ } while (!(pll_lock_check & 0x1) && --retry_count);
+}
+
static void handle_port_status(struct xhci_hcd *xhci,
union xhci_trb *event)
{
@@ -1654,8 +1683,12 @@ static void handle_port_status(struct xhci_hcd *xhci,
goto cleanup;
}
- if (hcd->speed < HCD_USB3)
+ if (hcd->speed < HCD_USB3) {
xhci_test_and_clear_bit(xhci, port, PORT_PLC);
+ if ((xhci->quirks & XHCI_RESET_PLL_ON_DISCONNECT) &&
+ (portsc & PORT_CSC) && !(portsc & PORT_CONNECT))
+ xhci_cavium_reset_phy_quirk(xhci);
+ }
cleanup:
/* Update event ring dequeue pointer before dropping the lock */
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 5f0c4f197f13..260b259b72bc 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1849,6 +1849,7 @@ struct xhci_hcd {
#define XHCI_INTEL_USB_ROLE_SW BIT_ULL(31)
#define XHCI_ZERO_64B_REGS BIT_ULL(32)
#define XHCI_DEFAULT_PM_RUNTIME_ALLOW BIT_ULL(33)
+#define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
unsigned int num_active_eps;
unsigned int limit_active_eps;
The patch below does not apply to the 4.14-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 958c0bd86075d4ef1c936998deefe1947e539240 Mon Sep 17 00:00:00 2001
From: Aaron Ma <aaron.ma(a)canonical.com>
Date: Fri, 9 Nov 2018 17:21:20 +0200
Subject: [PATCH] usb: xhci: fix uninitialized completion when USB3 port got
wrong status
Realtek USB3.0 Card Reader [0bda:0328] reports wrong port status on
Cannon lake PCH USB3.1 xHCI [8086:a36d] after resume from S3,
after clear port reset it works fine.
Since this device is registered on USB3 roothub at boot,
when port status reports not superspeed, xhci_get_port_status will call
an uninitialized completion in bus_state[0].
Kernel will hang because of NULL pointer.
Restrict the USB2 resume status check in USB2 roothub to fix hang issue.
Cc: stable(a)vger.kernel.org
Signed-off-by: Aaron Ma <aaron.ma(a)canonical.com>
Signed-off-by: Mathias Nyman <mathias.nyman(a)linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index 12eea73d9f20..60e4ac7ae4f8 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -876,7 +876,7 @@ static u32 xhci_get_port_status(struct usb_hcd *hcd,
status |= USB_PORT_STAT_SUSPEND;
}
if ((raw_port_status & PORT_PLS_MASK) == XDEV_RESUME &&
- !DEV_SUPERSPEED_ANY(raw_port_status)) {
+ !DEV_SUPERSPEED_ANY(raw_port_status) && hcd->speed < HCD_USB3) {
if ((raw_port_status & PORT_RESET) ||
!(raw_port_status & PORT_PE))
return 0xffffffff;
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 730a6ecd85fc..250b758efe9f 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -1646,7 +1646,7 @@ static void handle_port_status(struct xhci_hcd *xhci,
* RExit to a disconnect state). If so, let the the driver know it's
* out of the RExit state.
*/
- if (!DEV_SUPERSPEED_ANY(portsc) &&
+ if (!DEV_SUPERSPEED_ANY(portsc) && hcd->speed < HCD_USB3 &&
test_and_clear_bit(hcd_portnum,
&bus_state->rexit_ports)) {
complete(&bus_state->rexit_done[hcd_portnum]);
Greg,
Please see the attached mbox of 5 patches. The first required a slight
backport as noted in the commit message, but the others applied
cleanly. Here's a build+boot of them in clang:
https://travis-ci.com/ClangBuiltLinux/continuous-integration/builds/92778054
(obviously we need to backport warning cleanups, but this set gets it
booting at least)
--
Thanks,
~Nick Desaulniers
From: Alistair Strachan <astrachan(a)google.com>
(commit 41f1c48420709470c51ee0e54b6fb28b956bb4e0 upstream)
When building with CONFIG_EFI and CONFIG_EFI_STUB on ARM, the libstub
Makefile would use -mno-single-pic-base without checking it was
supported by the compiler. As the ARM (32-bit) clang backend does not
support this flag, the build would fail.
This changes the Makefile to check the compiler's support for
-mno-single-pic-base before using it, similar to c1c386681bd7 ("ARM:
8767/1: add support for building ARM kernel with clang").
Signed-off-by: Alistair Strachan <astrachan(a)google.com>
Reviewed-by: Stefan Agner <stefan(a)agner.ch>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel(a)linaro.org>
Signed-off-by: Nick Desaulniers <ndesaulniers(a)google.com>
---
Please land in 4.19, 4.18. I'm preparing backports for 4.9 and 4.4 I
will send today or tomorrow. This is for building the Linux kernel for
arm32 with Clang.
drivers/firmware/efi/libstub/Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile
index 14c40a7750d1..c51627660dbb 100644
--- a/drivers/firmware/efi/libstub/Makefile
+++ b/drivers/firmware/efi/libstub/Makefile
@@ -16,7 +16,8 @@ cflags-$(CONFIG_X86) += -m$(BITS) -D__KERNEL__ -O2 \
cflags-$(CONFIG_ARM64) := $(subst -pg,,$(KBUILD_CFLAGS)) -fpie \
$(DISABLE_STACKLEAK_PLUGIN)
cflags-$(CONFIG_ARM) := $(subst -pg,,$(KBUILD_CFLAGS)) \
- -fno-builtin -fpic -mno-single-pic-base
+ -fno-builtin -fpic \
+ $(call cc-option,-mno-single-pic-base)
cflags-$(CONFIG_EFI_ARMSTUB) += -I$(srctree)/scripts/dtc/libfdt
--
2.20.0.rc0.387.gc7a69e6b6c-goog
The generic/513 tell that cloning into a file did not strip security
privileges (suid, capabilities) like a regular write would.
Signed-off-by: Lu Fengqi <lufq.fnst(a)cn.fujitsu.com>
---
The xfs and ocfs2 call generic_remap_file_range_prep to drop file
privileges, I'm not sure whether btrfs should do the same thing.
Any suggestion?
fs/btrfs/ioctl.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 410c7e007ba8..bc33c480603b 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -4312,6 +4312,10 @@ static noinline int btrfs_clone_files(struct file *file, struct file *file_src,
goto out_unlock;
}
+ ret = file_remove_privs(file);
+ if (ret)
+ goto out_unlock;
+
if (destoff > inode->i_size) {
ret = btrfs_cont_expand(inode, inode->i_size, destoff);
if (ret)
--
2.19.2
Hello,
We ran automated tests on a recent commit from this kernel tree:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Commit: b32d16ec9956 Linux 4.19.5
The results of these automated tests are provided below.
Overall result: PASSED
Patch merge: OK
Compile: OK
Kernel tests: OK
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Compile testing
---------------
We compiled the kernel for 2 architectures:
aarch64:
make options: make INSTALL_MOD_STRIP=1 -j56 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/b32d16ec995683be888520d12d…
x86_64:
make options: make INSTALL_MOD_STRIP=1 -j56 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/b32d16ec995683be888520d12d8…
Hardware testing
----------------
We booted each kernel and ran the following tests:
arm64:
/distribution/kpkginstall (boot test)
LTP lite - release 20180515
xfstests: ext4
xfstests: xfs
/kernel/misc/amtu
x86_64:
/distribution/kpkginstall (boot test)
LTP lite - release 20180515
xfstests: ext4
xfstests: xfs
/kernel/misc/amtu
Right now, only way for task->thread_info->syscall to be updated is if
if _TIF_SYSCALL_WORK is set in current's task thread_info->flags
(similar to what has_syscall_work() checks for arm64).
This means that "->syscall" will only be updated if we are tracing the
syscalls through ptrace, for example. This is NOT the same behavior as
arm64, when pt_regs->syscallno is updated in the beginning of svc0
handler for *every* syscall entry.
This patch fixes the issue since this behavior is needed for
/proc/<pid>/syscall 1st argument to be correctly updated.
Link: https://bugs.linaro.org/show_bug.cgi?id=3783
Cc: <stable(a)vger.kernel.org> # v4.4 v4.9 v4.14 v4.19
Signed-off-by: Rafael David Tinoco <rafael.tinoco(a)linaro.org>
---
arch/arm/kernel/asm-offsets.c | 1 +
arch/arm/kernel/entry-common.S | 2 ++
2 files changed, 3 insertions(+)
diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c
index 3968d6c22455..bfe68a98e1c6 100644
--- a/arch/arm/kernel/asm-offsets.c
+++ b/arch/arm/kernel/asm-offsets.c
@@ -64,6 +64,7 @@ int main(void)
DEFINE(TI_USED_CP, offsetof(struct thread_info, used_cp));
DEFINE(TI_TP_VALUE, offsetof(struct thread_info, tp_value));
DEFINE(TI_FPSTATE, offsetof(struct thread_info, fpstate));
+ DEFINE(TI_SYSCALL, offsetof(struct thread_info, syscall));
#ifdef CONFIG_VFP
DEFINE(TI_VFPSTATE, offsetof(struct thread_info, vfpstate));
#ifdef CONFIG_SMP
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index 0465d65d23de..557e2add4e83 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -257,6 +257,8 @@ local_restart:
tst r10, #_TIF_SYSCALL_WORK @ are we tracing syscalls?
bne __sys_trace
+ str r7, [tsk, #TI_SYSCALL] @ update thread_info->syscall
+
invoke_syscall tbl, scno, r10, __ret_fast_syscall
add r1, sp, #S_OFF
--
2.20.0.rc1
stable-rc/linux-3.18.y build: 185 builds: 2 failed, 183 passed, 4 errors, 1621 warnings (v3.18.127)
Full Build Summary: https://kernelci.org/build/stable-rc/branch/linux-3.18.y/kernel/v3.18.127/
Tree: stable-rc
Branch: linux-3.18.y
Git Describe: v3.18.127
Git Commit: 376f405256923b1d1ab14cb2970a25e11b074198
Git URL: http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Built: 5 unique architectures
Build Failures Detected:
arc: gcc version 7.1.1 20170710 (ARCv2 ISA Linux uClibc toolchain 2017.09)
allnoconfig: FAIL
tinyconfig: FAIL
Errors and Warnings Detected:
arc: gcc version 7.1.1 20170710 (ARCv2 ISA Linux uClibc toolchain 2017.09)
allnoconfig: 2 errors, 666 warnings
tinyconfig: 2 errors, 664 warnings
arm64: gcc version 7.3.0 (Debian 7.3.0-28)
allnoconfig: 2 warnings
defconfig: 2 warnings
tinyconfig: 2 warnings
arm: gcc version 7.3.0 (Debian 7.3.0-28)
acs5k_defconfig: 2 warnings
acs5k_tiny_defconfig: 2 warnings
allnoconfig: 2 warnings
am200epdkit_defconfig: 2 warnings
ape6evm_defconfig: 2 warnings
armadillo800eva_defconfig: 2 warnings
assabet_defconfig: 2 warnings
at91_dt_defconfig: 2 warnings
at91rm9200_defconfig: 2 warnings
at91sam9260_9g20_defconfig: 2 warnings
at91sam9261_9g10_defconfig: 2 warnings
at91sam9263_defconfig: 2 warnings
at91sam9g45_defconfig: 2 warnings
at91sam9rl_defconfig: 2 warnings
at91x40_defconfig: 2 warnings
axm55xx_defconfig: 2 warnings
badge4_defconfig: 2 warnings
bcm2835_defconfig: 2 warnings
bcm_defconfig: 2 warnings
bockw_defconfig: 2 warnings
cerfcube_defconfig: 2 warnings
clps711x_defconfig: 2 warnings
cm_x2xx_defconfig: 2 warnings
cm_x300_defconfig: 2 warnings
cns3420vb_defconfig: 2 warnings
colibri_pxa270_defconfig: 2 warnings
colibri_pxa300_defconfig: 2 warnings
collie_defconfig: 2 warnings
corgi_defconfig: 2 warnings
davinci_all_defconfig: 2 warnings
dove_defconfig: 2 warnings
ebsa110_defconfig: 2 warnings
efm32_defconfig: 2 warnings
em_x270_defconfig: 2 warnings
ep93xx_defconfig: 2 warnings
eseries_pxa_defconfig: 2 warnings
exynos_defconfig: 2 warnings
ezx_defconfig: 2 warnings
footbridge_defconfig: 2 warnings
h3600_defconfig: 2 warnings
h5000_defconfig: 2 warnings
hackkit_defconfig: 2 warnings
hisi_defconfig: 2 warnings
imote2_defconfig: 2 warnings
imx_v4_v5_defconfig: 2 warnings
imx_v6_v7_defconfig: 2 warnings
integrator_defconfig: 2 warnings
iop13xx_defconfig: 2 warnings
iop32x_defconfig: 2 warnings
iop33x_defconfig: 2 warnings
ixp4xx_defconfig: 2 warnings
jornada720_defconfig: 2 warnings
keystone_defconfig: 2 warnings
koelsch_defconfig: 2 warnings
ks8695_defconfig: 2 warnings
kzm9g_defconfig: 2 warnings
lager_defconfig: 2 warnings
lart_defconfig: 2 warnings
lpc32xx_defconfig: 2 warnings
lpd270_defconfig: 2 warnings
lubbock_defconfig: 2 warnings
mackerel_defconfig: 2 warnings
magician_defconfig: 2 warnings
mainstone_defconfig: 2 warnings
marzen_defconfig: 2 warnings
mini2440_defconfig: 2 warnings
mmp2_defconfig: 2 warnings
moxart_defconfig: 2 warnings
msm_defconfig: 2 warnings
multi_v5_defconfig: 2 warnings
multi_v7_defconfig: 2 warnings
mv78xx0_defconfig: 2 warnings
mvebu_v5_defconfig: 2 warnings
mvebu_v7_defconfig: 2 warnings
mxs_defconfig: 2 warnings
neponset_defconfig: 2 warnings
netwinder_defconfig: 2 warnings
netx_defconfig: 2 warnings
nhk8815_defconfig: 2 warnings
nuc910_defconfig: 2 warnings
nuc950_defconfig: 2 warnings
nuc960_defconfig: 2 warnings
omap1_defconfig: 2 warnings
omap2plus_defconfig: 2 warnings
orion5x_defconfig: 2 warnings
palmz72_defconfig: 2 warnings
pcm027_defconfig: 2 warnings
pleb_defconfig: 2 warnings
prima2_defconfig: 2 warnings
pxa168_defconfig: 2 warnings
pxa255-idp_defconfig: 2 warnings
pxa3xx_defconfig: 2 warnings
pxa910_defconfig: 2 warnings
qcom_defconfig: 2 warnings
raumfeld_defconfig: 2 warnings
realview-smp_defconfig: 2 warnings
realview_defconfig: 2 warnings
rpc_defconfig: 2 warnings
s3c2410_defconfig: 2 warnings
s3c6400_defconfig: 2 warnings
s5pv210_defconfig: 2 warnings
sama5_defconfig: 2 warnings
shannon_defconfig: 2 warnings
shmobile_defconfig: 2 warnings
simpad_defconfig: 2 warnings
socfpga_defconfig: 2 warnings
spear13xx_defconfig: 2 warnings
spear3xx_defconfig: 2 warnings
spear6xx_defconfig: 2 warnings
spitz_defconfig: 2 warnings
sunxi_defconfig: 2 warnings
tct_hammer_defconfig: 2 warnings
tegra_defconfig: 2 warnings
tinyconfig: 2 warnings
trizeps4_defconfig: 2 warnings
u300_defconfig: 2 warnings
u8500_defconfig: 2 warnings
versatile_defconfig: 2 warnings
vexpress_defconfig: 2 warnings
viper_defconfig: 2 warnings
vt8500_v6_v7_defconfig: 2 warnings
xcep_defconfig: 2 warnings
zeus_defconfig: 2 warnings
x86: gcc version 7.3.0 (Debian 7.3.0-30)
allnoconfig: 3 warnings
i386_defconfig: 3 warnings
tinyconfig: 3 warnings
x86_64_defconfig: 30 warnings
Errors summary:
2 arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
2 arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
Warnings summary:
663 arc-linux-gcc: warning: '-mno-mpy' is deprecated
654 cc1: warning: '-mno-mpy' is deprecated
128 scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
128 scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
3 arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
3 arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
3 arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
2 mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
2 kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
2 include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
2 include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
1 net/sunrpc/clnt.c:527:46: warning: '%s' directive output may be truncated writing up to 107 bytes into a region of size 48 [-Wformat-truncation=]
1 mm/mmap.c:684:2: warning: 'rb_parent' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 mm/mmap.c:684:2: warning: 'rb_link' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 mm/mmap.c:683:2: warning: 'prev' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 lib/string_helpers.c:64:33: warning: '%03lld' directive output may be truncated writing between 3 and 13 bytes into a region of size 7 [-Wformat-truncation=]
1 kernel/relay.c:423:35: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
1 fs/nfs/client.c:1380:23: warning: '%u' directive output may be truncated writing between 1 and 7 bytes into a region of size between 3 and 6 [-Wformat-truncation=]
1 drivers/video/fbdev/core/../edid.h:74:72: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/usb/core/usb.c:471:9: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
1 drivers/usb/core/hcd.c:450:34: warning: '%s' directive output may be truncated writing up to 64 bytes into a region of size between 35 and 99 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11184:10: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11181:9: warning: '-rx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11178:9: warning: '-tx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11175:9: warning: '-txrx-' directive output may be truncated writing 6 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/input/mouse/psmouse-base.c:1466:52: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/mouse/lifebook.c:287:7: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/mouse/alps.c:2418:46: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/keyboard/atkbd.c:1069:7: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/ata/libata-core.c:2970:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2969:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2968:35: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2967:32: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2966:31: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2965:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2964:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2963:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2962:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2141:42: warning: '%d' directive output may be truncated writing between 1 and 2 bytes into a region of size between 1 and 11 [-Wformat-truncation=]
1 block/partition-generic.c:41:37: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
1 block/partition-generic.c:39:36: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 31 [-Wformat-truncation=]
1 block/elevator.c:841:14: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
================================================================================
Detailed per-defconfig build reports:
--------------------------------------------------------------------------------
acs5k_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
acs5k_tiny_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
allnoconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (arc) — FAIL, 2 errors, 666 warnings, 0 section mismatches
Errors:
arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
Warnings:
arc-linux-gcc: warning: '-mno-mpy' is deprecated
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/mmap.c:684:2: warning: 'rb_link' may be used uninitialized in this function [-Wmaybe-uninitialized]
mm/mmap.c:684:2: warning: 'rb_parent' may be used uninitialized in this function [-Wmaybe-uninitialized]
mm/mmap.c:683:2: warning: 'prev' may be used uninitialized in this function [-Wmaybe-uninitialized]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
--------------------------------------------------------------------------------
am200epdkit_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ape6evm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ar7_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
armadillo800eva_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
assabet_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91_dt_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91rm9200_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9260_9g20_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9261_9g10_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9263_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9g45_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9rl_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91x40_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ath79_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
axm55xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
badge4_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bcm2835_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bcm47xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm63xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bigsur_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bockw_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
capcella_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cavium_octeon_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cerfcube_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
clps711x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cm_x2xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cm_x300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cns3420vb_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cobalt_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
colibri_pxa270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
colibri_pxa300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
collie_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
corgi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
davinci_all_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
db1xxx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
decstation_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
defconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
dove_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
e55_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ebsa110_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
efm32_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
em_x270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ep93xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
eseries_pxa_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
exynos_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ezx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
footbridge_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
fuloong2e_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
gpr_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
h3600_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
h5000_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
hackkit_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
hisi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
i386_defconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
imote2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
imx_v4_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
imx_v6_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
integrator_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop13xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop32x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop33x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ip22_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip27_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip28_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip32_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ixp4xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
jazz_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jmr3927_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jornada720_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
keystone_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
koelsch_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ks8695_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
kzm9g_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lager_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lart_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lasat_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lemote2f_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
loongson3_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lpc32xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lpd270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ls1b_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lubbock_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mackerel_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
magician_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mainstone_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
malta_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_kvm_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_kvm_guest_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaaprp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_eva_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaup_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
markeins_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
marzen_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mini2440_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mips_paravirt_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mmp2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
moxart_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mpc30x_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
msm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
msp71xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mtx1_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
multi_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
multi_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mv78xx0_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mvebu_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mvebu_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mxs_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
neponset_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
netwinder_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
netx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nhk8815_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nlm_xlp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nlm_xlr_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nuc910_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nuc950_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nuc960_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
omap1_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
omap2plus_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
orion5x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
palmz72_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pcm027_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pleb_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pnx8335_stb225_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
prima2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa168_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa255-idp_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa3xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa910_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
qcom_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
qi_lb60_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
raumfeld_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rb532_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rbtx49xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
realview-smp_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
realview_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rm200_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rpc_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rt305x_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
s3c2410_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
s3c6400_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
s5pv210_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sama5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sb1250_swarm_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sead3_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sead3micro_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
shannon_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
shmobile_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
simpad_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
socfpga_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear13xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear3xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear6xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spitz_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sunxi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tb0219_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0226_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0287_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tct_hammer_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tegra_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
tinyconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (arc) — FAIL, 2 errors, 664 warnings, 0 section mismatches
Errors:
arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
Warnings:
arc-linux-gcc: warning: '-mno-mpy' is deprecated
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
--------------------------------------------------------------------------------
tinyconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
trizeps4_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
u300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
u8500_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
versatile_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
vexpress_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
viper_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
vt8500_v6_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
workpad_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
x86_64_defconfig (x86) — PASS, 0 errors, 30 warnings, 0 section mismatches
Warnings:
include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
kernel/relay.c:423:35: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
block/elevator.c:841:14: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
block/partition-generic.c:39:36: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 31 [-Wformat-truncation=]
block/partition-generic.c:41:37: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
fs/nfs/client.c:1380:23: warning: '%u' directive output may be truncated writing between 1 and 7 bytes into a region of size between 3 and 6 [-Wformat-truncation=]
drivers/ata/libata-core.c:2962:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2963:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2964:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2965:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2966:31: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2967:32: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2968:35: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2969:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2970:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2141:42: warning: '%d' directive output may be truncated writing between 1 and 2 bytes into a region of size between 1 and 11 [-Wformat-truncation=]
lib/string_helpers.c:64:33: warning: '%03lld' directive output may be truncated writing between 3 and 13 bytes into a region of size 7 [-Wformat-truncation=]
net/sunrpc/clnt.c:527:46: warning: '%s' directive output may be truncated writing up to 107 bytes into a region of size 48 [-Wformat-truncation=]
drivers/input/keyboard/atkbd.c:1069:7: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/psmouse-base.c:1466:52: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/alps.c:2418:46: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/lifebook.c:287:7: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11175:9: warning: '-txrx-' directive output may be truncated writing 6 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11178:9: warning: '-tx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11181:9: warning: '-rx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11184:10: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
drivers/usb/core/usb.c:471:9: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
drivers/usb/core/hcd.c:450:34: warning: '%s' directive output may be truncated writing up to 64 bytes into a region of size between 35 and 99 [-Wformat-truncation=]
drivers/video/fbdev/core/../edid.h:74:72: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
--------------------------------------------------------------------------------
xcep_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
xway_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
zeus_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
---
For more info write to <info(a)kernelci.org>
This is an automatic generated email to let you know that the following patch were queued:
Subject: media: dvb-pll: don't re-validate tuner frequencies
Author: Mauro Carvalho Chehab <mchehab+samsung(a)kernel.org>
Date: Fri Nov 23 12:10:57 2018 -0500
The dvb_frontend core already checks for the frequencies. No
need for any additional check inside the driver.
It is part of the fixes for the following bug:
https://bugzilla.opensuse.org/show_bug.cgi?id=1116374
Fixes: a3f90c75b833 ("media: dvb: convert tuner_info frequencies to Hz")
Reported-by: Stakanov Schufter <stakanov(a)eclipso.eu>
Reported-by: Takashi Iwai <tiwai(a)suse.de>
Cc: stable(a)vger.kernel.org # For 4.19
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung(a)kernel.org>
drivers/media/dvb-frontends/dvb-pll.c | 3 ---
1 file changed, 3 deletions(-)
---
diff --git a/drivers/media/dvb-frontends/dvb-pll.c b/drivers/media/dvb-frontends/dvb-pll.c
index fff5816f6ec4..29836c1a40e9 100644
--- a/drivers/media/dvb-frontends/dvb-pll.c
+++ b/drivers/media/dvb-frontends/dvb-pll.c
@@ -610,9 +610,6 @@ static int dvb_pll_configure(struct dvb_frontend *fe, u8 *buf,
u32 div;
int i;
- if (frequency && (frequency < desc->min || frequency > desc->max))
- return -EINVAL;
-
for (i = 0; i < desc->count; i++) {
if (frequency > desc->entries[i].limit)
continue;
This is an automatic generated email to let you know that the following patch were queued:
Subject: media: dvb-pll: don't re-validate tuner frequencies
Author: Mauro Carvalho Chehab <mchehab+samsung(a)kernel.org>
Date: Fri Nov 23 12:10:57 2018 -0500
The dvb_frontend core already checks for the frequencies. No
need for any additional check inside the driver.
It is part of the fixes for the following bug:
https://bugzilla.opensuse.org/show_bug.cgi?id=1116374
Fixes: a3f90c75b833 ("media: dvb: convert tuner_info frequencies to Hz")
Reported-by: Stakanov Schufter <stakanov(a)eclipso.eu>
Reported-by: Takashi Iwai <tiwai(a)suse.de>
Cc: stable(a)vger.kernel.org # For 4.19
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung(a)kernel.org>
drivers/media/dvb-frontends/dvb-pll.c | 3 ---
1 file changed, 3 deletions(-)
---
diff --git a/drivers/media/dvb-frontends/dvb-pll.c b/drivers/media/dvb-frontends/dvb-pll.c
index fff5816f6ec4..29836c1a40e9 100644
--- a/drivers/media/dvb-frontends/dvb-pll.c
+++ b/drivers/media/dvb-frontends/dvb-pll.c
@@ -610,9 +610,6 @@ static int dvb_pll_configure(struct dvb_frontend *fe, u8 *buf,
u32 div;
int i;
- if (frequency && (frequency < desc->min || frequency > desc->max))
- return -EINVAL;
-
for (i = 0; i < desc->count; i++) {
if (frequency > desc->entries[i].limit)
continue;
On Sat, 2018-11-17 at 12:24 +0000, Sasha Levin wrote:
> Hi,
>
> [This is an automated email]
>
> This commit has been processed because it contains a -stable tag.
> The stable tag indicates that it's relevant for the following trees: all
>
> The bot has tested the following trees: v4.19.2, v4.18.19, v4.14.81,
> v4.9.137, v4.4.163, v3.18.125,
>
> v4.19.2: Build OK!
> v4.18.19: Build OK!
> v4.14.81: Failed to apply! Possible dependencies:
> e46368cf77f2 ("drm/nouveau/drm/nouveau: Grab runtime PM ref in
> nv50_mstc_detect()")
>
> v4.9.137: Failed to apply! Possible dependencies:
> e46368cf77f2 ("drm/nouveau/drm/nouveau: Grab runtime PM ref in
> nv50_mstc_detect()")
>
> v4.4.163: Failed to apply! Possible dependencies:
> e46368cf77f2 ("drm/nouveau/drm/nouveau: Grab runtime PM ref in
> nv50_mstc_detect()")
>
> v3.18.125: Failed to apply! Possible dependencies:
> e46368cf77f2 ("drm/nouveau/drm/nouveau: Grab runtime PM ref in
> nv50_mstc_detect()")
>
>
> How should we proceed with this patch?
e46368cf77f2 ("drm/nouveau/drm/nouveau: Grab runtime PM ref in nv50_mstc_detect()")
Should also be backported for v4.9+, and then this patch should be applied on
top of that.
>
> --
> Thanks,
> Sasha
--
Cheers,
Lyude Paul
stable/linux-3.18.y build: 185 builds: 2 failed, 183 passed, 4 errors, 1619 warnings (v3.18.127)
Full Build Summary: https://kernelci.org/build/stable/branch/linux-3.18.y/kernel/v3.18.127/
Tree: stable
Branch: linux-3.18.y
Git Describe: v3.18.127
Git Commit: 376f405256923b1d1ab14cb2970a25e11b074198
Git URL: http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
Built: 5 unique architectures
Build Failures Detected:
arc: gcc version 7.1.1 20170710 (ARCv2 ISA Linux uClibc toolchain 2017.09)
allnoconfig: FAIL
tinyconfig: FAIL
Errors and Warnings Detected:
arc: gcc version 7.1.1 20170710 (ARCv2 ISA Linux uClibc toolchain 2017.09)
allnoconfig: 2 errors, 666 warnings
tinyconfig: 2 errors, 664 warnings
arm64: gcc version 7.3.0 (Debian 7.3.0-28)
allnoconfig: 2 warnings
defconfig: 2 warnings
tinyconfig: 2 warnings
arm: gcc version 7.3.0 (Debian 7.3.0-28)
acs5k_defconfig: 2 warnings
acs5k_tiny_defconfig: 2 warnings
allnoconfig: 2 warnings
am200epdkit_defconfig: 2 warnings
ape6evm_defconfig: 2 warnings
armadillo800eva_defconfig: 2 warnings
assabet_defconfig: 2 warnings
at91_dt_defconfig: 2 warnings
at91rm9200_defconfig: 2 warnings
at91sam9260_9g20_defconfig: 2 warnings
at91sam9261_9g10_defconfig: 2 warnings
at91sam9263_defconfig: 2 warnings
at91sam9g45_defconfig: 2 warnings
at91sam9rl_defconfig: 2 warnings
at91x40_defconfig: 2 warnings
axm55xx_defconfig: 2 warnings
badge4_defconfig: 2 warnings
bcm2835_defconfig: 2 warnings
bcm_defconfig: 2 warnings
bockw_defconfig: 2 warnings
cerfcube_defconfig: 2 warnings
clps711x_defconfig: 2 warnings
cm_x2xx_defconfig: 2 warnings
cm_x300_defconfig: 2 warnings
cns3420vb_defconfig: 2 warnings
colibri_pxa270_defconfig: 2 warnings
colibri_pxa300_defconfig: 2 warnings
collie_defconfig: 2 warnings
corgi_defconfig: 2 warnings
davinci_all_defconfig: 2 warnings
dove_defconfig: 2 warnings
ebsa110_defconfig: 2 warnings
efm32_defconfig: 2 warnings
em_x270_defconfig: 2 warnings
ep93xx_defconfig: 2 warnings
eseries_pxa_defconfig: 2 warnings
exynos_defconfig: 2 warnings
ezx_defconfig: 2 warnings
footbridge_defconfig: 2 warnings
h3600_defconfig: 2 warnings
h5000_defconfig: 2 warnings
hackkit_defconfig: 2 warnings
hisi_defconfig: 2 warnings
imote2_defconfig: 2 warnings
imx_v4_v5_defconfig: 2 warnings
imx_v6_v7_defconfig: 2 warnings
integrator_defconfig: 2 warnings
iop13xx_defconfig: 2 warnings
iop32x_defconfig: 2 warnings
iop33x_defconfig: 2 warnings
ixp4xx_defconfig: 2 warnings
jornada720_defconfig: 2 warnings
keystone_defconfig: 2 warnings
koelsch_defconfig: 2 warnings
ks8695_defconfig: 2 warnings
kzm9g_defconfig: 2 warnings
lager_defconfig: 2 warnings
lart_defconfig: 2 warnings
lpc32xx_defconfig: 2 warnings
lpd270_defconfig: 2 warnings
lubbock_defconfig: 2 warnings
mackerel_defconfig: 2 warnings
magician_defconfig: 2 warnings
mainstone_defconfig: 2 warnings
marzen_defconfig: 2 warnings
mini2440_defconfig: 2 warnings
mmp2_defconfig: 2 warnings
moxart_defconfig: 2 warnings
msm_defconfig: 2 warnings
multi_v5_defconfig: 2 warnings
multi_v7_defconfig: 2 warnings
mv78xx0_defconfig: 2 warnings
mvebu_v5_defconfig: 2 warnings
mvebu_v7_defconfig: 2 warnings
mxs_defconfig: 2 warnings
neponset_defconfig: 2 warnings
netwinder_defconfig: 2 warnings
netx_defconfig: 2 warnings
nhk8815_defconfig: 2 warnings
nuc910_defconfig: 2 warnings
nuc950_defconfig: 2 warnings
nuc960_defconfig: 2 warnings
omap1_defconfig: 2 warnings
orion5x_defconfig: 2 warnings
palmz72_defconfig: 2 warnings
pcm027_defconfig: 2 warnings
pleb_defconfig: 2 warnings
prima2_defconfig: 2 warnings
pxa168_defconfig: 2 warnings
pxa255-idp_defconfig: 2 warnings
pxa3xx_defconfig: 2 warnings
pxa910_defconfig: 2 warnings
qcom_defconfig: 2 warnings
raumfeld_defconfig: 2 warnings
realview-smp_defconfig: 2 warnings
realview_defconfig: 2 warnings
rpc_defconfig: 2 warnings
s3c2410_defconfig: 2 warnings
s3c6400_defconfig: 2 warnings
s5pv210_defconfig: 2 warnings
sama5_defconfig: 2 warnings
shannon_defconfig: 2 warnings
shmobile_defconfig: 2 warnings
simpad_defconfig: 2 warnings
socfpga_defconfig: 2 warnings
spear13xx_defconfig: 2 warnings
spear3xx_defconfig: 2 warnings
spear6xx_defconfig: 2 warnings
spitz_defconfig: 2 warnings
sunxi_defconfig: 2 warnings
tct_hammer_defconfig: 2 warnings
tegra_defconfig: 2 warnings
tinyconfig: 2 warnings
trizeps4_defconfig: 2 warnings
u300_defconfig: 2 warnings
u8500_defconfig: 2 warnings
versatile_defconfig: 2 warnings
vexpress_defconfig: 2 warnings
viper_defconfig: 2 warnings
vt8500_v6_v7_defconfig: 2 warnings
xcep_defconfig: 2 warnings
zeus_defconfig: 2 warnings
x86: gcc version 7.3.0 (Debian 7.3.0-30)
allnoconfig: 3 warnings
i386_defconfig: 3 warnings
tinyconfig: 3 warnings
x86_64_defconfig: 30 warnings
Errors summary:
2 arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
2 arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
Warnings summary:
663 arc-linux-gcc: warning: '-mno-mpy' is deprecated
654 cc1: warning: '-mno-mpy' is deprecated
127 scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
127 scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
3 arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
3 arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
3 arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
2 mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
2 kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
2 include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
2 include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
1 net/sunrpc/clnt.c:527:46: warning: '%s' directive output may be truncated writing up to 107 bytes into a region of size 48 [-Wformat-truncation=]
1 mm/mmap.c:684:2: warning: 'rb_parent' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 mm/mmap.c:684:2: warning: 'rb_link' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 mm/mmap.c:683:2: warning: 'prev' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 lib/string_helpers.c:64:33: warning: '%03lld' directive output may be truncated writing between 3 and 13 bytes into a region of size 7 [-Wformat-truncation=]
1 kernel/relay.c:423:35: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
1 fs/nfs/client.c:1380:23: warning: '%u' directive output may be truncated writing between 1 and 7 bytes into a region of size between 3 and 6 [-Wformat-truncation=]
1 drivers/video/fbdev/core/../edid.h:74:72: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/usb/core/usb.c:471:9: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
1 drivers/usb/core/hcd.c:450:34: warning: '%s' directive output may be truncated writing up to 64 bytes into a region of size between 35 and 99 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11184:10: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11181:9: warning: '-rx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11178:9: warning: '-tx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11175:9: warning: '-txrx-' directive output may be truncated writing 6 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/input/mouse/psmouse-base.c:1466:52: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/mouse/lifebook.c:287:7: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/mouse/alps.c:2418:46: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/keyboard/atkbd.c:1069:7: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/ata/libata-core.c:2970:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2969:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2968:35: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2967:32: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2966:31: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2965:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2964:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2963:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2962:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2141:42: warning: '%d' directive output may be truncated writing between 1 and 2 bytes into a region of size between 1 and 11 [-Wformat-truncation=]
1 block/partition-generic.c:41:37: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
1 block/partition-generic.c:39:36: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 31 [-Wformat-truncation=]
1 block/elevator.c:841:14: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
================================================================================
Detailed per-defconfig build reports:
--------------------------------------------------------------------------------
acs5k_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
acs5k_tiny_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
allnoconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (arc) — FAIL, 2 errors, 666 warnings, 0 section mismatches
Errors:
arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
Warnings:
arc-linux-gcc: warning: '-mno-mpy' is deprecated
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/mmap.c:684:2: warning: 'rb_link' may be used uninitialized in this function [-Wmaybe-uninitialized]
mm/mmap.c:684:2: warning: 'rb_parent' may be used uninitialized in this function [-Wmaybe-uninitialized]
mm/mmap.c:683:2: warning: 'prev' may be used uninitialized in this function [-Wmaybe-uninitialized]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
--------------------------------------------------------------------------------
am200epdkit_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ape6evm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ar7_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
armadillo800eva_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
assabet_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91_dt_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91rm9200_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9260_9g20_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9261_9g10_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9263_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9g45_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9rl_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91x40_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ath79_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
axm55xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
badge4_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bcm2835_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bcm47xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm63xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bigsur_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bockw_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
capcella_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cavium_octeon_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cerfcube_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
clps711x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cm_x2xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cm_x300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cns3420vb_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cobalt_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
colibri_pxa270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
colibri_pxa300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
collie_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
corgi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
davinci_all_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
db1xxx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
decstation_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
defconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
dove_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
e55_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ebsa110_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
efm32_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
em_x270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ep93xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
eseries_pxa_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
exynos_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ezx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
footbridge_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
fuloong2e_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
gpr_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
h3600_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
h5000_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
hackkit_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
hisi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
i386_defconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
imote2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
imx_v4_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
imx_v6_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
integrator_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop13xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop32x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop33x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ip22_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip27_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip28_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip32_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ixp4xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
jazz_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jmr3927_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jornada720_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
keystone_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
koelsch_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ks8695_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
kzm9g_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lager_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lart_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lasat_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lemote2f_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
loongson3_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lpc32xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lpd270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ls1b_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lubbock_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mackerel_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
magician_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mainstone_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
malta_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_kvm_guest_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaaprp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_eva_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
markeins_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
marzen_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mini2440_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mips_paravirt_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mmp2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
moxart_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mpc30x_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
msm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
msp71xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
multi_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
multi_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mv78xx0_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mvebu_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mvebu_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mxs_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
neponset_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
netwinder_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
netx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nhk8815_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nuc910_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nuc950_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nuc960_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
omap1_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
orion5x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
palmz72_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pcm027_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pleb_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pnx8335_stb225_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
prima2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa168_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa255-idp_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa3xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa910_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
qcom_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
qi_lb60_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
raumfeld_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rb532_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rbtx49xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
realview-smp_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
realview_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rm200_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rpc_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rt305x_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
s3c2410_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
s3c6400_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
s5pv210_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sama5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sb1250_swarm_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sead3_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sead3micro_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
shannon_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
shmobile_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
simpad_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
socfpga_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear13xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear3xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear6xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spitz_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sunxi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tb0219_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0226_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0287_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tct_hammer_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tegra_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
tinyconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (arc) — FAIL, 2 errors, 664 warnings, 0 section mismatches
Errors:
arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
Warnings:
arc-linux-gcc: warning: '-mno-mpy' is deprecated
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
--------------------------------------------------------------------------------
trizeps4_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
u300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
u8500_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
versatile_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
vexpress_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
viper_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
vt8500_v6_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
workpad_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
x86_64_defconfig (x86) — PASS, 0 errors, 30 warnings, 0 section mismatches
Warnings:
include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
kernel/relay.c:423:35: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
block/elevator.c:841:14: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
block/partition-generic.c:39:36: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 31 [-Wformat-truncation=]
block/partition-generic.c:41:37: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
fs/nfs/client.c:1380:23: warning: '%u' directive output may be truncated writing between 1 and 7 bytes into a region of size between 3 and 6 [-Wformat-truncation=]
drivers/ata/libata-core.c:2962:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2963:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2964:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2965:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2966:31: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2967:32: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2968:35: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2969:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2970:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2141:42: warning: '%d' directive output may be truncated writing between 1 and 2 bytes into a region of size between 1 and 11 [-Wformat-truncation=]
lib/string_helpers.c:64:33: warning: '%03lld' directive output may be truncated writing between 3 and 13 bytes into a region of size 7 [-Wformat-truncation=]
drivers/input/keyboard/atkbd.c:1069:7: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/psmouse-base.c:1466:52: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/alps.c:2418:46: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/lifebook.c:287:7: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11175:9: warning: '-txrx-' directive output may be truncated writing 6 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11178:9: warning: '-tx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11181:9: warning: '-rx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11184:10: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
net/sunrpc/clnt.c:527:46: warning: '%s' directive output may be truncated writing up to 107 bytes into a region of size 48 [-Wformat-truncation=]
drivers/usb/core/usb.c:471:9: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
drivers/usb/core/hcd.c:450:34: warning: '%s' directive output may be truncated writing up to 64 bytes into a region of size between 35 and 99 [-Wformat-truncation=]
drivers/video/fbdev/core/../edid.h:74:72: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
--------------------------------------------------------------------------------
xcep_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
xway_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
zeus_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
---
For more info write to <info(a)kernelci.org>
The patch below does not apply to the 4.9-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 9844fb2e351311210e6660a9a1c62d17424a6145 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:53 +0200
Subject: [PATCH] power: supply: twl4030-charger: fix OF sibling-node lookup
Use the new of_get_compatible_child() helper to lookup the usb sibling
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(non-sibling) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the parent device node).
While at it, also fix the related phy-node reference leak.
Fixes: f5e4edb8c888 ("power: twl4030_charger: find associated phy by more reliable means.")
Cc: stable <stable(a)vger.kernel.org> # 4.2
Cc: NeilBrown <neilb(a)suse.de>
Cc: Felipe Balbi <felipe.balbi(a)linux.intel.com>
Cc: Sebastian Reichel <sre(a)kernel.org>
Reviewed-by: Sebastian Reichel <sre(a)kernel.org>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/power/supply/twl4030_charger.c b/drivers/power/supply/twl4030_charger.c
index bbcaee56db9d..b6a7d9f74cf3 100644
--- a/drivers/power/supply/twl4030_charger.c
+++ b/drivers/power/supply/twl4030_charger.c
@@ -996,12 +996,13 @@ static int twl4030_bci_probe(struct platform_device *pdev)
if (bci->dev->of_node) {
struct device_node *phynode;
- phynode = of_find_compatible_node(bci->dev->of_node->parent,
- NULL, "ti,twl4030-usb");
+ phynode = of_get_compatible_child(bci->dev->of_node->parent,
+ "ti,twl4030-usb");
if (phynode) {
bci->usb_nb.notifier_call = twl4030_bci_usb_ncb;
bci->transceiver = devm_usb_get_phy_by_node(
bci->dev, phynode, &bci->usb_nb);
+ of_node_put(phynode);
if (IS_ERR(bci->transceiver)) {
ret = PTR_ERR(bci->transceiver);
if (ret == -EPROBE_DEFER)
The patch below does not apply to the 4.4-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 9844fb2e351311210e6660a9a1c62d17424a6145 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:53 +0200
Subject: [PATCH] power: supply: twl4030-charger: fix OF sibling-node lookup
Use the new of_get_compatible_child() helper to lookup the usb sibling
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(non-sibling) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the parent device node).
While at it, also fix the related phy-node reference leak.
Fixes: f5e4edb8c888 ("power: twl4030_charger: find associated phy by more reliable means.")
Cc: stable <stable(a)vger.kernel.org> # 4.2
Cc: NeilBrown <neilb(a)suse.de>
Cc: Felipe Balbi <felipe.balbi(a)linux.intel.com>
Cc: Sebastian Reichel <sre(a)kernel.org>
Reviewed-by: Sebastian Reichel <sre(a)kernel.org>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/power/supply/twl4030_charger.c b/drivers/power/supply/twl4030_charger.c
index bbcaee56db9d..b6a7d9f74cf3 100644
--- a/drivers/power/supply/twl4030_charger.c
+++ b/drivers/power/supply/twl4030_charger.c
@@ -996,12 +996,13 @@ static int twl4030_bci_probe(struct platform_device *pdev)
if (bci->dev->of_node) {
struct device_node *phynode;
- phynode = of_find_compatible_node(bci->dev->of_node->parent,
- NULL, "ti,twl4030-usb");
+ phynode = of_get_compatible_child(bci->dev->of_node->parent,
+ "ti,twl4030-usb");
if (phynode) {
bci->usb_nb.notifier_call = twl4030_bci_usb_ncb;
bci->transceiver = devm_usb_get_phy_by_node(
bci->dev, phynode, &bci->usb_nb);
+ of_node_put(phynode);
if (IS_ERR(bci->transceiver)) {
ret = PTR_ERR(bci->transceiver);
if (ret == -EPROBE_DEFER)
Fixes an error caused by 3-bit right rotation on offset address
calculation of MSI-X table in dw_pcie_ep_raise_msix_irq().
During the development time, by default the offset address of MSI-X
table was set to zero, so that even with a 3-bit right rotation the
computed result would still be zero and valid, therefore not being
noticed this bug.
Fixes: beb4641a787d ("PCI: dwc: Add MSI-X callbacks handler")
Signed-off-by: Gustavo Pimentel <gustavo.pimentel(a)synopsys.com>
Cc: stable(a)vger.kernel.org
---
drivers/pci/controller/dwc/pcie-designware-ep.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c
index 1e7b022..de8635a 100644
--- a/drivers/pci/controller/dwc/pcie-designware-ep.c
+++ b/drivers/pci/controller/dwc/pcie-designware-ep.c
@@ -440,7 +440,6 @@ int dw_pcie_ep_raise_msix_irq(struct dw_pcie_ep *ep, u8 func_no,
tbl_offset = dw_pcie_readl_dbi(pci, reg);
bir = (tbl_offset & PCI_MSIX_TABLE_BIR);
tbl_offset &= PCI_MSIX_TABLE_OFFSET;
- tbl_offset >>= 3;
reg = PCI_BASE_ADDRESS_0 + (4 * bir);
bar_addr_upper = 0;
--
2.7.4
On 11/27/18 8:43 AM, Sasha Levin wrote:
> Hi,
>
> [This is an automated email]
>
> This commit has been processed because it contains a -stable tag.
> The stable tag indicates that it's relevant for the following trees: v4.19,
> v4.14, v4.9, v4.4.
>
> The bot has tested the following trees: v4.19.4, v4.14.83, v4.9.140, v4.4.164,
> v3.18.126.
>
> v4.19.4: Build OK!
> v4.14.83: Failed to apply! Possible dependencies:
> afc9f65e01cd ("ARM: 8781/1: Fix Thumb-2 syscall return for binutils 2.29+")
>
> v4.9.140: Failed to apply! Possible dependencies:
> afc9f65e01cd ("ARM: 8781/1: Fix Thumb-2 syscall return for binutils 2.29+")
>
> v4.4.164: Failed to apply! Possible dependencies:
> 10573ae547c8 ("ARM: spectre-v1: fix syscall entry")
> afc9f65e01cd ("ARM: 8781/1: Fix Thumb-2 syscall return for binutils 2.29+")
>
>
> How should we proceed with this patch?
I'm sending a v2 for the same patch. Please hold.
Thank you!
This is the start of the stable review cycle for the 3.18.127 release.
There are 24 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 Wed Nov 28 10:50:13 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.127-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.127-rc1
Eric Biggers <ebiggers(a)google.com>
HID: uhid: forbid UHID_CREATE under KERNEL_DS or elevated privileges
Al Viro <viro(a)zeniv.linux.org.uk>
new helper: uaccess_kernel()
Hans de Goede <hdegoede(a)redhat.com>
ACPI / platform: Add SMB0001 HID to forbidden_id_list
Mattias Jacobsson <2pi(a)mok.nu>
USB: misc: appledisplay: add 20" Apple Cinema Display
Nathan Chancellor <natechancellor(a)gmail.com>
misc: atmel-ssc: Fix section annotation on atmel_ssc_get_driver_data
Emmanuel Pescosta <emmanuelpescosta099(a)gmail.com>
usb: quirks: Add delay-init quirk for Corsair K70 LUX RGB
Kai-Heng Feng <kai.heng.feng(a)canonical.com>
USB: quirks: Add no-lpm quirk for Raydium touchscreens
Maarten Jacobs <maarten256(a)outlook.com>
usb: cdc-acm: add entry for Hiro (Conexant) modem
Dan Carpenter <dan.carpenter(a)oracle.com>
uio: Fix an Oops on load
Sakari Ailus <sakari.ailus(a)linux.intel.com>
media: v4l: event: Add subscription to list before calling "add" operation
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Revert "Bluetooth: h5: Fix missing dependency on BT_HCIUART_SERDEV"
YueHaibing <yuehaibing(a)huawei.com>
SUNRPC: drop pointless static qualifier in xdr_get_next_encode_buffer()
Sasha Levin <sashal(a)kernel.org>
Revert "Revert "drm/i915: Fix mutex->owner inspection race under DEBUG_MUTEXES""
Minchan Kim <minchan(a)kernel.org>
zram: close udev startup race condition as default groups
Vignesh R <vigneshr(a)ti.com>
i2c: omap: Enable for ARCH_K3
Jeremy Linton <jeremy.linton(a)arm.com>
lib/raid6: Fix arm64 test build
Vasily Gorbik <gor(a)linux.ibm.com>
s390/vdso: add missing FORCE to build targets
Marek Szyprowski <m.szyprowski(a)samsung.com>
clk: samsung: exynos5420: Enable PERIS clocks for suspend
Chengguang Xu <cgxu519(a)gmx.com>
fs/exofs: fix potential memory leak in mount option parsing
Richard Weinberger <richard(a)nod.at>
um: Give start_idle_thread() a return code
Ernesto A. Fernández <ernesto.mnd.fernandez(a)gmail.com>
hfsplus: prevent btree data loss on root split
Ernesto A. Fernández <ernesto.mnd.fernandez(a)gmail.com>
hfs: prevent btree data loss on root split
Jann Horn <jannh(a)google.com>
reiserfs: propagate errors from fill_with_dentries() properly
Eric Dumazet <edumazet(a)google.com>
net-gro: reset skb->pkt_type in napi_reuse_skb()
-------------
Diffstat:
Makefile | 4 ++--
arch/s390/kernel/vdso32/Makefile | 6 ++---
arch/s390/kernel/vdso64/Makefile | 6 ++---
arch/um/os-Linux/skas/process.c | 5 +++++
drivers/acpi/acpi_platform.c | 1 +
drivers/block/zram/zram_drv.c | 18 +++++----------
drivers/bluetooth/Kconfig | 1 -
drivers/clk/samsung/clk-exynos5420.c | 1 +
drivers/gpu/drm/i915/i915_gem.c | 2 +-
drivers/hid/uhid.c | 13 +++++++++++
drivers/i2c/busses/Kconfig | 2 +-
drivers/media/v4l2-core/v4l2-event.c | 43 ++++++++++++++++++++----------------
drivers/misc/atmel-ssc.c | 2 +-
drivers/uio/uio.c | 7 ++++--
drivers/usb/class/cdc-acm.c | 3 +++
drivers/usb/core/quirks.c | 8 +++++++
drivers/usb/misc/appledisplay.c | 1 +
fs/exofs/super.c | 5 ++++-
fs/hfs/brec.c | 4 ++++
fs/hfsplus/brec.c | 4 ++++
fs/reiserfs/xattr.c | 7 ++++++
include/linux/uaccess.h | 3 +++
lib/raid6/test/Makefile | 4 ++--
net/core/dev.c | 4 ++++
net/sunrpc/xdr.c | 2 +-
25 files changed, 107 insertions(+), 49 deletions(-)
This is a note to let you know that I've just added the patch titled
tty: do not set TTY_IO_ERROR flag if console port
to my tty git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git
in the tty-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 2a48602615e0a2f563549c7d5c8d507f904cf96e Mon Sep 17 00:00:00 2001
From: Chanho Park <parkch98(a)gmail.com>
Date: Thu, 22 Nov 2018 18:23:47 +0900
Subject: tty: do not set TTY_IO_ERROR flag if console port
Since Commit 761ed4a94582 ('tty: serial_core: convert uart_close to use
tty_port_close') and Commit 4dda864d7307 ('tty: serial_core: Fix serial
console crash on port shutdown), a serial port which is used as
console can be stuck when logging out if there is a remained process.
After logged out, agetty will try to grab the serial port but it will
be failed because the previous process did not release the port
correctly. To fix this, TTY_IO_ERROR bit should not be enabled of
tty_port_close if the port is console port.
Reproduce step:
- Run background processes from serial console
$ while true; do sleep 10; done &
- Log out
$ logout
-> Stuck
- Read journal log by journalctl | tail
Jan 28 16:07:01 ubuntu systemd[1]: Stopped Serial Getty on ttyAMA0.
Jan 28 16:07:01 ubuntu systemd[1]: Started Serial Getty on ttyAMA0.
Jan 28 16:07:02 ubuntu agetty[1643]: /dev/ttyAMA0: not a tty
Fixes: 761ed4a94582 ("tty: serial_core: convert uart_close to use tty_port_close")
Cc: Geert Uytterhoeven <geert+renesas(a)glider.be>
Cc: Rob Herring <robh(a)kernel.org>
Cc: Jiri Slaby <jslaby(a)suse.com>
Signed-off-by: Chanho Park <parkch98(a)gmail.com>
Cc: stable <stable(a)vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/tty/tty_port.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/tty/tty_port.c b/drivers/tty/tty_port.c
index cb6075096a5b..044c3cbdcfa4 100644
--- a/drivers/tty/tty_port.c
+++ b/drivers/tty/tty_port.c
@@ -633,7 +633,8 @@ void tty_port_close(struct tty_port *port, struct tty_struct *tty,
if (tty_port_close_start(port, tty, filp) == 0)
return;
tty_port_shutdown(port, tty);
- set_bit(TTY_IO_ERROR, &tty->flags);
+ if (!port->console)
+ set_bit(TTY_IO_ERROR, &tty->flags);
tty_port_close_end(port, tty);
tty_port_tty_set(port, NULL);
}
--
2.19.2
imx274_read_reg() takes a u8 pointer ("reg") and casts it to pass it
to regmap_read(), which takes an unsigned int pointer. This results in
a corrupted stack and random crashes.
Fixes: 0985dd306f72 ("media: imx274: V4l2 driver for Sony imx274 CMOS sensor")
Cc: stable(a)vger.kernel.org # 4.15.x
Signed-off-by: Luca Ceresoli <luca(a)lucaceresoli.net>
---
Notes!
I have no evidence of this bug showing up in the mainline driver. It
appeared on a modified version where imx274_read_reg() is used,
unmodified, in a different way than it does in mainline (passing a
pointer to a single u8 instead of a pointer to an element of a u8
array).
Also the bug is only present in versions v4.15 (where the driver was
added) to v4.19. The offending function is unused since commit
ca017467c78b ("media: imx274: add helper to read multibyte
registers"), merged in v4.20-rc1, thus master is not affected. I'm
sending this bugfix patch anyway for easier integration in the stable
branches. Later I plan to send a patch against master to entirely
remove the function. Or somebody might want to use this function
again, so better having a fixed version out anyway.
I'm not 100% sure this qualifies this commit for stable trees.
---
drivers/media/i2c/imx274.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/media/i2c/imx274.c b/drivers/media/i2c/imx274.c
index e1b0395a657f..40c717f13eb8 100644
--- a/drivers/media/i2c/imx274.c
+++ b/drivers/media/i2c/imx274.c
@@ -619,16 +619,19 @@ static int imx274_write_table(struct stimx274 *priv, const struct reg_8 table[])
static inline int imx274_read_reg(struct stimx274 *priv, u16 addr, u8 *val)
{
+ unsigned int uint_val;
int err;
- err = regmap_read(priv->regmap, addr, (unsigned int *)val);
+ err = regmap_read(priv->regmap, addr, &uint_val);
if (err)
dev_err(&priv->client->dev,
"%s : i2c read failed, addr = %x\n", __func__, addr);
else
dev_dbg(&priv->client->dev,
"%s : addr 0x%x, val=0x%x\n", __func__,
- addr, *val);
+ addr, uint_val);
+
+ *val = uint_val;
return err;
}
--
2.17.1
In order for ULPI PHYs to work, dwc3_phy_setup() and dwc3_ulpi_init()
must be doene before dwc3_core_get_phy().
commit 541768b08a40 ("usb: dwc3: core: Call dwc3_core_get_phy() before initializing phys")
broke this.
The other issue is that dwc3_core_get_phy() and dwc3_ulpi_init() should
be called only once during the life cycle of the driver. However,
as dwc3_core_init() is called during system suspend/resume it will
result in multiple calls to dwc3_core_get_phy() and dwc3_ulpi_init()
which is wrong.
Fix this by moving dwc3_ulpi_init() out of dwc3_phy_setup()
into dwc3_core_ulpi_init(). Use a flag 'ulpi_ready' to ensure that
dwc3_core_ulpi_init() is called only once from dwc3_core_init().
Use another flag 'phys_ready' to call dwc3_core_get_phy() only once from
dwc3_core_init().
Fixes: 541768b08a40 ("usb: dwc3: core: Call dwc3_core_get_phy() before initializing phys")
Fixes: f54edb539c11 ("usb: dwc3: core: initialize ULPI before trying to get the PHY")
Cc: linux-stable <stable(a)vger.kernel.org> # >= v4.13
Signed-off-by: Roger Quadros <rogerq(a)ti.com>
---
Changelog:
v2:
- don't break ULPI case. Also take into consideration suspend/resume for ULPI case.
drivers/usb/dwc3/core.c | 47 ++++++++++++++++++++++++++++++++++++-----------
drivers/usb/dwc3/core.h | 5 +++++
2 files changed, 41 insertions(+), 11 deletions(-)
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 0783250..84382f6 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -482,6 +482,22 @@ static void dwc3_cache_hwparams(struct dwc3 *dwc)
parms->hwparams8 = dwc3_readl(dwc->regs, DWC3_GHWPARAMS8);
}
+static int dwc3_core_ulpi_init(struct dwc3 *dwc)
+{
+ int intf;
+ int ret = 0;
+
+ intf = DWC3_GHWPARAMS3_HSPHY_IFC(dwc->hwparams.hwparams3);
+
+ if (intf == DWC3_GHWPARAMS3_HSPHY_IFC_ULPI ||
+ (intf == DWC3_GHWPARAMS3_HSPHY_IFC_UTMI_ULPI &&
+ dwc->hsphy_interface &&
+ !strncmp(dwc->hsphy_interface, "ulpi", 4)))
+ ret = dwc3_ulpi_init(dwc);
+
+ return ret;
+}
+
/**
* dwc3_phy_setup - Configure USB PHY Interface of DWC3 Core
* @dwc: Pointer to our controller context structure
@@ -493,7 +509,6 @@ static void dwc3_cache_hwparams(struct dwc3 *dwc)
static int dwc3_phy_setup(struct dwc3 *dwc)
{
u32 reg;
- int ret;
reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0));
@@ -564,9 +579,6 @@ static int dwc3_phy_setup(struct dwc3 *dwc)
}
/* FALLTHROUGH */
case DWC3_GHWPARAMS3_HSPHY_IFC_ULPI:
- ret = dwc3_ulpi_init(dwc);
- if (ret)
- return ret;
/* FALLTHROUGH */
default:
break;
@@ -723,6 +735,7 @@ static void dwc3_core_setup_global_control(struct dwc3 *dwc)
}
static int dwc3_core_get_phy(struct dwc3 *dwc);
+static int dwc3_core_ulpi_init(struct dwc3 *dwc);
/**
* dwc3_core_init - Low-level initialization of DWC3 Core
@@ -754,17 +767,27 @@ static int dwc3_core_init(struct dwc3 *dwc)
dwc->maximum_speed = USB_SPEED_HIGH;
}
- ret = dwc3_core_get_phy(dwc);
+ ret = dwc3_phy_setup(dwc);
if (ret)
goto err0;
- ret = dwc3_core_soft_reset(dwc);
- if (ret)
- goto err0;
+ if (!dwc->ulpi_ready) {
+ ret = dwc3_core_ulpi_init(dwc);
+ if (ret)
+ goto err0;
+ dwc->ulpi_ready = true;
+ }
- ret = dwc3_phy_setup(dwc);
+ if (!dwc->phys_ready) {
+ ret = dwc3_core_get_phy(dwc);
+ if (ret)
+ goto err0a;
+ dwc->phys_ready = true;
+ }
+
+ ret = dwc3_core_soft_reset(dwc);
if (ret)
- goto err0;
+ goto err0a;
dwc3_core_setup_global_control(dwc);
dwc3_core_num_eps(dwc);
@@ -837,6 +860,9 @@ static int dwc3_core_init(struct dwc3 *dwc)
phy_exit(dwc->usb2_generic_phy);
phy_exit(dwc->usb3_generic_phy);
+err0a:
+ dwc3_ulpi_exit(dwc);
+
err0:
return ret;
}
@@ -1229,7 +1255,6 @@ static int dwc3_probe(struct platform_device *pdev)
err3:
dwc3_free_event_buffers(dwc);
- dwc3_ulpi_exit(dwc);
err2:
pm_runtime_allow(&pdev->dev);
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 4a4a4c9..6b202e3 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -795,7 +795,9 @@ struct dwc3_scratchpad_array {
* @usb3_phy: pointer to USB3 PHY
* @usb2_generic_phy: pointer to USB2 PHY
* @usb3_generic_phy: pointer to USB3 PHY
+ * @phys_ready: flag to indicate that PHYs are ready
* @ulpi: pointer to ulpi interface
+ * @ulpi_ready: flag to indicate that ULPI is initialized
* @isoch_delay: wValue from Set Isochronous Delay request;
* @u2sel: parameter from Set SEL request.
* @u2pel: parameter from Set SEL request.
@@ -893,7 +895,10 @@ struct dwc3 {
struct phy *usb2_generic_phy;
struct phy *usb3_generic_phy;
+ bool phys_ready;
+
struct ulpi *ulpi;
+ bool ulpi_ready;
void __iomem *regs;
size_t regs_size;
--
cheers,
-roger
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
This is a note to let you know that I've just added the patch titled
misc: mic/scif: fix copy-paste error in scif_create_remote_lookup
to my char-misc git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
in the char-misc-linus branch.
The patch will show up in the next release of the linux-next tree
(usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the
next -rc kernel release.
If you have any questions about this process, please let me know.
>From 6484a677294aa5d08c0210f2f387ebb9be646115 Mon Sep 17 00:00:00 2001
From: YueHaibing <yuehaibing(a)huawei.com>
Date: Wed, 14 Nov 2018 01:57:03 +0000
Subject: misc: mic/scif: fix copy-paste error in scif_create_remote_lookup
gcc '-Wunused-but-set-variable' warning:
drivers/misc/mic/scif/scif_rma.c: In function 'scif_create_remote_lookup':
drivers/misc/mic/scif/scif_rma.c:373:25: warning:
variable 'vmalloc_num_pages' set but not used [-Wunused-but-set-variable]
'vmalloc_num_pages' should be used to determine if the address is
within the vmalloc range.
Fixes: ba612aa8b487 ("misc: mic: SCIF memory registration and unregistration")
Signed-off-by: YueHaibing <yuehaibing(a)huawei.com>
Cc: stable <stable(a)vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/misc/mic/scif/scif_rma.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/misc/mic/scif/scif_rma.c b/drivers/misc/mic/scif/scif_rma.c
index c824329f7012..0e4193cb08cf 100644
--- a/drivers/misc/mic/scif/scif_rma.c
+++ b/drivers/misc/mic/scif/scif_rma.c
@@ -416,7 +416,7 @@ static int scif_create_remote_lookup(struct scif_dev *remote_dev,
if (err)
goto error_window;
err = scif_map_page(&window->num_pages_lookup.lookup[j],
- vmalloc_dma_phys ?
+ vmalloc_num_pages ?
vmalloc_to_page(&window->num_pages[i]) :
virt_to_page(&window->num_pages[i]),
remote_dev);
--
2.19.2
+cc stable(a)vger.kernel.org
W dniu 2018-11-19 o 02:31, Mika Westerberg pisze:
> On Sun, Nov 18, 2018 at 07:13:18PM -0800, Krzysztof Olędzki wrote:
>> Hello Mika, Rafael, Greg,
>
> Hi,
>
>> Would it be possible to include the following two patches in 4.9-stable:
>> - "ACPI / watchdog: Prefer iTCO_wdt on Lenovo Z50-70"
>> - "ACPI / watchdog: Prefer iTCO_wdt always when WDAT table uses RTC SRAM"
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/com…
>> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/com…
>>
>> Context: I just upgrade one of my servers from 4.4.161 to 4.9.137 and
>> run into a problem of not working RTC and watchdog. Adding these two
>> patches fixed the issue. No changes were necessary for them to be applied.
>
> I think the best way to get these included in stable trees is to send
> the commit ids with the above explanation to stable(a)vger.kernel.org.
Thank you Mika! I forgot how the process works. :/
The commits are:
a0a37862a4e1844793d39aca9ccb8fecbdcb8659
5a802a7a285c8877ca872e44eeb0f06afcb5212f
It also looks like the first patch is already in 4.14-stable, just not
in 4.9.
- a0a37862a4e1844793d39aca9ccb8fecbdcb8659 was included in 4.14.51:
https://cdn.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.14.51
However, it does not look like the 2nd one has been included in 4.14
yet. Would it be then possible to add
5a802a7a285c8877ca872e44eeb0f06afcb5212f to both 4.9-stable and 4.14-stable?
The impacted system is:
Dell Inc. PowerEdge T110 II/0PM2CW, BIOS 2.10.0 05/24/2018
Krzysztof
From: Dexuan Cui <decui(a)microsoft.com>
This is a longstanding issue: if the vmbus upper-layer drivers try to
consume too many GPADLs, the host may return with an error
0xC0000044 (STATUS_QUOTA_EXCEEDED), but currently we forget to check
the creation_status, and hence we can pass an invalid GPADL handle
into the OPEN_CHANNEL message, and get an error code 0xc0000225 in
open_info->response.open_result.status, and finally we hang in
vmbus_open() -> "goto error_free_info" -> vmbus_teardown_gpadl().
With this patch, we can exit gracefully on STATUS_QUOTA_EXCEEDED.
Cc: Stephen Hemminger <sthemmin(a)microsoft.com>
Cc: K. Y. Srinivasan <kys(a)microsoft.com>
Cc: Haiyang Zhang <haiyangz(a)microsoft.com>
Cc: stable(a)vger.kernel.org
Signed-off-by: Dexuan Cui <decui(a)microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys(a)microsoft.com>
---
drivers/hv/channel.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
index f96a77b18bb9..ce0ba2062723 100644
--- a/drivers/hv/channel.c
+++ b/drivers/hv/channel.c
@@ -516,6 +516,14 @@ int vmbus_establish_gpadl(struct vmbus_channel *channel, void *kbuffer,
}
wait_for_completion(&msginfo->waitevent);
+ if (msginfo->response.gpadl_created.creation_status != 0) {
+ pr_err("Failed to establish GPADL: err = 0x%x\n",
+ msginfo->response.gpadl_created.creation_status);
+
+ ret = -EDQUOT;
+ goto cleanup;
+ }
+
if (channel->rescind) {
ret = -ENODEV;
goto cleanup;
--
2.19.1