10 Feb, 2020

1 commit

  • Pull more Kbuild updates from Masahiro Yamada:

    - fix randconfig to generate a sane .config

    - rename hostprogs-y / always to hostprogs / always-y, which are more
    natual syntax.

    - optimize scripts/kallsyms

    - fix yes2modconfig and mod2yesconfig

    - make multiple directory targets ('make foo/ bar/') work

    * tag 'kbuild-v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    kbuild: make multiple directory targets work
    kconfig: Invalidate all symbols after changing to y or m.
    kallsyms: fix type of kallsyms_token_table[]
    scripts/kallsyms: change table to store (strcut sym_entry *)
    scripts/kallsyms: rename local variables in read_symbol()
    kbuild: rename hostprogs-y/always to hostprogs/always-y
    kbuild: fix the document to use extra-y for vmlinux.lds
    kconfig: fix broken dependency in randconfig-generated .config

    Linus Torvalds
     

08 Feb, 2020

1 commit

  • Pull Documentation fixes from Jonathan Corbet:
    "A handful of small documentation fixes that wandered in"

    * tag 'docs-5.6-2' of git://git.lwn.net/linux:
    Allow git builds of Sphinx
    Documentation: changes.rst: update several outdated project URLs
    Documentation: build warnings related to missing blank lines after explicit markups has been fixed
    mailmap: add entry for Tiezhu Yang
    Documentation/ko_KR/howto: Update a broken link
    Documentation/ko_KR/howto: Update broken web addresses
    docs/locking: Fix outdated section names

    Linus Torvalds
     

06 Feb, 2020

1 commit

  • When using a non-release version of Sphinx, from a local build (with
    improvements for kernel doc handling, why not),

    sphinx-build --version

    reports versions of the form

    sphinx-build 3.0.0+/4703d9119972

    i.e. base version, a plus symbol, slash, and the start of the git hash
    of whatever repository the command is run in (no, not the hash that
    was used to build Sphinx!).

    This patch fixes the installation check in sphinx-pre-install to
    recognise such version output.

    Signed-off-by: Stephen Kitt
    Link: https://lore.kernel.org/r/20200124183316.1719218-1-steve@sk2.org
    Signed-off-by: Jonathan Corbet

    Stephen Kitt
     

05 Feb, 2020

