06 Jan, 2019

29 commits

  • Since commit 9c2af1c7377a ("kbuild: add .DELETE_ON_ERROR special
    target"), the target file is automatically deleted on failure.

    The boilerplate code

    ... || { rm -f $@; false; }

    is unneeded.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Commit 3a2429e1faf4 ("kbuild: change if_changed_rule for multi-line
    recipe") and commit 4f0e3a57d6eb ("kbuild: Add support for DT binding
    schema checks") came in via different sub-systems.

    This is a follow-up cleanup.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • The only/last user of UIMAGE_IN/OUT was removed by commit 4722a3e6b716
    ("microblaze: fix multiple bugs in arch/microblaze/boot/Makefile").

    The input and output should always be $< and $@.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Currently, CONFIG_JUMP_LABEL just means "I _want_ to use jump label".

    The jump label is controlled by HAVE_JUMP_LABEL, which is defined
    like this:

    #if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL)
    # define HAVE_JUMP_LABEL
    #endif

    We can improve this by testing 'asm goto' support in Kconfig, then
    make JUMP_LABEL depend on CC_HAS_ASM_GOTO.

    Ugly #ifdef HAVE_JUMP_LABEL will go away, and CONFIG_JUMP_LABEL will
    match to the real kernel capability.

    Signed-off-by: Masahiro Yamada
    Acked-by: Michael Ellerman (powerpc)
    Tested-by: Sedat Dilek

    Masahiro Yamada
     
  • As mentioned in the info pages of gas, the '.align' pseudo op's
    interpretation of the alignment value is architecture specific.
    It might either be a byte value or taken to the power of two.

    On ARM it's actually the latter which leads to unnecessary large
    alignments of 16 bytes for 32 bit builds or 256 bytes for 64 bit
    builds.

    Fix this by switching to '.balign' instead which is consistent
    across all architectures.

    Signed-off-by: Mathias Krause
    Cc: Catalin Marinas
    Cc: Will Deacon
    Signed-off-by: Masahiro Yamada

    Mathias Krause
     
  • Coccinelle doesn't always have access to the values of named
    (#define) constants, and they may likely often be bound to true
    and false values anyway, resulting in false positives. So stop
    warning about them.

    Signed-off-by: Julia Lawall
    Signed-off-by: Masahiro Yamada

    Julia Lawall
     
  • Avoid reporting on the use of an iterator index variable when
    the variable is redeclared.

    Signed-off-by: Julia Lawall
    Signed-off-by: Masahiro Yamada

    Julia Lawall
     
  • This has never been used.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This commit removes redundant generic-y defines in
    arch/nds32/include/asm/Kbuild.

    [1] It is redundant to define the same generic-y in both
    arch/$(ARCH)/include/asm/Kbuild and
    arch/$(ARCH)/include/uapi/asm/Kbuild.

    Remove the following generic-y:

    bitsperlong.h
    bpf_perf_event.h
    errno.h
    fcntl.h
    ioctl.h
    ioctls.h
    mman.h
    shmbuf.h
    stat.h

    [2] It is redundant to define generic-y when arch-specific
    implementation exists in arch/$(ARCH)/include/asm/*.h

    Remove the following generic-y:

    ftrace.h

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • kernel/dma/Kconfig globally defines HAS_DMA as follows:

    config HAS_DMA
    bool
    depends on !NO_DMA
    default y

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Christoph Hellwig

    Masahiro Yamada
     
  • Pull thermal management updates from Zhang Rui:

    - Add locking for cooling device sysfs attribute in case the cooling
    device state is changed by userspace and thermal framework
    simultaneously. (Thara Gopinath)

    - Fix a problem that passive cooling is reset improperly after system
    suspend/resume. (Wei Wang)

    - Cleanup the driver/thermal/ directory by moving intel and qcom
    platform specific drivers to platform specific sub-directories. (Amit
    Kucheria)

    - Some trivial cleanups. (Lukasz Luba, Wolfram Sang)

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
    thermal/intel: fixup for Kconfig string parsing tightening up
    drivers: thermal: Move QCOM_SPMI_TEMP_ALARM into the qcom subdir
    drivers: thermal: Move various drivers for intel platforms into a subdir
    thermal: Fix locking in cooling device sysfs update cur_state
    Thermal: do not clear passive state during system sleep
    thermal: zx2967_thermal: simplify getting .driver_data
    thermal: st: st_thermal: simplify getting .driver_data
    thermal: spear_thermal: simplify getting .driver_data
    thermal: rockchip_thermal: simplify getting .driver_data
    thermal: int340x_thermal: int3400_thermal: simplify getting .driver_data
    thermal: remove unused function parameter

    Linus Torvalds
     
  • Pull thermal SoC updates from Eduardo Valentin:

    - Tegra DT binding documentation for Tegra194

    - Armada now supports ap806 and cp110

    - RCAR thermal now supports R8A774C0 and R8A77990

    - Fixes on thermal_hwmon, IMX, generic-ADC, ST, RCAR, Broadcom,
    Uniphier, QCOM, Tegra, PowerClamp, and Armada thermal drivers.

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal: (22 commits)
    thermal: generic-adc: Fix adc to temp interpolation
    thermal: rcar_thermal: add R8A77990 support
    dt-bindings: thermal: rcar-thermal: add R8A77990 support
    thermal: rcar_thermal: add R8A774C0 support
    dt-bindings: thermal: rcar-thermal: add R8A774C0 support
    dt-bindings: cp110: document the thermal interrupt capabilities
    dt-bindings: ap806: document the thermal interrupt capabilities
    MAINTAINERS: thermal: add entry for Marvell MVEBU thermal driver
    thermal: armada: add overheat interrupt support
    thermal: st: fix Makefile typo
    thermal: uniphier: Convert to SPDX identifier
    thermal/intel_powerclamp: Change to use DEFINE_SHOW_ATTRIBUTE macro
    thermal: tegra: soctherm: Change to use DEFINE_SHOW_ATTRIBUTE macro
    dt-bindings: thermal: tegra-bpmp: Add Tegra194 support
    thermal: imx: save one condition block for normal case of nvmem initialization
    thermal: imx: fix for dependency on cpu-freq
    thermal: tsens: qcom: do not create duplicate regmap debugfs entries
    thermal: armada: Use PTR_ERR_OR_ZERO in armada_thermal_probe_legacy()
    dt-bindings: thermal: rcar-gen3-thermal: All variants use 3 interrupts
    thermal: broadcom: use devm_thermal_zone_of_sensor_register
    ...

    Linus Torvalds
     
  • Pull ftrace sh build fix from Steven Rostedt:
    "It appears that the zero-day bot did find a bug in my sh build.

    And that I didn't have the bad code in my config file when I cross
    compiled it, although there are a few other errors in sh that makes it
    not build for me, I missed that I added one more"

    * tag 'trace-v4.21-1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    sh: ftrace: Fix missing parenthesis in WARN_ON()

    Linus Torvalds
     
  • Pull smb3 fixes from Steve French:
    "Three fixes, one for stable, one adds the (most secure) SMB3.1.1
    dialect to default list requested"

    * tag '4.21-smb3-small-fixes' of git://git.samba.org/sfrench/cifs-2.6:
    smb3: add smb3.1.1 to default dialect list
    cifs: fix confusing warning message on reconnect
    smb3: fix large reads on encrypted connections

    Linus Torvalds
     
  • Pull iomap maintainer update from Darrick Wong:
    "Christoph Hellwig and I have decided to take responsibility for the fs
    iomap code rather than let it languish further"

    * tag 'iomap-4.21-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
    iomap: take responsibility for the filesystem iomap code

    Linus Torvalds
     
  • Pull xfs fixlets from Darrick Wong:
    "Remove a couple of unnecessary local variables"

    * tag 'xfs-4.21-merge-3' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
    xfs: xfs_fsops: drop useless LIST_HEAD
    xfs: xfs_buf: drop useless LIST_HEAD

    Linus Torvalds
     
  • Pull ceph updates from Ilya Dryomov:
    "A fairly quiet round: a couple of messenger performance improvements
    from myself and a few cap handling fixes from Zheng"

    * tag 'ceph-for-4.21-rc1' of git://github.com/ceph/ceph-client:
    ceph: don't encode inode pathes into reconnect message
    ceph: update wanted caps after resuming stale session
    ceph: skip updating 'wanted' caps if caps are already issued
    ceph: don't request excl caps when mount is readonly
    ceph: don't update importing cap's mseq when handing cap export
    libceph: switch more to bool in ceph_tcp_sendmsg()
    libceph: use MSG_SENDPAGE_NOTLAST with ceph_tcp_sendpage()
    libceph: use sock_no_sendpage() as a fallback in ceph_tcp_sendpage()
    libceph: drop last_piece logic from write_partial_message_data()
    ceph: remove redundant assignment
    ceph: cleanup splice_dentry()

    Linus Torvalds
     
  • Fixes build break on most ARM/ARM64 defconfigs:

    lib/genalloc.c: In function 'gen_pool_add_virt':
    lib/genalloc.c:190:10: error: implicit declaration of function 'vzalloc_node'; did you mean 'kzalloc_node'?
    lib/genalloc.c:190:8: warning: assignment to 'struct gen_pool_chunk *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
    lib/genalloc.c: In function 'gen_pool_destroy':
    lib/genalloc.c:254:3: error: implicit declaration of function 'vfree'; did you mean 'kfree'?

    Fixes: 6862d2fc8185 ('lib/genalloc.c: use vzalloc_node() to allocate the bitmap')
    Cc: Huang Shijie
    Cc: Andrew Morton
    Cc: Alexey Skidanov
    Signed-off-by: Olof Johansson
    Signed-off-by: Linus Torvalds

    Olof Johansson
     
  • Pull vfs mount API prep from Al Viro:
    "Mount API prereqs.

    Mostly that's LSM mount options cleanups. There are several minor
    fixes in there, but nothing earth-shattering (leaks on failure exits,
    mostly)"

    * 'mount.part1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (27 commits)
    mount_fs: suppress MAC on MS_SUBMOUNT as well as MS_KERNMOUNT
    smack: rewrite smack_sb_eat_lsm_opts()
    smack: get rid of match_token()
    smack: take the guts of smack_parse_opts_str() into a new helper
    LSM: new method: ->sb_add_mnt_opt()
    selinux: rewrite selinux_sb_eat_lsm_opts()
    selinux: regularize Opt_... names a bit
    selinux: switch away from match_token()
    selinux: new helper - selinux_add_opt()
    LSM: bury struct security_mnt_opts
    smack: switch to private smack_mnt_opts
    selinux: switch to private struct selinux_mnt_opts
    LSM: hide struct security_mnt_opts from any generic code
    selinux: kill selinux_sb_get_mnt_opts()
    LSM: turn sb_eat_lsm_opts() into a method
    nfs_remount(): don't leak, don't ignore LSM options quietly
    btrfs: sanitize security_mnt_opts use
    selinux; don't open-code a loop in sb_finish_set_opts()
    LSM: split ->sb_set_mnt_opts() out of ->sb_kern_mount()
    new helper: security_sb_eat_lsm_opts()
    ...

    Linus Torvalds
     
  • Pull trivial vfs updates from Al Viro:
    "A few cleanups + Neil's namespace_unlock() optimization"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    exec: make prepare_bprm_creds static
    genheaders: %-s had been there since v6; %-*s - since v7
    VFS: use synchronize_rcu_expedited() in namespace_unlock()
    iov_iter: reduce code duplication

    Linus Torvalds
     
  • Pull MIPS fixes from Paul Burton:
    "A few early MIPS fixes for 4.21:

    - The Broadcom BCM63xx platform sees a fix for resetting the BCM6368
    ethernet switch, and the removal of a platform device we've never
    had a driver for.

    - The Alchemy platform sees a few fixes for bitrot that occurred
    within the past few cycles.

    - We now enable vectored interrupt support for the MediaTek MT7620
    SoC, which makes sense since they're supported by the SoC but in
    this case also works around a bug relating to the location of
    exception vectors when using a recent version of U-Boot.

    - The atomic64_fetch_*_relaxed() family of functions see a fix for a
    regression in MIPS64 kernels since v4.19.

    - Cavium Octeon III CN7xxx systems will now disable their RGMII
    interfaces rather than attempt to enable them & warn about the lack
    of support for doing so, as they did since initial CN7xxx ethernet
    support was added in v4.7.

    - The Microsemi/Microchip MSCC SoCs gain a MAINTAINERS entry.

    - .mailmap now provides consistency for Dengcheng Zhu's name &
    current email address"

    * tag 'mips_fixes_4.21_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
    MIPS: OCTEON: mark RGMII interface disabled on OCTEON III
    MIPS: Fix a R10000_LLSC_WAR logic in atomic.h
    MIPS: BCM63XX: drop unused and broken DSP platform device
    mailmap: Update name spelling and email for Dengcheng Zhu
    MIPS: ralink: Select CONFIG_CPU_MIPSR2_IRQ_VI on MT7620/8
    MAINTAINERS: Add a maintainer for MSCC MIPS SoCs
    MIPS: Alchemy: update dma masks for devboard devices
    MIPS: Alchemy: update cpu-feature-overrides
    MIPS: Alchemy: drop DB1000 IrDA support bits
    MIPS: alchemy: cpu_all_mask is forbidden for clock event devices
    MIPS: BCM63XX: fix switch core reset on BCM6368

    Linus Torvalds
     
  • Pull powerpc fixes from Michael Ellerman:
    "A fix for the recent access_ok() change, which broke the build. We
    recently added a use of type in order to squash a warning elsewhere
    about type being unused.

    A handful of other minor build fixes, and one defconfig update.

    Thanks to: Christian Lamparter, Christophe Leroy, Diana Craciun,
    Mathieu Malaterre"

    * tag 'powerpc-4.21-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
    powerpc: Drop use of 'type' from access_ok()
    KVM: PPC: Book3S HV: radix: Fix uninitialized var build error
    powerpc/configs: Add PPC4xx_OCM to ppc40x_defconfig
    powerpc/4xx/ocm: Fix phys_addr_t printf warnings
    powerpc/4xx/ocm: Fix compilation error due to PAGE_KERNEL usage
    powerpc/fsl: Fixed warning: orphan section `__btb_flush_fixup'

    Linus Torvalds
     
  • Pull parisc fix from Helge Deller:
    "Fix boot issues with a series of parisc servers since kernel 4.20.

    Remapping kernel text with set_kernel_text_rw() missed to remap from
    lowest up until the highest huge-page aligned kernel text addresss"

    * 'parisc-4.21-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
    parisc: Remap hugepage-aligned pages in set_kernel_text_rw()

    Linus Torvalds
     
  • Pull h8300 fix from Yoshinori Sato:
    "Build problem fix"

    * tag 'for-4.21' of git://git.sourceforge.jp/gitroot/uclinux-h8/linux:
    h8300: pci: Remove local declaration of pcibios_penalize_isa_irq

    Linus Torvalds
     
  • Pull more ARM SoC updates from Olof Johansson:
    "A few updates that we merged late but are low risk for regressions for
    other platforms (and a few other straggling patches):

    - I mis-tagged the 'drivers' branch, and missed 3 patches. Merged in
    here. They're for a driver for the PL353 SRAM controller and a
    build fix for the qualcomm scm driver.

    - A new platform, RDA Micro RDA8810PL (Cortex-A5 w/ integrated
    Vivante GPU, 256MB RAM, Wifi). This includes some acked
    platform-specific drivers (serial, etc). This also include DTs for
    two boards with this SoC, OrangePi 2G and OrangePi i86.

    - i.MX8 is another new platform (NXP, 4x Cortex-A53 + Cortex-M4, 4K
    video playback offload). This is the first i.MX 64-bit SoC.

    - Some minor updates to Samsung boards (adding a few peripherals in
    DTs).

    - Small rework for SMP bootup on STi platforms.

    - A couple of TEE driver fixes.

    - A couple of new config options (bcm2835 thermal, Uniphier MDMAC)
    enabled in defconfigs"

    * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (27 commits)
    ARM: multi_v7_defconfig: enable CONFIG_UNIPHIER_MDMAC
    arm64: defconfig: Re-enable bcm2835-thermal driver
    MAINTAINERS: Add entry for RDA Micro SoC architecture
    tty: serial: Add RDA8810PL UART driver
    ARM: dts: rda8810pl: Add interrupt support for UART
    dt-bindings: serial: Document RDA Micro UART
    ARM: dts: rda8810pl: Add timer support
    ARM: dts: Add devicetree for OrangePi i96 board
    ARM: dts: Add devicetree for OrangePi 2G IoT board
    ARM: dts: Add devicetree for RDA8810PL SoC
    ARM: Prepare RDA8810PL SoC
    dt-bindings: arm: Document RDA8810PL and reference boards
    dt-bindings: Add RDA Micro vendor prefix
    ARM: sti: remove pen_release and boot_lock
    arm64: dts: exynos: Add Bluetooth chip to TM2(e) boards
    arm64: dts: imx8mq-evk: enable watchdog
    arm64: dts: imx8mq: add watchdog devices
    MAINTAINERS: add i.MX8 DT path to i.MX architecture
    arm64: add support for i.MX8M EVK board
    arm64: add basic DTS for i.MX8MQ
    ...

    Linus Torvalds
     
  • Pull arm64 fixes from Will Deacon:
    "I'm safely chained back up to my desk, so please pull these arm64
    fixes for -rc1 that address some issues that cropped up during the
    merge window:

    - Prevent KASLR from mapping the top page of the virtual address
    space

    - Fix device-tree probing of SDEI driver

    - Fix incorrect register offset definition in Hisilicon DDRC PMU
    driver

    - Fix compilation issue with older binutils not liking unsigned
    immediates

    - Fix uapi headers so that libc can provide its own sigcontext
    definition

    - Fix handling of private compat syscalls

    - Hook up compat io_pgetevents() syscall for 32-bit tasks

    - Cleanup to arm64 Makefile (including now to avoid silly conflicts)"

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: compat: Hook up io_pgetevents() for 32-bit tasks
    arm64: compat: Don't pull syscall number from regs in arm_compat_syscall
    arm64: compat: Avoid sending SIGILL for unallocated syscall numbers
    arm64/sve: Disentangle from
    arm64/sve: ptrace: Fix SVE_PT_REGS_OFFSET definition
    drivers/perf: hisi: Fixup one DDRC PMU register offset
    arm64: replace arm64-obj-* in Makefile with obj-*
    arm64: kaslr: Reserve size of ARM64_MEMSTART_ALIGN in linear region
    firmware: arm_sdei: Fix DT platform device creation
    firmware: arm_sdei: fix wrong of_node_put() in init function
    arm64: entry: remove unused register aliases
    arm64: smp: Fix compilation error

    Linus Torvalds
     
  • Pull ARM updates from Russell King:
    "Included in this update:

    - Florian Fainelli noticed that userspace segfaults caused by the
    lack of kernel-userspace helpers was hard to diagnose; we now issue
    a warning when userspace tries to use the helpers but the kernel
    has them disabled.

    - Ben Dooks wants compatibility for the old ATAG serial number with
    DT systems.

    - Some cleanup of assembly by Nicolas Pitre.

    - User accessors optimisation from Vincent Whitchurch.

    - More robust kdump on SMP systems from Yufen Wang.

    - Sebastian Andrzej Siewior noticed problems with the SMP "boot_lock"
    on RT kernels, and so we convert the Versatile series of platforms
    to use a raw spinlock instead, consolidating the Versatile
    implementation. We entirely remove the boot_lock on OMAP systems,
    where it's unnecessary. Further patches for other systems will be
    submitted for the following merge window.

    - Start switching old StrongARM-11x0 systems to use gpiolib rather
    than their private GPIO implementation - mostly PCMCIA bits.

    - ARM Kconfig cleanups.

    - Cleanup a mostly harmless mistake in the recent Spectre patch in
    4.20 (which had the effect that data that can be placed into the
    init sections was incorrectly always placed in the rodata section)"

    * tag 'for-4.21' of git://git.armlinux.org.uk/~rmk/linux-arm: (25 commits)
    ARM: omap2: remove unnecessary boot_lock
    ARM: versatile: rename and comment SMP implementation
    ARM: versatile: convert boot_lock to raw
    ARM: vexpress/realview: consolidate immitation CPU hotplug
    ARM: fix the cockup in the previous patch
    ARM: sa1100/cerf: switch to using gpio_led_register_device()
    ARM: sa1100/assabet: switch to using gpio leds
    ARM: sa1100/assabet: add gpio keys support for right-hand two buttons
    ARM: sa1111: remove legacy GPIO interfaces
    pcmcia: sa1100*: remove redundant bvd1/bvd2 setting
    ARM: pxa/lubbock: switch PCMCIA to MAX1600 library
    ARM: pxa/mainstone: switch PCMCIA to MAX1600 library and gpiod APIs
    ARM: sa1100/neponset: switch PCMCIA to MAX1600 library and gpiod APIs
    ARM: sa1100/jornada720: switch PCMCIA to gpiod APIs
    pcmcia: add MAX1600 library
    ARM: sa1100: explicitly register sa11x0-pcmcia devices
    ARM: 8813/1: Make aligned 2-byte getuser()/putuser() atomic on ARMv6+
    ARM: 8812/1: Optimise copy_{from/to}_user for !CPU_USE_DOMAINS
    ARM: 8811/1: always list both ldrd/strd registers explicitly
    ARM: 8808/1: kexec:offline panic_smp_self_stop CPU
    ...

    Linus Torvalds
     
  • Pull arch/csky updates from Guo Ren:
    "Here are three main features (cpu_hotplug, basic ftrace, basic perf)
    and some bugfixes:

    Features:
    - Add CPU-hotplug support for SMP
    - Add ftrace with function trace and function graph trace
    - Add Perf support
    - Add EM_CSKY_OLD 39
    - optimize kernel panic print.
    - remove syscall_exit_work

    Bugfixes:
    - fix abiv2 mmap(... O_SYNC) failure
    - fix gdb coredump error
    - remove vdsp implement for kernel
    - fix qemu failure to bootup sometimes
    - fix ftrace call-graph panic
    - fix device tree node reference leak
    - remove meaningless header-y
    - fix save hi,lo,dspcr regs in switch_stack
    - remove unused members in processor.h"

    * tag 'csky-for-linus-4.21' of git://github.com/c-sky/csky-linux:
    csky: Add perf support for C-SKY
    csky: Add EM_CSKY_OLD 39
    clocksource/drivers/c-sky: fixup ftrace call-graph panic
    csky: ftrace call graph supported.
    csky: basic ftrace supported
    csky: remove unused members in processor.h
    csky: optimize kernel panic print.
    csky: stacktrace supported.
    csky: CPU-hotplug supported for SMP
    clocksource/drivers/c-sky: fixup qemu fail to bootup sometimes.
    csky: fixup save hi,lo,dspcr regs in switch_stack.
    csky: remove syscall_exit_work
    csky: fixup remove vdsp implement for kernel.
    csky: bugfix gdb coredump error.
    csky: fixup abiv2 mmap(... O_SYNC) failed.
    csky: define syscall_get_arch()
    elf-em.h: add EM_CSKY
    csky: remove meaningless header-y
    csky: Don't leak device tree node reference

    Linus Torvalds
     
  • Merge more updates from Andrew Morton:

    - procfs updates

    - various misc bits

    - lib/ updates

    - epoll updates

    - autofs

    - fatfs

    - a few more MM bits

    * emailed patches from Andrew Morton : (58 commits)
    mm/page_io.c: fix polled swap page in
    checkpatch: add Co-developed-by to signature tags
    docs: fix Co-Developed-by docs
    drivers/base/platform.c: kmemleak ignore a known leak
    fs: don't open code lru_to_page()
    fs/: remove caller signal_pending branch predictions
    mm/: remove caller signal_pending branch predictions
    arch/arc/mm/fault.c: remove caller signal_pending_branch predictions
    kernel/sched/: remove caller signal_pending branch predictions
    kernel/locking/mutex.c: remove caller signal_pending branch predictions
    mm: select HAVE_MOVE_PMD on x86 for faster mremap
    mm: speed up mremap by 20x on large regions
    mm: treewide: remove unused address argument from pte_alloc functions
    initramfs: cleanup incomplete rootfs
    scripts/gdb: fix lx-version string output
    kernel/kcov.c: mark write_comp_data() as notrace
    kernel/sysctl: add panic_print into sysctl
    panic: add options to print system info when panic happens
    bfs: extra sanity checking and static inode bitmap
    exec: separate MM_ANONPAGES and RLIMIT_STACK accounting
    ...

    Linus Torvalds
     

05 Jan, 2019

11 commits

  • Some non-generic ia64 configs don't build swiotlb, and thus should not
    pull in the generic non-coherent DMA infrastructure.

    Fixes: 68c608345c ("swiotlb: remove dma_mark_clean")
    Reported-by: Tony Luck
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Tony Luck
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • This has been broken forever, and nobody ever really noticed because
    it's purely a performance issue.

    Long long ago, in commit 6175ddf06b61 ("x86: Clean up mem*io functions")
    Brian Gerst simplified the memory copies to and from iomem, since on
    x86, the instructions to access iomem are exactly the same as the
    regular instructions.

    That is technically true, and things worked, and nobody said anything.
    Besides, back then the regular memcpy was pretty simple and worked fine.

    Nobody noticed except for David Laight, that is. David has a testing a
    TLP monitor he was writing for an FPGA, and has been occasionally
    complaining about how memcpy_toio() writes things one byte at a time.

    Which is completely unacceptable from a performance standpoint, even if
    it happens to technically work.

    The reason it's writing one byte at a time is because while it's
    technically true that accesses to iomem are the same as accesses to
    regular memory on x86, the _granularity_ (and ordering) of accesses
    matter to iomem in ways that they don't matter to regular cached memory.

    In particular, when ERMS is set, we default to using "rep movsb" for
    larger memory copies. That is indeed perfectly fine for real memory,
    since the whole point is that the CPU is going to do cacheline
    optimizations and executes the memory copy efficiently for cached
    memory.

    With iomem? Not so much. With iomem, "rep movsb" will indeed work, but
    it will copy things one byte at a time. Slowly and ponderously.

    Now, originally, back in 2010 when commit 6175ddf06b61 was done, we
    didn't use ERMS, and this was much less noticeable.

    Our normal memcpy() was simpler in other ways too.

    Because in fact, it's not just about using the string instructions. Our
    memcpy() these days does things like "read and write overlapping values"
    to handle the last bytes of the copy. Again, for normal memory,
    overlapping accesses isn't an issue. For iomem? It can be.

    So this re-introduces the specialized memcpy_toio(), memcpy_fromio() and
    memset_io() functions. It doesn't particularly optimize them, but it
    tries to at least not be horrid, or do overlapping accesses. In fact,
    this uses the existing __inline_memcpy() function that we still had
    lying around that uses our very traditional "rep movsl" loop followed by
    movsw/movsb for the final bytes.

    Somebody may decide to try to improve on it, but if we've gone almost a
    decade with only one person really ever noticing and complaining, maybe
    it's not worth worrying about further, once it's not _completely_ broken?

    Reported-by: David Laight
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • This actually enables the __put_user_goto() functionality in
    unsafe_put_user().

    For an example of the effect of this, this is the code generated for the

    unsafe_put_user(signo, &infop->si_signo, Efault);

    in the waitid() system call:

    movl %ecx,(%rbx) # signo, MEM[(struct __large_struct *)_2]

    It's just one single store instruction, along with generating an
    exception table entry pointing to the Efault label case in case that
    instruction faults.

    Before, we would generate this:

    xorl %edx, %edx
    movl %ecx,(%rbx) # signo, MEM[(struct __large_struct *)_3]
    testl %edx, %edx
    jne .L309

    with the exception table generated for that 'mov' instruction causing us
    to jump to a stub that set %edx to -EFAULT and then jumped back to the
    'testl' instruction.

    So not only do we now get rid of the extra code in the normal sequence,
    we also avoid unnecessarily keeping that extra error register live
    across it all.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • This is finally the actual reason for the odd error handling in the
    "unsafe_get/put_user()" functions, introduced over three years ago.

    Using a "jump to error label" interface is somewhat odd, but very
    convenient as a programming interface, and more importantly, it fits
    very well with simply making the target be the exception handler address
    directly from the inline asm.

    The reason it took over three years to actually do this? We need "asm
    goto" support for it, which only became the default on x86 last year.
    It's now been a year that we've forced asm goto support (see commit
    e501ce957a78 "x86: Force asm-goto"), and so let's just do it here too.

    [ Side note: this commit was originally done back in 2016. The above
    commentary about timing is obviously about it only now getting merged
    into my real upstream tree - Linus ]

    Sadly, gcc still only supports "asm goto" with asms that do not have any
    outputs, so we are limited to only the put_user case for this. Maybe in
    several more years we can do the get_user case too.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • The alternative coding patch for parisc in kernel 4.20 broke booting
    machines with PA8500-PA8700 CPUs. The problem is, that for such machines
    the parisc kernel automatically utilizes huge pages to access kernel
    text code, but the set_kernel_text_rw() function, which is used shortly
    before applying any alternative patches, didn't used the correctly
    hugepage-aligned addresses to remap the kernel text read-writeable.

    Fixes: 3847dab77421 ("parisc: Add alternative coding infrastructure")
    Cc: [4.20]
    Signed-off-by: Helge Deller

    Helge Deller
     
  • Merge in a few missing patches from the pull request (my copy of the
    branch was behind the staged version in linux-next).

    * next/drivers:
    memory: pl353: Add driver for arm pl353 static memory controller
    dt-bindings: memory: Add pl353 smc controller devicetree binding information
    firmware: qcom: scm: fix compilation error when disabled

    Signed-off-by: Olof Johansson

    Olof Johansson
     
  • Enable the UniPhier MIO DMAC driver. This is used as the DMA engine
    for accelerating the SD/eMMC controller drivers.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Olof Johansson

    Masahiro Yamada
     
  • swap_readpage() wants to do polling to bring in pages if asked to, but
    it doesn't mark the bio as being polled. Additionally, the looping
    around the blk_poll() check isn't correct - if we get a zero return, we
    should call io_schedule(), we can't just assume that the bio has
    completed. The regular bio->bi_private check should be used for that.

    Link: http://lkml.kernel.org/r/e15243a8-2cdf-c32c-ecee-f289377c8ef9@kernel.dk
    Signed-off-by: Jens Axboe
    Reviewed-by: Andrew Morton
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jens Axboe
     
  • As per Documentation/process/submitting-patches, Co-developed-by is a
    valid signature.

    This commit removes the warning.

    Link: http://lkml.kernel.org/r/1544808928-20002-3-git-send-email-jorge.ramirez-ortiz@linaro.org
    Signed-off-by: Jorge Ramirez-Ortiz
    Cc: Greg Kroah-Hartman
    Cc: Himanshu Jha
    Cc: Joe Perches
    Cc: Jonathan Cameron
    Cc: Jonathan Corbet
    Cc: Niklas Cassel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jorge Ramirez-Ortiz
     
  • The accepted terminology will be Co-developed-by therefore lose the
    capital letter from now on.

    Link: http://lkml.kernel.org/r/1544808928-20002-2-git-send-email-jorge.ramirez-ortiz@linaro.org
    Signed-off-by: Jorge Ramirez-Ortiz
    Acked-by: Himanshu Jha
    Cc: Jonathan Cameron
    Cc: Joe Perches
    Cc: Greg Kroah-Hartman
    Cc: Niklas Cassel
    Cc: Jonathan Corbet
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jorge Ramirez-Ortiz
     
  • unreferenced object 0xffff808ec6dc5a80 (size 128):
    comm "swapper/0", pid 1, jiffies 4294938063 (age 2560.530s)
    hex dump (first 32 bytes):
    ff ff ff ff 00 00 00 00 6b 6b 6b 6b 6b 6b 6b 6b ........kkkkkkkk
    6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
    backtrace:
    [] kmem_cache_alloc_trace+0x430/0x500
    [] platform_device_register_full+0xbc/0x1e8
    [] acpi_create_platform_device+0x370/0x450
    [] acpi_default_enumeration+0x34/0x78
    [] acpi_bus_attach+0x2dc/0x3e0
    [] acpi_bus_attach+0x108/0x3e0
    [] acpi_bus_attach+0x108/0x3e0
    [] acpi_bus_scan+0xb0/0x110
    [] acpi_scan_init+0x1a8/0x410
    [] acpi_init+0x408/0x49c
    [] do_one_initcall+0x178/0x7f4
    [] kernel_init_freeable+0x9d4/0xa9c
    [] kernel_init+0x18/0x138
    [] ret_from_fork+0x10/0x1c
    [] 0xffffffffffffffff

    Then, faddr2line pointed out this line,

    /*
    * This memory isn't freed when the device is put,
    * I don't have a nice idea for that though. Conceptually
    * dma_mask in struct device should not be a pointer.
    * See http://thread.gmane.org/gmane.linux.kernel.pci/9081
    */
    pdev->dev.dma_mask =
    kmalloc(sizeof(*pdev->dev.dma_mask), GFP_KERNEL);

    Since this leak has existed for more than 8 years and it does not
    reference other parts of the memory, let kmemleak ignore it, so users
    don't need to waste time reporting this in the future.

    Link: http://lkml.kernel.org/r/20181206160751.36211-1-cai@gmx.us
    Signed-off-by: Qian Cai
    Reviewed-by: Andrew Morton
    Cc: Greg Kroah-Hartman
    Cc: "Rafael J . Wysocki"
    Cc: Catalin Marinas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Qian Cai