30 Dec, 2020

1 commit

  • Make mandatory in include/asm-generic/Kbuild and
    remove all arch/*/include/asm/local64.h arch-specific files since they
    only #include .

    This fixes build errors on arch/c6x/ and arch/nios2/ for
    block/blk-iocost.c.

    Build-tested on 21 of 25 arch-es. (tools problems on the others)

    Yes, we could even rename to
    and change all #includes to use
    instead.

    Link: https://lkml.kernel.org/r/20201227024446.17018-1-rdunlap@infradead.org
    Signed-off-by: Randy Dunlap
    Suggested-by: Christoph Hellwig
    Reviewed-by: Masahiro Yamada
    Cc: Jens Axboe
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: Peter Zijlstra
    Cc: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

22 Dec, 2020

1 commit


20 Dec, 2020

1 commit

  • Split off from prev patch in the series that implements the syscall.

    Link: https://lkml.kernel.org/r/20201121144401.3727659-4-willemdebruijn.kernel@gmail.com
    Signed-off-by: Willem de Bruijn
    Cc: Al Viro
    Cc: Arnd Bergmann
    Cc: Matthew Wilcox (Oracle)
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Willem de Bruijn
     

17 Dec, 2020

1 commit

  • Pull TIF_NOTIFY_SIGNAL updates from Jens Axboe:
    "This sits on top of of the core entry/exit and x86 entry branch from
    the tip tree, which contains the generic and x86 parts of this work.

    Here we convert the rest of the archs to support TIF_NOTIFY_SIGNAL.

    With that done, we can get rid of JOBCTL_TASK_WORK from task_work and
    signal.c, and also remove a deadlock work-around in io_uring around
    knowing that signal based task_work waking is invoked with the sighand
    wait queue head lock.

    The motivation for this work is to decouple signal notify based
    task_work, of which io_uring is a heavy user of, from sighand. The
    sighand lock becomes a huge contention point, particularly for
    threaded workloads where it's shared between threads. Even outside of
    threaded applications it's slower than it needs to be.

    Roman Gershman reported that his networked
    workload dropped from 1.6M QPS at 80% CPU to 1.0M QPS at 100% CPU
    after io_uring was changed to use TIF_NOTIFY_SIGNAL. The time was all
    spent hammering on the sighand lock, showing 57% of the CPU time there
    [1].

    There are further cleanups possible on top of this. One example is
    TIF_PATCH_PENDING, where a patch already exists to use
    TIF_NOTIFY_SIGNAL instead. Hopefully this will also lead to more
    consolidation, but the work stands on its own as well"

    [1] https://github.com/axboe/liburing/issues/215

    * tag 'tif-task_work.arch-2020-12-14' of git://git.kernel.dk/linux-block: (28 commits)
    io_uring: remove 'twa_signal_ok' deadlock work-around
    kernel: remove checking for TIF_NOTIFY_SIGNAL
    signal: kill JOBCTL_TASK_WORK
    io_uring: JOBCTL_TASK_WORK is no longer used by task_work
    task_work: remove legacy TWA_SIGNAL path
    sparc: add support for TIF_NOTIFY_SIGNAL
    riscv: add support for TIF_NOTIFY_SIGNAL
    nds32: add support for TIF_NOTIFY_SIGNAL
    ia64: add support for TIF_NOTIFY_SIGNAL
    h8300: add support for TIF_NOTIFY_SIGNAL
    c6x: add support for TIF_NOTIFY_SIGNAL
    alpha: add support for TIF_NOTIFY_SIGNAL
    xtensa: add support for TIF_NOTIFY_SIGNAL
    arm: add support for TIF_NOTIFY_SIGNAL
    microblaze: add support for TIF_NOTIFY_SIGNAL
    hexagon: add support for TIF_NOTIFY_SIGNAL
    csky: add support for TIF_NOTIFY_SIGNAL
    openrisc: add support for TIF_NOTIFY_SIGNAL
    sh: add support for TIF_NOTIFY_SIGNAL
    um: add support for TIF_NOTIFY_SIGNAL
    ...

    Linus Torvalds
     

16 Dec, 2020

6 commits

  • …/git/arnd/asm-generic

    Pull asm-generic cross-architecture timer cleanup from Arnd Bergmann:
    "This cleans up two ancient timer features that were never completed in
    the past, CONFIG_GENERIC_CLOCKEVENTS and CONFIG_ARCH_USES_GETTIMEOFFSET.

    There was only one user left for the ARCH_USES_GETTIMEOFFSET variant
    of clocksource implementations, the ARM EBSA110 platform. Rather than
    changing to use modern timekeeping, we remove the platform entirely as
    Russell no longer uses his machine and nobody else seems to have one
    any more.

    The conditional code for using arch_gettimeoffset() is removed as a
    result.

    For CONFIG_GENERIC_CLOCKEVENTS, there are still a couple of platforms
    not using clockevent drivers: parisc, ia64, most of m68k, and one Arm
    platform. These all do timer ticks slighly differently, and this gets
    cleaned up to the point they at least all call the same helper
    function.

    Instead of most platforms using 'select GENERIC_CLOCKEVENTS' in
    Kconfig, the polarity is now reversed, with the few remaining ones
    selecting LEGACY_TIMER_TICK instead"

    * tag 'asm-generic-timers-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
    timekeeping: default GENERIC_CLOCKEVENTS to enabled
    timekeeping: remove xtime_update
    m68k: remove timer_interrupt() function
    m68k: change remaining timers to legacy_timer_tick
    m68k: m68328: use legacy_timer_tick()
    m68k: sun3/sun3c: use legacy_timer_tick
    m68k: split heartbeat out of timer function
    m68k: coldfire: use legacy_timer_tick()
    parisc: use legacy_timer_tick
    ARM: rpc: use legacy_timer_tick
    ia64: convert to legacy_timer_tick
    timekeeping: add CONFIG_LEGACY_TIMER_TICK
    timekeeping: remove arch_gettimeoffset
    net: remove am79c961a driver
    ARM: remove ebsa110 platform

    Linus Torvalds
     
  • …ernel/git/arnd/asm-generic

    Pull asm-generic mmu-context cleanup from Arnd Bergmann:
    "This is a cleanup series from Nicholas Piggin, preparing for later
    changes. The asm/mmu_context.h header are generalized and common code
    moved to asm-gneneric/mmu_context.h.

    This saves a bit of code and makes it easier to change in the future"

    * tag 'asm-generic-mmu-context-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic: (25 commits)
    h8300: Fix generic mmu_context build
    m68k: mmu_context: Fix Sun-3 build
    xtensa: use asm-generic/mmu_context.h for no-op implementations
    x86: use asm-generic/mmu_context.h for no-op implementations
    um: use asm-generic/mmu_context.h for no-op implementations
    sparc: use asm-generic/mmu_context.h for no-op implementations
    sh: use asm-generic/mmu_context.h for no-op implementations
    s390: use asm-generic/mmu_context.h for no-op implementations
    riscv: use asm-generic/mmu_context.h for no-op implementations
    powerpc: use asm-generic/mmu_context.h for no-op implementations
    parisc: use asm-generic/mmu_context.h for no-op implementations
    openrisc: use asm-generic/mmu_context.h for no-op implementations
    nios2: use asm-generic/mmu_context.h for no-op implementations
    nds32: use asm-generic/mmu_context.h for no-op implementations
    mips: use asm-generic/mmu_context.h for no-op implementations
    microblaze: use asm-generic/mmu_context.h for no-op implementations
    m68k: use asm-generic/mmu_context.h for no-op implementations
    ia64: use asm-generic/mmu_context.h for no-op implementations
    hexagon: use asm-generic/mmu_context.h for no-op implementations
    csky: use asm-generic/mmu_context.h for no-op implementations
    ...

    Linus Torvalds
     
  • Merge misc updates from Andrew Morton:

    - a few random little subsystems

    - almost all of the MM patches which are staged ahead of linux-next
    material. I'll trickle to post-linux-next work in as the dependents
    get merged up.

    Subsystems affected by this patch series: kthread, kbuild, ide, ntfs,
    ocfs2, arch, and mm (slab-generic, slab, slub, dax, debug, pagecache,
    gup, swap, shmem, memcg, pagemap, mremap, hmm, vmalloc, documentation,
    kasan, pagealloc, memory-failure, hugetlb, vmscan, z3fold, compaction,
    oom-kill, migration, cma, page-poison, userfaultfd, zswap, zsmalloc,
    uaccess, zram, and cleanups).

    * emailed patches from Andrew Morton : (200 commits)
    mm: cleanup kstrto*() usage
    mm: fix fall-through warnings for Clang
    mm: slub: convert sysfs sprintf family to sysfs_emit/sysfs_emit_at
    mm: shmem: convert shmem_enabled_show to use sysfs_emit_at
    mm:backing-dev: use sysfs_emit in macro defining functions
    mm: huge_memory: convert remaining use of sprintf to sysfs_emit and neatening
    mm: use sysfs_emit for struct kobject * uses
    mm: fix kernel-doc markups
    zram: break the strict dependency from lzo
    zram: add stat to gather incompressible pages since zram set up
    zram: support page writeback
    mm/process_vm_access: remove redundant initialization of iov_r
    mm/zsmalloc.c: rework the list_add code in insert_zspage()
    mm/zswap: move to use crypto_acomp API for hardware acceleration
    mm/zswap: fix passing zero to 'PTR_ERR' warning
    mm/zswap: make struct kernel_param_ops definitions const
    userfaultfd/selftests: hint the test runner on required privilege
    userfaultfd/selftests: fix retval check for userfaultfd_open()
    userfaultfd/selftests: always dump something in modes
    userfaultfd: selftests: make __{s,u}64 format specifiers portable
    ...

    Linus Torvalds
     
  • DISCONTIGMEM was intended to provide more efficient support for systems
    with holes in their physical address space that FLATMEM did.

    Yet, it's overhead in terms of the memory consumption seems to
    overweight the savings on the unused memory map.

    For a ARAnyM system with 16 MBytes of FastRAM configured, the memory
    usage reported after page allocator initialization is

    Memory: 23828K/30720K available (3206K kernel code, 535K rwdata, 936K rodata, 768K init, 193K bss, 6892K reserved, 0K cma-reserved)

    and with DISCONTIGMEM disabled and with relatively large hole in the memory
    map it is:

    Memory: 23864K/30720K available (3197K kernel code, 516K rwdata, 936K rodata, 764K init, 179K bss, 6856K reserved, 0K cma-reserved)

    Moreover, since m68k already has custom pfn_valid() it is possible to
    define HAVE_ARCH_PFN_VALID to enable freeing of unused memory map. The
    minimal size of a hole that can be freed should not be less than
    MAX_ORDER_NR_PAGES so to achieve more substantial memory savings let
    m68k also define custom FORCE_MAX_ZONEORDER.

    With FORCE_MAX_ZONEORDER set to 9 memory usage becomes:

    Memory: 23880K/30720K available (3197K kernel code, 516K rwdata, 936K rodata, 764K init, 179K bss, 6840K reserved, 0K cma-reserved)

    Link: https://lkml.kernel.org/r/20201101170454.9567-14-rppt@kernel.org
    Signed-off-by: Mike Rapoport
    Cc: Alexey Dobriyan
    Cc: Catalin Marinas
    Cc: Geert Uytterhoeven
    Cc: Greg Ungerer
    Cc: John Paul Adrian Glaubitz
    Cc: Jonathan Corbet
    Cc: Matt Turner
    Cc: Meelis Roos
    Cc: Michael Schmitz
    Cc: Russell King
    Cc: Tony Luck
    Cc: Vineet Gupta
    Cc: Will Deacon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • The pg_data_map and pg_data_table arrays as well as page_to_pfn() and
    pfn_to_page() are required only for DISCONTIGMEM. Other memory models can
    use the generic definitions in asm-generic/memory_model.h.

    Link: https://lkml.kernel.org/r/20201101170454.9567-13-rppt@kernel.org
    Signed-off-by: Mike Rapoport
    Cc: Alexey Dobriyan
    Cc: Catalin Marinas
    Cc: Geert Uytterhoeven
    Cc: Greg Ungerer
    Cc: John Paul Adrian Glaubitz
    Cc: Jonathan Corbet
    Cc: Matt Turner
    Cc: Meelis Roos
    Cc: Michael Schmitz
    Cc: Russell King
    Cc: Tony Luck
    Cc: Vineet Gupta
    Cc: Will Deacon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • The pg_data_t node structures and their initialization currently depends on
    !CONFIG_SINGLE_MEMORY_CHUNK. Since they are required only for DISCONTIGMEM
    make this dependency explicit and replace usage of
    CONFIG_SINGLE_MEMORY_CHUNK with CONFIG_DISCONTIGMEM where appropriate.

    The CONFIG_SINGLE_MEMORY_CHUNK was implicitly disabled on the ColdFire MMU
    variant, although it always presumed a single memory bank. As there is no
    actual need for DISCONTIGMEM in this case, make sure that ColdFire MMU
    systems set CONFIG_SINGLE_MEMORY_CHUNK to 'y'.

    Link: https://lkml.kernel.org/r/20201101170454.9567-12-rppt@kernel.org
    Signed-off-by: Mike Rapoport
    Cc: Alexey Dobriyan
    Cc: Catalin Marinas
    Cc: Geert Uytterhoeven
    Cc: Greg Ungerer
    Cc: John Paul Adrian Glaubitz
    Cc: Jonathan Corbet
    Cc: Matt Turner
    Cc: Meelis Roos
    Cc: Michael Schmitz
    Cc: Russell King
    Cc: Tony Luck
    Cc: Vineet Gupta
    Cc: Will Deacon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     

15 Dec, 2020

1 commit

  • Pull arm64 updates from Catalin Marinas:

    - Expose tag address bits in siginfo. The original arm64 ABI did not
    expose any of the bits 63:56 of a tagged address in siginfo. In the
    presence of user ASAN or MTE, this information may be useful. The
    implementation is generic to other architectures supporting tags
    (like SPARC ADI, subject to wiring up the arch code). The user will
    have to opt in via sigaction(SA_EXPOSE_TAGBITS) so that the extra
    bits, if available, become visible in si_addr.

    - Default to 32-bit wide ZONE_DMA. Previously, ZONE_DMA was set to the
    lowest 1GB to cope with the Raspberry Pi 4 limitations, to the
    detriment of other platforms. With these changes, the kernel scans
    the Device Tree dma-ranges and the ACPI IORT information before
    deciding on a smaller ZONE_DMA.

    - Strengthen READ_ONCE() to acquire when CONFIG_LTO=y. When building
    with LTO, there is an increased risk of the compiler converting an
    address dependency headed by a READ_ONCE() invocation into a control
    dependency and consequently allowing for harmful reordering by the
    CPU.

    - Add CPPC FFH support using arm64 AMU counters.

    - set_fs() removal on arm64. This renders the User Access Override
    (UAO) ARMv8 feature unnecessary.

    - Perf updates: PMU driver for the ARM DMC-620 memory controller, sysfs
    identifier file for SMMUv3, stop event counters support for i.MX8MP,
    enable the perf events-based hard lockup detector.

    - Reorganise the kernel VA space slightly so that 52-bit VA
    configurations can use more virtual address space.

    - Improve the robustness of the arm64 memory offline event notifier.

    - Pad the Image header to 64K following the EFI header definition
    updated recently to increase the section alignment to 64K.

    - Support CONFIG_CMDLINE_EXTEND on arm64.

    - Do not use tagged PC in the kernel (TCR_EL1.TBID1==1), freeing up 8
    bits for PtrAuth.

    - Switch to vmapped shadow call stacks.

    - Miscellaneous clean-ups.

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (78 commits)
    perf/imx_ddr: Add system PMU identifier for userspace
    bindings: perf: imx-ddr: add compatible string
    arm64: Fix build failure when HARDLOCKUP_DETECTOR_PERF is enabled
    arm64: mte: fix prctl(PR_GET_TAGGED_ADDR_CTRL) if TCF0=NONE
    arm64: mark __system_matches_cap as __maybe_unused
    arm64: uaccess: remove vestigal UAO support
    arm64: uaccess: remove redundant PAN toggling
    arm64: uaccess: remove addr_limit_user_check()
    arm64: uaccess: remove set_fs()
    arm64: uaccess cleanup macro naming
    arm64: uaccess: split user/kernel routines
    arm64: uaccess: refactor __{get,put}_user
    arm64: uaccess: simplify __copy_user_flushcache()
    arm64: uaccess: rename privileged uaccess routines
    arm64: sdei: explicitly simulate PAN/UAO entry
    arm64: sdei: move uaccess logic to arch/arm64/
    arm64: head.S: always initialize PSTATE
    arm64: head.S: cleanup SCTLR_ELx initialization
    arm64: head.S: rename el2_setup -> init_kernel_el
    arm64: add C wrappers for SET_PSTATE_*()
    ...

    Linus Torvalds
     

07 Dec, 2020

3 commits

  • Building a kernel with multiple dragonball based boards
    enabled needlessly causes a link failure because of duplicate
    config_BSP() functions between the CPU versions.

    Avoid that merging the three almost identical files into one,
    and hiding the CPU configuration behind the board config.
    The pr_info() lines are consolidated in one place.

    It is still not possible to run a kernel configured for
    more than one board, but at least configurations that can
    be selected can also be built now.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Greg Ungerer

    Arnd Bergmann
     
  • The dragen2 and ucsimm/ucdimm files require a bit of
    custom code compared to the other dragonball platforms,
    move them into separate files as a preparation for a
    build fix.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Greg Ungerer

    Arnd Bergmann
     
  • The kernel start up code for all of the nommu m68k types expects the BSS
    section to be on a 4-byte boundary, and to be a whole number of 32bit
    words. The BSS initialization loop sets 32bit sized quantities and has
    no provision for odd or unaligned accesses.

    The alignment and size of the BSS has historically worked out to be 4-byte
    aligned and sized - although no explicit alignment or size was specified in
    the linker script. So the BSS zeroing code worked as expected.

    A problem was first observed after commit 7273ad2b08f8 ("kbuild: link lib-y
    objects to vmlinux forcibly when CONFIG_MODULES=y"). Some kernel builds,
    depending on exact configuration, then tended to generate even sized BSS
    sections - which is valid on m68k - but our BSS init code could not handle
    properly.

    The simplest and smallest solution is to align and size the BSS
    appropriately.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     

24 Nov, 2020

1 commit

  • Most architectures with the exception of alpha, mips, parisc and
    sparc use the same values for these flags. Move their definitions into
    asm-generic/signal-defs.h and allow the architectures with non-standard
    values to override them. Also, document the non-standard flag values
    in order to make it easier to add new generic flags in the future.

    A consequence of this change is that on powerpc and x86, the constants'
    values aside from SA_RESETHAND change signedness from unsigned
    to signed. This is not expected to impact realistic use of these
    constants. In particular the typical use of the constants where they
    are or'ed together and assigned to sa_flags (or another int variable)
    would not be affected.

    Signed-off-by: Peter Collingbourne
    Acked-by: Geert Uytterhoeven
    Acked-by: "Eric W. Biederman"
    Reviewed-by: Dave Martin
    Link: https://linux-review.googlesource.com/id/Ia3849f18b8009bf41faca374e701cdca36974528
    Link: https://lkml.kernel.org/r/b6d0d1ec34f9ee93e1105f14f288fba5f89d1f24.1605235762.git.pcc@google.com
    Signed-off-by: Eric W. Biederman

    Peter Collingbourne
     

23 Nov, 2020

7 commits

  • Don't add platform resources that won't be used. This avoids a
    recently-added warning from the driver core, that can show up on a
    multi-platform kernel when !MACH_IS_MAC.

    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 0 at drivers/base/platform.c:224 platform_get_irq_optional+0x8e/0xce
    0 is an invalid IRQ number
    Modules linked in:
    CPU: 0 PID: 0 Comm: swapper Not tainted 5.9.0-multi #1
    Stack from 004b3f04:
    004b3f04 00462c2f 00462c2f 004b3f20 0002e128 004754db 004b6ad4 004b3f4c
    0002e19c 004754f7 000000e0 00285ba0 00000009 00000000 004b3f44 ffffffff
    004754db 004b3f64 004b3f74 00285ba0 004754f7 000000e0 00000009 004754db
    004fdf0c 005269e2 004fdf0c 00000000 004b3f88 00285cae 004b6964 00000000
    004fdf0c 004b3fac 0051cc68 004b6964 00000000 004b6964 00000200 00000000
    0051cc3e 0023c18a 004b3fc0 0051cd8a 004fdf0c 00000002 0052b43c 004b3fc8
    Call Trace: [] __warn+0xa6/0xd6
    [] warn_slowpath_fmt+0x44/0x76
    [] platform_get_irq_optional+0x8e/0xce
    [] platform_get_irq_optional+0x8e/0xce
    [] platform_get_irq+0x12/0x4c
    [] pmz_init_port+0x2a/0xa6
    [] pmz_init_port+0x0/0xa6
    [] strlen+0x0/0x22
    [] pmz_probe+0x34/0x88
    [] pmz_console_init+0x8/0x28
    [] console_init+0x1e/0x28
    [] printk+0x0/0x16
    [] start_kernel+0x368/0x4ce
    [] _sinittext+0x4f8/0xc48
    random: get_random_bytes called from print_oops_end_marker+0x56/0x80 with crng_init=0
    ---[ end trace 392d8e82eed68d6c ]---

    Commit a85a6c86c25b ("driver core: platform: Clarify that IRQ 0 is invalid"),
    which introduced the WARNING, suggests that testing for irq == 0 is
    undesirable. Instead of that comparison, just test for resource existence.

    Cc: Michael Ellerman
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Joshua Thompson
    Cc: Greg Kroah-Hartman
    Cc: Jiri Slaby
    Cc: stable@vger.kernel.org # v5.8+
    Reported-by: Laurent Vivier
    Signed-off-by: Finn Thain
    Link: https://lore.kernel.org/r/0c0fe1e4f11ccec202d4df09ea7d9d98155d101a.1606001297.git.fthain@telegraphics.com.au
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • Commit c604abc3f6e3 ("vmlinux.lds.h: Split ELF_DETAILS from STABS_DEBUG")
    after should add a missing ELF_DETAILS, at the same time, the .comment
    section has been included in the ELF_DETAILS.

    Signed-off-by: Youling Tang
    Link: https://lore.kernel.org/r/1605852494-23515-1-git-send-email-tangyouling@loongson.cn
    Signed-off-by: Geert Uytterhoeven

    Youling Tang
     
  • Commit eaf937075c9a ("vmlinux.lds.h: Move NOTES into RO_DATA") after
    should remove redundant NOTES.

    Signed-off-by: Youling Tang
    Link: https://lore.kernel.org/r/1605852474-23446-1-git-send-email-tangyouling@loongson.cn
    Signed-off-by: Geert Uytterhoeven

    Youling Tang
     
  • There is still some missing hardware support that affects all models,
    such as sound chip and localtalk support. However, many models are well
    supported, including the Quadra 800 emulated by QEMU. Missing hardware
    support is mostly documented at the web site, so add the URL.

    Cc: Joshua Thompson
    Signed-off-by: Finn Thain
    Link: https://lore.kernel.org/r/bb327f05f8fb61eeb332cc2ba4e8335570976474.1605847196.git.fthain@telegraphics.com.au
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • There's no need to write the same value to the timer latch and timer
    counter registers. Values written to the counter registers get stored
    in the latches anyway. The write to vT1CH copies the latch values to
    the counter.

    Cc: Joshua Thompson
    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Link: https://lore.kernel.org/r/c6b1d9620af3e8f89dd0157a41fa4147294b251d.1605847196.git.fthain@telegraphics.com.au
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • Cc: Joshua Thompson
    Signed-off-by: Finn Thain
    Link: https://lore.kernel.org/r/effef6339c919a4ef2e81a47e4383f712cdd7626.1605847196.git.fthain@telegraphics.com.au
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • The idea behind iop_preinit() was to put the SCC IOP into bypass mode.
    However, that remains unimplemented and implementing it would be
    difficult. Let the comments and code reflect this. Even if iop_preinit()
    worked as described in the comments, it gets called immediately before
    iop_init() so it might as well part of iop_init().

    Cc: Joshua Thompson
    Tested-by: Stan Johnson
    Signed-off-by: Finn Thain
    Link: https://lore.kernel.org/r/0a7b09f5e5f48e270b82041c19e8f20f54c69216.1605847196.git.fthain@telegraphics.com.au
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     

16 Nov, 2020

2 commits

  • Enable KUnit and all KUnit tests for modular builds, so they are
    available when needed, just like non-KUnit tests.

    Signed-off-by: Geert Uytterhoeven
    Link: https://lore.kernel.org/r/20201026122622.3092658-1-geert@linux-m68k.org

    Geert Uytterhoeven
     
  • - Enable modular build of SM2 crypto algorithm,
    - Drop CONFIG_CRYPTO_SM3=m (auto-enabled by CONFIG_CRYPTO_SM2),
    - Drop CONFIG_TEST_BITFIELD=m (converted to KUnit in commit
    d2585f5164c298aa ("lib: kunit: add bitfield test conversion to
    KUnit")),
    - Enable modular build of the freeing pages test module.

    Signed-off-by: Geert Uytterhoeven
    Link: https://lore.kernel.org/r/20201026122549.3092526-1-geert@linux-m68k.org

    Geert Uytterhoeven
     

09 Nov, 2020

1 commit


02 Nov, 2020

2 commits

  • This information is unused since the discontinuous memory support
    has been introduced in 2007.

    Fixes: 12d810c1b8c2 ("m68k: discontinuous memory support")
    Signed-off-by: Laurent Vivier
    Link: https://lore.kernel.org/r/20201009095621.833192-1-laurent@vivier.eu
    Signed-off-by: Geert Uytterhoeven

    Laurent Vivier
     
  • gcc warns about the value of xchg()/cmpxchg() being unused
    in some cases:

    net/core/filter.c: In function 'bpf_clear_redirect_map':
    arch/m68k/include/asm/cmpxchg.h:137:3: warning: value computed is not used [-Wunused-value]
    106 | #define cmpxchg(ptr, o, n) cmpxchg_local((ptr), (o), (n))
    net/core/filter.c:3595:4: note: in expansion of macro 'cmpxchg'
    3595 | cmpxchg(&ri->map, map, NULL);

    Shut up that warning like we do on other architectures, by
    turning the macro into a statement expression.

    Signed-off-by: Arnd Bergmann
    Link: https://lore.kernel.org/r/20201008123429.1133896-1-arnd@arndb.de
    Signed-off-by: Geert Uytterhoeven

    Arnd Bergmann
     

31 Oct, 2020

7 commits

  • Almost all machines use GENERIC_CLOCKEVENTS, so it feels wrong to
    require each one to select that symbol manually.

    Instead, enable it whenever CONFIG_LEGACY_TIMER_TICK is disabled as
    a simplification. It should be possible to select both
    GENERIC_CLOCKEVENTS and LEGACY_TIMER_TICK from an architecture now
    and decide at runtime between the two.

    For the clockevents arch-support.txt file, this means that additional
    architectures are marked as TODO when they have at least one machine
    that still uses LEGACY_TIMER_TICK, rather than being marked 'ok' when
    at least one machine has been converted. This means that both m68k and
    arm (for riscpc) revert to TODO.

    At this point, we could just always enable CONFIG_GENERIC_CLOCKEVENTS
    rather than leaving it off when not needed. I built an m68k
    defconfig kernel (using gcc-10.1.0) and found that this would add
    around 5.5KB in kernel image size:

    text data bss dec hex filename
    3861936 1092236 196656 5150828 4e986c obj-m68k/vmlinux-no-clockevent
    3866201 1093832 196184 5156217 4ead79 obj-m68k/vmlinux-clockevent

    On Arm (MACH_RPC), that difference appears to be twice as large,
    around 11KB on top of an 6MB vmlinux.

    Reviewed-by: Geert Uytterhoeven
    Acked-by: Geert Uytterhoeven
    Tested-by: Geert Uytterhoeven
    Reviewed-by: Linus Walleij
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • This gets passed to a number of init functions, but is
    ignored everywhere, so remove the function and change the
    mach_sched_init callback to take no arguments.

    Reviewed-by: Geert Uytterhoeven
    Acked-by: Geert Uytterhoeven
    Tested-by: Geert Uytterhoeven
    Reviewed-by: Linus Walleij
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • There are nine more machines that each have their own timer interrupt
    calling the m68k timer_interrupt() function through an indirect pointer.

    This function is now the same as legacy_timer_tick, so just call that
    directly and select the corresponding Kconfig symbol.

    Reviewed-by: Geert Uytterhoeven
    Acked-by: Geert Uytterhoeven
    Tested-by: Geert Uytterhoeven
    Reviewed-by: Linus Walleij
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • A couple of machines share the m68328 timer code that
    is based on calling timer_interrupt(). Change these
    to the new and slightly more generic legacy_timer_tick()
    helper.

    Reviewed-by: Geert Uytterhoeven
    Reviewed-by: Linus Walleij
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • These two are different from all other machines:

    * sun3 does not call timer_routine() but open-codes it
    except for the profile_tick() call that appears to
    be unintentionally missing.

    * sun3x has a commented-out timer irq handler but no
    functional timer tick I could find.

    Change both to calling the new legacy_timer_tick here,
    which includes the call to profile_tick() but does not
    fix sun3x as that is still commented out.

    Reviewed-by: Geert Uytterhoeven
    Acked-by: Geert Uytterhoeven
    Reviewed-by: Linus Walleij
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • The heartbeat functionality is mostly separate from the
    actual timer interrupt handling, and it is only used on
    five platforms.

    Split it out into a separate function and call that directly
    from the timer irq on those platforms.

    Reviewed-by: Geert Uytterhoeven
    Acked-by: Geert Uytterhoeven
    Tested-by: Geert Uytterhoeven
    Reviewed-by: Linus Walleij
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • Replace the indirect function calls in the timer code
    with direct calls to the newly added legacy_timer_tick()
    helper for those that have not yet been converted to
    generic clockevents.

    This makes the timer code a little more self-contained.

    Tested-by: Greg Ungerer
    Reviewed-by: Linus Walleij
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

28 Oct, 2020

1 commit

  • When building for Sun-3 (e.g. sun3_defconfig):

    In file included from ./arch/m68k/include/asm/mmu_context.h:312,
    from arch/m68k/sun3/mmu_emu.c:28:
    ./include/asm-generic/mmu_context.h:46:20: error: redefinition of ‘destroy_context’
    46 | static inline void destroy_context(struct mm_struct *mm)
    | ^~~~~~~~~~~~~~~
    In file included from arch/m68k/sun3/mmu_emu.c:28:
    ./arch/m68k/include/asm/mmu_context.h:192:20: note: previous definition of ‘destroy_context’ was here
    192 | static inline void destroy_context(struct mm_struct *mm)
    | ^~~~~~~~~~~~~~~

    Fix this by marking destroy_context implemented by arch-specific code.

    Fixes: cb41155766b05935 ("m68k: use asm-generic/mmu_context.h for no-op implementations")
    Reported-by: noreply@ellerman.id.au
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Arnd Bergmann

    Geert Uytterhoeven
     

27 Oct, 2020

1 commit


24 Oct, 2020

1 commit

  • Pull arch task_work cleanups from Jens Axboe:
    "Two cleanups that don't fit other categories:

    - Finally get the task_work_add() cleanup done properly, so we don't
    have random 0/1/false/true/TWA_SIGNAL confusing use cases. Updates
    all callers, and also fixes up the documentation for
    task_work_add().

    - While working on some TIF related changes for 5.11, this
    TIF_NOTIFY_RESUME cleanup fell out of that. Remove some arch
    duplication for how that is handled"

    * tag 'arch-cleanup-2020-10-22' of git://git.kernel.dk/linux-block:
    task_work: cleanup notification modes
    tracehook: clear TIF_NOTIFY_RESUME in tracehook_notify_resume()

    Linus Torvalds
     

23 Oct, 2020

2 commits

  • Pull Kbuild updates from Masahiro Yamada:

    - Support 'make compile_commands.json' to generate the compilation
    database more easily, avoiding stale entries

    - Support 'make clang-analyzer' and 'make clang-tidy' for static checks
    using clang-tidy

    - Preprocess scripts/modules.lds.S to allow CONFIG options in the
    module linker script

    - Drop cc-option tests from compiler flags supported by our minimal
    GCC/Clang versions

    - Use always 12-digits commit hash for CONFIG_LOCALVERSION_AUTO=y

    - Use sha1 build id for both BFD linker and LLD

    - Improve deb-pkg for reproducible builds and rootless builds

    - Remove stale, useless scripts/namespace.pl

    - Turn -Wreturn-type warning into error

    - Fix build error of deb-pkg when CONFIG_MODULES=n

    - Replace 'hostname' command with more portable 'uname -n'

    - Various Makefile cleanups

    * tag 'kbuild-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (34 commits)
    kbuild: Use uname for LINUX_COMPILE_HOST detection
    kbuild: Only add -fno-var-tracking-assignments for old GCC versions
    kbuild: remove leftover comment for filechk utility
    treewide: remove DISABLE_LTO
    kbuild: deb-pkg: clean up package name variables
    kbuild: deb-pkg: do not build linux-headers package if CONFIG_MODULES=n
    kbuild: enforce -Werror=return-type
    scripts: remove namespace.pl
    builddeb: Add support for all required debian/rules targets
    builddeb: Enable rootless builds
    builddeb: Pass -n to gzip for reproducible packages
    kbuild: split the build log of kallsyms
    kbuild: explicitly specify the build id style
    scripts/setlocalversion: make git describe output more reliable
    kbuild: remove cc-option test of -Werror=date-time
    kbuild: remove cc-option test of -fno-stack-check
    kbuild: remove cc-option test of -fno-strict-overflow
    kbuild: move CFLAGS_{KASAN,UBSAN,KCSAN} exports to relevant Makefiles
    kbuild: remove redundant CONFIG_KASAN check from scripts/Makefile.kasan
    kbuild: do not create built-in objects for external module builds
    ...

    Linus Torvalds
     
  • Pull initial set_fs() removal from Al Viro:
    "Christoph's set_fs base series + fixups"

    * 'work.set_fs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    fs: Allow a NULL pos pointer to __kernel_read
    fs: Allow a NULL pos pointer to __kernel_write
    powerpc: remove address space overrides using set_fs()
    powerpc: use non-set_fs based maccess routines
    x86: remove address space overrides using set_fs()
    x86: make TASK_SIZE_MAX usable from assembly code
    x86: move PAGE_OFFSET, TASK_SIZE & friends to page_{32,64}_types.h
    lkdtm: remove set_fs-based tests
    test_bitmap: remove user bitmap tests
    uaccess: add infrastructure for kernel builds with set_fs()
    fs: don't allow splice read/write without explicit ops
    fs: don't allow kernel reads and writes without iter ops
    sysctl: Convert to iter interfaces
    proc: add a read_iter method to proc proc_ops
    proc: cleanup the compat vs no compat file ops
    proc: remove a level of indentation in proc_get_inode

    Linus Torvalds
     

20 Oct, 2020

1 commit

  • Pull m68knommu updates from Greg Ungerer:
    "A collection of fixes for 5.10:

    - switch to using asm-generic uaccess code

    - fix sparse warnings in signal code

    - fix compilation of ColdFire MMC support

    - support sysrq in ColdFire serial driver"

    * tag 'm68knommu-for-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
    serial: mcf: add sysrq capability
    m68knommu: include SDHC support only when hardware has it
    m68knommu: fix sparse warnings in signal code
    m68knommu: switch to using asm-generic/uaccess.h

    Linus Torvalds