1 commit

  • Since commit 89b9060987d9 ("kconfig: Add yes2modconfig and
    mod2yesconfig targets.") forgot to clear SYMBOL_VALID bit after
    changing to y or m, these targets did not save the changes.
    Call sym_clear_all_valid() so that all symbols are revalidated.

    Fixes: 89b9060987d9 ("kconfig: Add yes2modconfig and mod2yesconfig targets.")
    Signed-off-by: Tetsuo Handa
    Signed-off-by: Masahiro Yamada

    Tetsuo Handa
     

04 Feb, 2020

5 commits

  • Since 5.5-rc1 the last user of this function is gone, so remove the
    functionality.

    See commit
    2ad9d7747c10 ("netfilter: conntrack: free extension area immediately")
    for details.

    Link: http://lkml.kernel.org/r/20191212223442.22141-1-fw@strlen.de
    Signed-off-by: Florian Westphal
    Acked-by: Andrew Morton
    Acked-by: David Rientjes
    Reviewed-by: David Hildenbrand
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: Joonsoo Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Florian Westphal
     
  • The symbol table is extended every 10000 addition by using realloc(),
    where data copy might occur to the new buffer.

    To decrease the amount of possible data copy, let's change the table
    to store the pointer.

    The symbol type + symbol name part is appended at the end of
    (struct sym_entry), and allocated together with the struct body.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • I will use 'sym' for the point to struce sym_entry in the next commit.
    Rename 'sym', 'stype' to 'name', 'type', which are more intuitive.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • In old days, the "host-progs" syntax was used for specifying host
    programs. It was renamed to the current "hostprogs-y" in 2004.

    It is typically useful in scripts/Makefile because it allows Kbuild to
    selectively compile host programs based on the kernel configuration.

    This commit renames like follows:

    always -> always-y
    hostprogs-y -> hostprogs

    So, scripts/Makefile will look like this:

    always-$(CONFIG_BUILD_BIN2C) += ...
    always-$(CONFIG_KALLSYMS) += ...
    ...
    hostprogs := $(always-y) $(always-m)

    I think this makes more sense because a host program is always a host
    program, irrespective of the kernel configuration. We want to specify
    which ones to compile by CONFIG options, so always-y will be handier.

    The "always", "hostprogs-y", "hostprogs-m" will be kept for backward
    compatibility for a while.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Running randconfig on arm64 using KCONFIG_SEED=0x40C5E904 (e.g. on v5.5)
    produces the .config with CONFIG_EFI=y and CONFIG_CPU_BIG_ENDIAN=y,
    which does not meet the !CONFIG_CPU_BIG_ENDIAN dependency.

    This is because the user choice for CONFIG_CPU_LITTLE_ENDIAN vs
    CONFIG_CPU_BIG_ENDIAN is set by randomize_choice_values() after the
    value of CONFIG_EFI is calculated.

    When this happens, the has_changed flag should be set.

    Currently, it takes the result from the last iteration. It should
    accumulate all the results of the loop.

    Fixes: 3b9a19e08960 ("kconfig: loop as long as we changed some symbols in randconfig")
    Reported-by: Vincenzo Frascino
    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

02 Feb, 2020

2 commits

  • Pull Kconfig updates from Masahiro Yamada:

    - add 'yes2modconfig' and 'mod2yesconfig' targets (useful mainly for
    turning syzbot configs into more modular ones as a step to minimizing
    the result)

    - sanitize help text

    - various code cleanups

    * tag 'kconfig-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    kconfig: fix documentation typos
    kconfig: fix an "implicit declaration of function" warning
    kconfig: fix nesting of symbol help text
    kconfig: distinguish between dependencies and visibility in help text
    kconfig: list all definitions of a symbol in help text
    kconfig: Add yes2modconfig and mod2yesconfig targets.
    kconfig: use $(PERL) in Makefile
    kconfig: fix too deep indentation in Makefile
    kconfig: localmodconfig: fix indentation for closing brace
    kconfig: localmodconfig: remove unused $config
    kconfig: squash prop_alloc() into menu_add_prop()
    kconfig: remove sym from struct property
    kconfig: remove 'prompt' argument from menu_add_prop()
    kconfig: move prompt handling to menu_add_prompt() from menu_add_prop()
    kconfig: remove 'prompt' symbol
    kconfig: drop T_WORD from the RHS of 'prompt' symbol
    kconfig: use parent->dep as the parentdep of 'menu'
    kconfig: remove the rootmenu check in menu_add_prop()

    Linus Torvalds
     
  • Pull Kbuild updates from Masahiro Yamada:

    - detect missing include guard in UAPI headers

    - do not create orphan built-in.a or obj-y objects

    - generate modules.builtin more simply, and drop tristate.conf

    - simplify built-in initramfs creation

    - make linux-headers deb package thinner

    - optimize the deb package build script

    - misc cleanups

    * tag 'kbuild-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (34 commits)
    builddeb: split libc headers deployment out into a function
    builddeb: split kernel headers deployment out into a function
    builddeb: remove redundant make for ARCH=um
    builddeb: avoid invoking sub-shells where possible
    builddeb: remove redundant $objtree/
    builddeb: match temporary directory name to the package name
    builddeb: remove unneeded files in hdrobjfiles for headers package
    kbuild: use -S instead of -E for precise cc-option test in Kconfig
    builddeb: allow selection of .deb compressor
    kbuild: remove 'Building modules, stage 2.' log
    kbuild: remove *.tmp file when filechk fails
    kbuild: remove PYTHON2 variable
    modpost: assume STT_SPARC_REGISTER is defined
    gen_initramfs.sh: remove intermediate cpio_list on errors
    initramfs: refactor the initramfs build rules
    gen_initramfs.sh: always output cpio even without -o option
    initramfs: add default_cpio_list, and delete -d option support
    initramfs: generate dependency list and cpio at the same time
    initramfs: specify $(src)/gen_initramfs.sh as a prerequisite in Makefile
    initramfs: make initramfs compression choice non-optional
    ...

    Linus Torvalds
     

01 Feb, 2020

3 commits

  • Pull updates from Andrew Morton:
    "Most of -mm and quite a number of other subsystems: hotfixes, scripts,
    ocfs2, misc, lib, binfmt, init, reiserfs, exec, dma-mapping, kcov.

    MM is fairly quiet this time. Holidays, I assume"

    * emailed patches from Andrew Morton : (118 commits)
    kcov: ignore fault-inject and stacktrace
    include/linux/io-mapping.h-mapping: use PHYS_PFN() macro in io_mapping_map_atomic_wc()
    execve: warn if process starts with executable stack
    reiserfs: prevent NULL pointer dereference in reiserfs_insert_item()
    init/main.c: fix misleading "This architecture does not have kernel memory protection" message
    init/main.c: fix quoted value handling in unknown_bootoption
    init/main.c: remove unnecessary repair_env_string in do_initcall_level
    init/main.c: log arguments and environment passed to init
    fs/binfmt_elf.c: coredump: allow process with empty address space to coredump
    fs/binfmt_elf.c: coredump: delete duplicated overflow check
    fs/binfmt_elf.c: coredump: allocate core ELF header on stack
    fs/binfmt_elf.c: make BAD_ADDR() unlikely
    fs/binfmt_elf.c: better codegen around current->mm
    fs/binfmt_elf.c: don't copy ELF header around
    fs/binfmt_elf.c: fix ->start_code calculation
    fs/binfmt_elf.c: smaller code generation around auxv vector fill
    lib/find_bit.c: uninline helper _find_next_bit()
    lib/find_bit.c: join _find_next_bit{_le}
    uapi: rename ext2_swab() to swab() and share globally in swab.h
    lib/scatterlist.c: adjust indentation in __sg_alloc_table
    ...

    Linus Torvalds
     
  • Add "issus" and correct it as "issues".

    Link: http://lkml.kernel.org/r/20200105221950.8384-1-luca@lucaceresoli.net
    Signed-off-by: Luca Ceresoli
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Luca Ceresoli
     
  • Here are some of the common spelling mistakes and typos that I've found
    while fixing up spelling mistakes in the kernel. Most of them still
    exist in more than two source files.

    Link: http://lkml.kernel.org/r/20191229143626.51238-1-xndchn@gmail.com
    Signed-off-by: Xiong
    Cc: Colin Ian King
    Cc: Stephen Boyd
    Cc: Paul Walmsley
    Cc: Chris Paterson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Xiong
     

30 Jan, 2020

3 commits

  • Pull devicetree updates from Rob Herring:

    - Update dtc to upstream v1.5.1-22-gc40aeb60b47a (plus 1 revert)

    - Fix for DMA coherent devices on Power

    - Rework and simplify the DT phandle cache code

    - DT schema conversions for LEDS, gpio-leds, STM32 dfsdm, STM32 UART,
    STM32 ROMEM, STM32 watchdog, STM32 DMAs, STM32 mlahb, STM32 RTC,
    STM32 RCC, STM32 syscon, rs485, Renesas rCar CSI2, Faraday FTIDE010,
    DWC2, Arm idle-states, Allwinner legacy resets, PRCM and clocks,
    Allwinner H6 OPP, Allwinner AHCI, Allwinner MBUS, Allwinner A31 CSI,
    Allwinner h/w codec, Allwinner A10 system ctrl, Allwinner SRAM,
    Allwinner USB PHY, Renesas CEU, generic PCI host, Arm Versatile PCI

    - New binding schemas for SATA and PATA controllers, TI and Infineon VR
    controllers, MAX31730

    - New compatible strings for i.MX8QM, WCN3991, renesas,r8a77961-wdt,
    renesas,etheravb-r8a77961

    - Add USB 'super-speed-plus' as a documented speed

    - Vendor prefixes for broadmobi, calaosystems, kam, and mps

    - Clean-up the multiple flavors of ST-Ericsson vendor prefixes

    * tag 'devicetree-for-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (66 commits)
    scripts/dtc: Revert "yamltree: Ensure consistent bracketing of properties with phandles"
    of: Add OF_DMA_DEFAULT_COHERENT & select it on powerpc
    dt-bindings: leds: Convert gpio-leds to DT schema
    dt-bindings: leds: Convert common LED binding to schema
    dt-bindings: PCI: Convert generic host binding to DT schema
    dt-bindings: PCI: Convert Arm Versatile binding to DT schema
    dt-bindings: Be explicit about installing deps
    dt-bindings: stm32: convert dfsdm to json-schema
    dt-bindings: serial: Convert STM32 UART to json-schema
    dt-bindings: serial: Convert rs485 bindings to json-schema
    dt-bindings: timer: Use non-empty ranges in example
    dt-bindings: arm-boards: typo fix
    dt-bindings: Add TI and Infineon VR Controllers as trivial devices
    dt-binding: usb: add "super-speed-plus"
    dt-bindings: rcar-csi2: Convert bindings to json-schema
    dt-bindings: iio: adc: ad7606: Fix wrong maxItems value
    dt-bindings: Convert Faraday FTIDE010 to DT schema
    dt-bindings: Create DT bindings for PATA controllers
    dt-bindings: Create DT bindings for SATA controllers
    dt: bindings: add vendor prefix for Kamstrup A/S
    ...

    Linus Torvalds
     
  • Pull documentation updates from Jonathan Corbet:
    "It has been a relatively quiet cycle for documentation, but there's
    still a couple of things of note:

    - Conversion of the NFS documentation to RST

    - A new document on how to help with documentation (and a maintainer
    profile entry too)

    Plus the usual collection of typo fixes, etc"

    * tag 'docs-5.6' of git://git.lwn.net/linux: (40 commits)
    docs: filesystems: add overlayfs to index.rst
    docs: usb: remove some broken references
    scripts/find-unused-docs: Fix massive false positives
    docs: nvdimm: use ReST notation for subsection
    zram: correct documentation about sysfs node of huge page writeback
    Documentation: zram: various fixes in zram.rst
    Add a maintainer entry profile for documentation
    Add a document on how to contribute to the documentation
    docs: Keep up with the location of NoUri
    Documentation: Call out example SYM_FUNC_* usage as x86-specific
    Documentation: nfs: fault_injection: convert to ReST
    Documentation: nfs: pnfs-scsi-server: convert to ReST
    Documentation: nfs: convert pnfs-block-server to ReST
    Documentation: nfs: idmapper: convert to ReST
    Documentation: convert nfsd-admin-interfaces to ReST
    Documentation: nfs-rdma: convert to ReST
    Documentation: nfsroot.rst: COSMETIC: refill a paragraph
    Documentation: nfsroot.txt: convert to ReST
    Documentation: convert nfs.txt to ReST
    Documentation: filesystems: convert vfat.txt to RST
    ...

    Linus Torvalds
     
  • Pull tty/serial driver updates from Greg KH:
    "Here are the big set of tty and serial driver updates for 5.6-rc1

    Included in here are:
    - dummy_con cleanups (touches lots of arch code)
    - sysrq logic cleanups (touches lots of serial drivers)
    - samsung driver fixes (wasn't really being built)
    - conmakeshash move to tty subdir out of scripts
    - lots of small tty/serial driver updates

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'tty-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (140 commits)
    tty: n_hdlc: Use flexible-array member and struct_size() helper
    tty: baudrate: SPARC supports few more baud rates
    tty: baudrate: Synchronise baud_table[] and baud_bits[]
    tty: serial: meson_uart: Add support for kernel debugger
    serial: imx: fix a race condition in receive path
    serial: 8250_bcm2835aux: Document struct bcm2835aux_data
    serial: 8250_bcm2835aux: Use generic remapping code
    serial: 8250_bcm2835aux: Allocate uart_8250_port on stack
    serial: 8250_bcm2835aux: Suppress register_port error on -EPROBE_DEFER
    serial: 8250_bcm2835aux: Suppress clk_get error on -EPROBE_DEFER
    serial: 8250_bcm2835aux: Fix line mismatch on driver unbind
    serial_core: Remove unused member in uart_port
    vt: Correct comment documenting do_take_over_console()
    vt: Delete comment referencing non-existent unbind_con_driver()
    arch/xtensa/setup: Drop dummy_con initialization
    arch/x86/setup: Drop dummy_con initialization
    arch/unicore32/setup: Drop dummy_con initialization
    arch/sparc/setup: Drop dummy_con initialization
    arch/sh/setup: Drop dummy_con initialization
    arch/s390/setup: Drop dummy_con initialization
    ...

    Linus Torvalds
     

29 Jan, 2020

10 commits

  • Pull networking updates from David Miller:

    1) Add WireGuard

    2) Add HE and TWT support to ath11k driver, from John Crispin.

    3) Add ESP in TCP encapsulation support, from Sabrina Dubroca.

    4) Add variable window congestion control to TIPC, from Jon Maloy.

    5) Add BCM84881 PHY driver, from Russell King.

    6) Start adding netlink support for ethtool operations, from Michal
    Kubecek.

    7) Add XDP drop and TX action support to ena driver, from Sameeh
    Jubran.

    8) Add new ipv4 route notifications so that mlxsw driver does not have
    to handle identical routes itself. From Ido Schimmel.

    9) Add BPF dynamic program extensions, from Alexei Starovoitov.

    10) Support RX and TX timestamping in igc, from Vinicius Costa Gomes.

    11) Add support for macsec HW offloading, from Antoine Tenart.

    12) Add initial support for MPTCP protocol, from Christoph Paasch,
    Matthieu Baerts, Florian Westphal, Peter Krystad, and many others.

    13) Add Octeontx2 PF support, from Sunil Goutham, Geetha sowjanya, Linu
    Cherian, and others.

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1469 commits)
    net: phy: add default ARCH_BCM_IPROC for MDIO_BCM_IPROC
    udp: segment looped gso packets correctly
    netem: change mailing list
    qed: FW 8.42.2.0 debug features
    qed: rt init valid initialization changed
    qed: Debug feature: ilt and mdump
    qed: FW 8.42.2.0 Add fw overlay feature
    qed: FW 8.42.2.0 HSI changes
    qed: FW 8.42.2.0 iscsi/fcoe changes
    qed: Add abstraction for different hsi values per chip
    qed: FW 8.42.2.0 Additional ll2 type
    qed: Use dmae to write to widebus registers in fw_funcs
    qed: FW 8.42.2.0 Parser offsets modified
    qed: FW 8.42.2.0 Queue Manager changes
    qed: FW 8.42.2.0 Expose new registers and change windows
    qed: FW 8.42.2.0 Internal ram offsets modifications
    MAINTAINERS: Add entry for Marvell OcteonTX2 Physical Function driver
    Documentation: net: octeontx2: Add RVU HW and drivers overview
    octeontx2-pf: ethtool RSS config support
    octeontx2-pf: Add basic ethtool support
    ...

    Linus Torvalds
     
  • Deploy user-space headers (linux-libc-dev package) in a separate
    function for readability.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Deploy kernel headers (linux-headers package) in a separate function
    for readability.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • The kernel build has already been done before builddeb is invoked.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • The commands surrounded by ( ... ) is run in a sub-shell, but you do
    not have to spawn a sub-shell for every single line.

    Use just one ( ... ) for creating debian/hdrsrcfiles.

    For tar, use -C option instead.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • This script works only when it is invoked in the $objtree, that is,
    it is already relying on $objtree is '.'

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • The temporary directory names, debian/hdrtmp (linux-headers package)
    vs debian/headertmp (linux-libc-dev package), are confusing.

    Matching the directory name to the package name is clearer, IMHO.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • - We do not need tools/objtool/fixdep or tools/objtool/sync-check.sh
    for building external modules. Including tools/objtool/objtool is
    enough.

    - gcc-common.h is a check-in file. I do not see any point to search
    for it in objtree.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Pull objtool updates from Ingo Molnar:
    "The main changes are to move the ORC unwind table sorting from early
    init to build-time - this speeds up booting.

    No change in functionality intended"

    * 'core-objtool-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/unwind/orc: Fix !CONFIG_MODULES build warning
    x86/unwind/orc: Remove boot-time ORC unwind tables sorting
    scripts/sorttable: Implement build-time ORC unwind table sorting
    scripts/sorttable: Rename 'sortextable' to 'sorttable'
    scripts/sortextable: Refactor the do_func() function
    scripts/sortextable: Remove dead code
    scripts/sortextable: Clean up the code to meet the kernel coding style better
    scripts/sortextable: Rewrite error/success handling

    Linus Torvalds
     
  • This reverts upstream commit 18d7b2f4ee45fec422b7d82bab0b3c762ee907e4. A
    revert in upstream dtc is pending.

    This commit didn't work for properties such as 'interrupt-map' that have
    phandle in the middle of an entry. It would also not work for a 0 or -1
    phandle value that acts as a NULL.

    Signed-off-by: Rob Herring

    Rob Herring
     

28 Jan, 2020

3 commits

  • scripts/find-unused-docs.sh invokes scripts/kernel-doc to find out if a
    source file contains kerneldoc or not.

    However, as it passes the no longer supported "-text" option to
    scripts/kernel-doc, the latter prints out its help text, causing all
    files to be considered containing kerneldoc.

    Get rid of these false positives by removing the no longer supported
    "-text" option from the scripts/kernel-doc invocation.

    Cc: stable@vger.kernel.org # 4.16+
    Fixes: b05142675310d2ac ("scripts: kernel-doc: get rid of unused output formats")
    Signed-off-by: Geert Uytterhoeven
    Link: https://lore.kernel.org/r/20200127093107.26401-1-geert+renesas@glider.be
    Signed-off-by: Jonathan Corbet

    Geert Uytterhoeven
     
  • Pull ioremap updates from Christoph Hellwig:
    "Remove the ioremap_nocache API (plus wrappers) that are always
    identical to ioremap"

    * tag 'ioremap-5.6' of git://git.infradead.org/users/hch/ioremap:
    remove ioremap_nocache and devm_ioremap_nocache
    MIPS: define ioremap_nocache to ioremap

    Linus Torvalds
     
  • Pull arm64 updates from Will Deacon:
    "The changes are a real mixed bag this time around.

    The only scary looking one from the diffstat is the uapi change to
    asm-generic/mman-common.h, but this has been acked by Arnd and is
    actually just adding a pair of comments in an attempt to prevent
    allocation of some PROT values which tend to get used for
    arch-specific purposes. We'll be using them for Branch Target
    Identification (a CFI-like hardening feature), which is currently
    under review on the mailing list.

    New architecture features:

    - Support for Armv8.5 E0PD, which benefits KASLR in the same way as
    KPTI but without the overhead. This allows KPTI to be disabled on
    CPUs that are not affected by Meltdown, even is KASLR is enabled.

    - Initial support for the Armv8.5 RNG instructions, which claim to
    provide access to a high bandwidth, cryptographically secure
    hardware random number generator. As well as exposing these to
    userspace, we also use them as part of the KASLR seed and to seed
    the crng once all CPUs have come online.

    - Advertise a bunch of new instructions to userspace, including
    support for Data Gathering Hint, Matrix Multiply and 16-bit
    floating point.

    Kexec:

    - Cleanups in preparation for relocating with the MMU enabled

    - Support for loading crash dump kernels with kexec_file_load()

    Perf and PMU drivers:

    - Cleanups and non-critical fixes for a couple of system PMU drivers

    FPU-less (aka broken) CPU support:

    - Considerable fixes to support CPUs without the FP/SIMD extensions,
    including their presence in heterogeneous systems. Good luck
    finding a 64-bit userspace that handles this.

    Modern assembly function annotations:

    - Start migrating our use of ENTRY() and ENDPROC() over to the
    new-fangled SYM_{CODE,FUNC}_{START,END} macros, which are intended
    to aid debuggers

    Kbuild:

    - Cleanup detection of LSE support in the assembler by introducing
    'as-instr'

    - Remove compressed Image files when building clean targets

    IP checksumming:

    - Implement optimised IPv4 checksumming routine when hardware offload
    is not in use. An IPv6 version is in the works, pending testing.

    Hardware errata:

    - Work around Cortex-A55 erratum #1530923

    Shadow call stack:

    - Work around some issues with Clang's integrated assembler not
    liking our perfectly reasonable assembly code

    - Avoid allocating the X18 register, so that it can be used to hold
    the shadow call stack pointer in future

    ACPI:

    - Fix ID count checking in IORT code. This may regress broken
    firmware that happened to work with the old implementation, in
    which case we'll have to revert it and try something else

    - Fix DAIF corruption on return from GHES handler with pseudo-NMIs

    Miscellaneous:

    - Whitelist some CPUs that are unaffected by Spectre-v2

    - Reduce frequency of ASID rollover when KPTI is compiled in but
    inactive

    - Reserve a couple of arch-specific PROT flags that are already used
    by Sparc and PowerPC and are planned for later use with BTI on
    arm64

    - Preparatory cleanup of our entry assembly code in preparation for
    moving more of it into C later on

    - Refactoring and cleanup"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (73 commits)
    arm64: acpi: fix DAIF manipulation with pNMI
    arm64: kconfig: Fix alignment of E0PD help text
    arm64: Use v8.5-RNG entropy for KASLR seed
    arm64: Implement archrandom.h for ARMv8.5-RNG
    arm64: kbuild: remove compressed images on 'make ARCH=arm64 (dist)clean'
    arm64: entry: Avoid empty alternatives entries
    arm64: Kconfig: select HAVE_FUTEX_CMPXCHG
    arm64: csum: Fix pathological zero-length calls
    arm64: entry: cleanup sp_el0 manipulation
    arm64: entry: cleanup el0 svc handler naming
    arm64: entry: mark all entry code as notrace
    arm64: assembler: remove smp_dmb macro
    arm64: assembler: remove inherit_daif macro
    ACPI/IORT: Fix 'Number of IDs' handling in iort_id_map()
    mm: Reserve asm-generic prot flags 0x10 and 0x20 for arch use
    arm64: Use macros instead of hard-coded constants for MAIR_EL1
    arm64: Add KRYO{3,4}XX CPU cores to spectre-v2 safe list
    arm64: kernel: avoid x18 in __cpu_soft_restart
    arm64: kvm: stop treating register x18 as caller save
    arm64/lib: copy_page: avoid x18 register in assembler code
    ...

    Linus Torvalds
     

26 Jan, 2020

2 commits


23 Jan, 2020

2 commits

  • Alexei Starovoitov says:

    ====================
    pull-request: bpf-next 2020-01-22

    The following pull-request contains BPF updates for your *net-next* tree.

    We've added 92 non-merge commits during the last 16 day(s) which contain
    a total of 320 files changed, 7532 insertions(+), 1448 deletions(-).

    The main changes are:

    1) function by function verification and program extensions from Alexei.

    2) massive cleanup of selftests/bpf from Toke and Andrii.

    3) batched bpf map operations from Brian and Yonghong.

    4) tcp congestion control in bpf from Martin.

    5) bulking for non-map xdp_redirect form Toke.

    6) bpf_send_signal_thread helper from Yonghong.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • When trying to compile with CONFIG_DEBUG_INFO_BTF enabled, I got this
    error:

    % make -s
    Failed to generate BTF for vmlinux
    Try to disable CONFIG_DEBUG_INFO_BTF
    make[3]: *** [vmlinux] Error 1

    Compiling again without -s shows the true error (that pahole is
    missing), but since this is fatal, we should show the error
    unconditionally on stderr as well, not silence it using the `info`
    function. With this patch:

    % make -s
    BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
    Failed to generate BTF for vmlinux
    Try to disable CONFIG_DEBUG_INFO_BTF
    make[3]: *** [vmlinux] Error 1

    Signed-off-by: Chris Down
    Signed-off-by: Daniel Borkmann
    Acked-by: Andrii Nakryiko
    Link: https://lore.kernel.org/bpf/20200122000110.GA310073@chrisdown.name

    Chris Down
     

22 Jan, 2020

1 commit

  • Currently, -E (stop after the preprocessing stage) is used to check
    whether the given compiler flag is supported.

    While it is faster than -S (or -c), it can be false-positive. You need
    to run the compilation proper to check the flag more precisely.

    For example, -E and -S disagree about the support of
    "--param asan-instrument-allocas=1".

    $ gcc -Werror --param asan-instrument-allocas=1 -E -x c /dev/null -o /dev/null
    $ echo $?
    0

    $ gcc -Werror --param asan-instrument-allocas=1 -S -x c /dev/null -o /dev/null
    cc1: error: invalid --param name ‘asan-instrument-allocas’; did you mean ‘asan-instrument-writes’?
    $ echo $?
    1

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

21 Jan, 2020

1 commit


20 Jan, 2020

1 commit

  • Scenario 1, ARMv7
    =================

    If code in arch/arm/kernel/ftrace.c would operate on mcount() pointer
    the following may be generated:

    00000230 :
    230: b5f8 push {r3, r4, r5, r6, r7, lr}
    232: b500 push {lr}
    234: f7ff fffe bl 0
    234: R_ARM_THM_CALL __gnu_mcount_nc
    238: f240 0600 movw r6, #0
    238: R_ARM_THM_MOVW_ABS_NC __gnu_mcount_nc
    23c: f8d0 1180 ldr.w r1, [r0, #384] ; 0x180

    FTRACE currently is not able to deal with it:

    WARNING: CPU: 0 PID: 0 at .../kernel/trace/ftrace.c:1979 ftrace_bug+0x1ad/0x230()
    ...
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.116-... #1
    ...
    [] (unwind_backtrace) from [] (show_stack+0x11/0x14)
    [] (show_stack) from [] (dump_stack+0x81/0xa8)
    [] (dump_stack) from [] (warn_slowpath_common+0x69/0x90)
    [] (warn_slowpath_common) from [] (warn_slowpath_null+0x17/0x1c)
    [] (warn_slowpath_null) from [] (ftrace_bug+0x1ad/0x230)
    [] (ftrace_bug) from [] (ftrace_process_locs+0x27d/0x444)
    [] (ftrace_process_locs) from [] (ftrace_init+0x91/0xe8)
    [] (ftrace_init) from [] (start_kernel+0x34b/0x358)
    [] (start_kernel) from [] (0x308095)
    ---[ end trace cb88537fdc8fa200 ]---
    ftrace failed to modify [] prealloc_fixed_plts+0x8/0x60
    actual: 44:f2:e1:36
    ftrace record flags: 0
    (0) expected tramp: c03143e9

    Scenario 2, ARMv4T
    ==================

    ftrace: allocating 14435 entries in 43 pages
    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 0 at kernel/trace/ftrace.c:2029 ftrace_bug+0x204/0x310
    CPU: 0 PID: 0 Comm: swapper Not tainted 4.19.5 #1
    Hardware name: Cirrus Logic EDB9302 Evaluation Board
    [] (unwind_backtrace) from [] (show_stack+0x20/0x2c)
    [] (show_stack) from [] (dump_stack+0x20/0x30)
    [] (dump_stack) from [] (__warn+0xdc/0x104)
    [] (__warn) from [] (warn_slowpath_null+0x4c/0x5c)
    [] (warn_slowpath_null) from [] (ftrace_bug+0x204/0x310)
    [] (ftrace_bug) from [] (ftrace_init+0x3b4/0x4d4)
    [] (ftrace_init) from [] (start_kernel+0x20c/0x410)
    [] (start_kernel) from [] ( (null))
    ---[ end trace 0506a2f5dae6b341 ]---
    ftrace failed to modify
    [] perf_trace_sys_exit+0x5c/0xe8
    actual: 1e:ff:2f:e1
    Initializing ftrace call sites
    ftrace record flags: 0
    (0)
    expected tramp: c000fb24

    The analysis for this problem has been already performed previously,
    refer to the link below.

    Fix the above problems by allowing only selected reloc types in
    __mcount_loc. The list itself comes from the legacy recordmcount.pl
    script.

    Link: https://lore.kernel.org/lkml/56961010.6000806@pengutronix.de/
    Cc: stable@vger.kernel.org
    Fixes: ed60453fa8f8 ("ARM: 6511/1: ftrace: add ARM support for C version of recordmcount")
    Signed-off-by: Alexander Sverdlin
    Acked-by: Steven Rostedt (VMware)
    Signed-off-by: Russell King

    Alex Sverdlin
     

16 Jan, 2020

1 commit


15 Jan, 2020

2 commits

  • Bartosz Golaszewski reports that when "make {menu,n,g,x}config" fails
    due to missing packages, a temporary file is left over, which is not
    ignored by git.

    For example, if GTK+ is not installed:

    $ make gconfig
    *
    * Unable to find the GTK+ installation. Please make sure that
    * the GTK+ 2.0 development package is correctly installed.
    * You need gtk+-2.0 gmodule-2.0 libglade-2.0
    *
    scripts/kconfig/Makefile:208: recipe for target 'scripts/kconfig/gconf-cfg' failed
    make[1]: *** [scripts/kconfig/gconf-cfg] Error 1
    Makefile:567: recipe for target 'gconfig' failed
    make: *** [gconfig] Error 2
    $ git status
    HEAD detached at v5.4
    Untracked files:
    (use "git add ..." to include in what will be committed)

    scripts/kconfig/gconf-cfg.tmp

    nothing added to commit but untracked files present (use "git add" to track)

    This is because the check scripts are run with filechk, which misses
    to clean up the temporary file on failure.

    When the line

    { $(filechk_$(1)); } > $@.tmp;

    ... fails, it exits immediately due to the 'set -e'. Use trap to make
    sure to delete the temporary file on exit.

    For extra safety, I replaced $@.tmp with $(dot-target).tmp to make it
    a hidden file.

    Reported-by: Bartosz Golaszewski
    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Commit 8d5290149ee1 ("[SPARC]: Deal with glibc changing macro names in
    modpost.c") was more than 14 years ago. STT_SPARC_REGISTER is hopefully
    defined in elf.h of recent C libraries.

    Signed-off-by: Masahiro Yamada
    Acked-by: David S. Miller

    Masahiro Yamada