20 Jan, 2021

5 commits

  • [ Upstream commit 8a48c0a3360bf2bf4f40c980d0ec216e770e58ee ]

    fs/dax.c uses copy_user_page() but ARC does not provide that interface,
    resulting in a build error.

    Provide copy_user_page() in .

    ../fs/dax.c: In function 'copy_cow_page_dax':
    ../fs/dax.c:702:2: error: implicit declaration of function 'copy_user_page'; did you mean 'copy_to_user_page'? [-Werror=implicit-function-declaration]

    Reported-by: kernel test robot
    Signed-off-by: Randy Dunlap
    Cc: Vineet Gupta
    Cc: linux-snps-arc@lists.infradead.org
    Cc: Dan Williams
    #Acked-by: Vineet Gupta # v1
    Cc: Andrew Morton
    Cc: Matthew Wilcox
    Cc: Jan Kara
    Cc: linux-fsdevel@vger.kernel.org
    Cc: linux-nvdimm@lists.01.org
    #Reviewed-by: Ira Weiny # v2
    Signed-off-by: Vineet Gupta
    Signed-off-by: Sasha Levin

    Randy Dunlap
     
  • [ Upstream commit c5e6ae563c802c4d828d42e134af64004db2e58c ]

    If you run 'make uImage uImage.gz' with the parallel option, uImage.gz
    will be created by two threads simultaneously.

    This is because arch/arc/Makefile does not specify the dependency
    between uImage and uImage.gz. Hence, GNU Make assumes they can be
    built in parallel. One thread descends into arch/arc/boot/ to create
    uImage, and another to create uImage.gz.

    Please notice the same log is displayed twice in the following steps:

    $ export CROSS_COMPILE=
    $ make -s ARCH=arc defconfig
    $ make -j$(nproc) ARCH=arc uImage uImage.gz
    [ snip ]
    LD vmlinux
    SORTTAB vmlinux
    SYSMAP System.map
    OBJCOPY arch/arc/boot/vmlinux.bin
    OBJCOPY arch/arc/boot/vmlinux.bin
    GZIP arch/arc/boot/vmlinux.bin.gz
    GZIP arch/arc/boot/vmlinux.bin.gz
    UIMAGE arch/arc/boot/uImage.gz
    UIMAGE arch/arc/boot/uImage.gz
    Image Name: Linux-5.10.0-rc4-00003-g62f23044
    Created: Sun Nov 22 02:52:26 2020
    Image Type: ARC Linux Kernel Image (gzip compressed)
    Data Size: 2109376 Bytes = 2059.94 KiB = 2.01 MiB
    Load Address: 80000000
    Entry Point: 80004000
    Image arch/arc/boot/uImage is ready
    Image Name: Linux-5.10.0-rc4-00003-g62f23044
    Created: Sun Nov 22 02:52:26 2020
    Image Type: ARC Linux Kernel Image (gzip compressed)
    Data Size: 2815455 Bytes = 2749.47 KiB = 2.69 MiB
    Load Address: 80000000
    Entry Point: 80004000

    This is a race between the two threads trying to write to the same file
    arch/arc/boot/uImage.gz. This is a potential problem that can generate
    a broken file.

    I fixed a similar problem for ARM by commit 3939f3345050 ("ARM: 8418/1:
    add boot image dependencies to not generate invalid images").

    I highly recommend to avoid such build rules that cause a race condition.

    Move the uImage rule to arch/arc/Makefile.

    Another strangeness is that arch/arc/boot/Makefile compares the
    timestamps between $(obj)/uImage and $(obj)/uImage.*:

    $(obj)/uImage: $(obj)/uImage.$(suffix-y)
    @ln -sf $(notdir $
    Signed-off-by: Vineet Gupta
    Signed-off-by: Sasha Levin

    Masahiro Yamada
     
  • [ Upstream commit 0cfccb3c04934cdef42ae26042139f16e805b5f7 ]

    The top-level boot_targets (uImage and uImage.*) should be phony
    targets. They just let Kbuild descend into arch/arc/boot/ and create
    files there.

    If a file exists in the top directory with the same name, the boot
    image will not be created.

    You can confirm it by the following steps:

    $ export CROSS_COMPILE=
    $ make -s ARCH=arc defconfig all # vmlinux will be built
    $ touch uImage.gz
    $ make ARCH=arc uImage.gz
    CALL scripts/atomic/check-atomics.sh
    CALL scripts/checksyscalls.sh
    CHK include/generated/compile.h
    # arch/arc/boot/uImage.gz is not created

    Specify the targets as PHONY to fix this.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Vineet Gupta
    Signed-off-by: Sasha Levin

    Masahiro Yamada
     
  • [ Upstream commit f2712ec76a5433e5ec9def2bd52a95df1f96d050 ]

    arch/arc/boot/Makefile supports uImage.lzma, but you cannot do
    'make uImage.lzma' because the corresponding target is missing
    in arch/arc/Makefile. Add it.

    I also changed the assignment operator '+=' to ':=' since this is the
    only place where we expect this variable to be set.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Vineet Gupta
    Signed-off-by: Sasha Levin

    Masahiro Yamada
     
  • [ Upstream commit 9836720911cfec25d3fbdead1c438bf87e0f2841 ]

    The deb-pkg builds for ARCH=arc fail.

    $ export CROSS_COMPILE=
    $ make -s ARCH=arc defconfig
    $ make ARCH=arc bindeb-pkg
    SORTTAB vmlinux
    SYSMAP System.map
    MODPOST Module.symvers
    make KERNELRELEASE=5.10.0-rc4 ARCH=arc KBUILD_BUILD_VERSION=2 -f ./Makefile intdeb-pkg
    sh ./scripts/package/builddeb
    cp: cannot stat 'arch/arc/boot/bootpImage': No such file or directory
    make[4]: *** [scripts/Makefile.package:87: intdeb-pkg] Error 1
    make[3]: *** [Makefile:1527: intdeb-pkg] Error 2
    make[2]: *** [debian/rules:13: binary-arch] Error 2
    dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
    make[1]: *** [scripts/Makefile.package:83: bindeb-pkg] Error 2
    make: *** [Makefile:1527: bindeb-pkg] Error 2

    The reason is obvious; arch/arc/Makefile sets $(boot)/bootpImage as
    the default image, but there is no rule to build it.

    Remove the meaningless KBUILD_IMAGE assignment so it will fallback
    to the default vmlinux. With this change, you can build the deb package.

    I removed the 'bootpImage' target as well. At best, it provides
    'make bootpImage' as an alias of 'make vmlinux', but I do not see
    much sense in doing so.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Vineet Gupta
    Signed-off-by: Sasha Levin

    Masahiro Yamada
     

13 Jan, 2021

1 commit

  • [ Upstream commit 87dbc209ea04645fd2351981f09eff5d23f8e2e9 ]

    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
    Signed-off-by: Sasha Levin

    Randy Dunlap
     

28 Nov, 2020

1 commit


18 Nov, 2020

4 commits


16 Nov, 2020

1 commit

  • Stefan Agner reported a bug when using zsram on 32-bit Arm machines
    with RAM above the 4GB address boundary:

    Unable to handle kernel NULL pointer dereference at virtual address 00000000
    pgd = a27bd01c
    [00000000] *pgd=236a0003, *pmd=1ffa64003
    Internal error: Oops: 207 [#1] SMP ARM
    Modules linked in: mdio_bcm_unimac(+) brcmfmac cfg80211 brcmutil raspberrypi_hwmon hci_uart crc32_arm_ce bcm2711_thermal phy_generic genet
    CPU: 0 PID: 123 Comm: mkfs.ext4 Not tainted 5.9.6 #1
    Hardware name: BCM2711
    PC is at zs_map_object+0x94/0x338
    LR is at zram_bvec_rw.constprop.0+0x330/0xa64
    pc : [] lr : [] psr: 60000013
    sp : e376bbe0 ip : 00000000 fp : c1e2921c
    r10: 00000002 r9 : c1dda730 r8 : 00000000
    r7 : e8ff7a00 r6 : 00000000 r5 : 02f9ffa0 r4 : e3710000
    r3 : 000fdffe r2 : c1e0ce80 r1 : ebf979a0 r0 : 00000000
    Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
    Control: 30c5383d Table: 235c2a80 DAC: fffffffd
    Process mkfs.ext4 (pid: 123, stack limit = 0x495a22e6)
    Stack: (0xe376bbe0 to 0xe376c000)

    As it turns out, zsram needs to know the maximum memory size, which
    is defined in MAX_PHYSMEM_BITS when CONFIG_SPARSEMEM is set, or in
    MAX_POSSIBLE_PHYSMEM_BITS on the x86 architecture.

    The same problem will be hit on all 32-bit architectures that have a
    physical address space larger than 4GB and happen to not enable sparsemem
    and include asm/sparsemem.h from asm/pgtable.h.

    After the initial discussion, I suggested just always defining
    MAX_POSSIBLE_PHYSMEM_BITS whenever CONFIG_PHYS_ADDR_T_64BIT is
    set, or provoking a build error otherwise. This addresses all
    configurations that can currently have this runtime bug, but
    leaves all other configurations unchanged.

    I looked up the possible number of bits in source code and
    datasheets, here is what I found:

    - on ARC, CONFIG_ARC_HAS_PAE40 controls whether 32 or 40 bits are used
    - on ARM, CONFIG_LPAE enables 40 bit addressing, without it we never
    support more than 32 bits, even though supersections in theory allow
    up to 40 bits as well.
    - on MIPS, some MIPS32r1 or later chips support 36 bits, and MIPS32r5
    XPA supports up to 60 bits in theory, but 40 bits are more than
    anyone will ever ship
    - On PowerPC, there are three different implementations of 36 bit
    addressing, but 32-bit is used without CONFIG_PTE_64BIT
    - On RISC-V, the normal page table format can support 34 bit
    addressing. There is no highmem support on RISC-V, so anything
    above 2GB is unused, but it might be useful to eventually support
    CONFIG_ZRAM for high pages.

    Fixes: 61989a80fb3a ("staging: zsmalloc: zsmalloc memory allocation library")
    Fixes: 02390b87a945 ("mm/zsmalloc: Prepare to variable MAX_PHYSMEM_BITS")
    Acked-by: Thomas Bogendoerfer
    Reviewed-by: Stefan Agner
    Tested-by: Stefan Agner
    Acked-by: Mike Rapoport
    Link: https://lore.kernel.org/linux-mm/bdfa44bf1c570b05d6c70898e2bbb0acf234ecdf.1604762181.git.stefan@agner.ch/
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

03 Nov, 2020

2 commits

  • ARC HSDK platform stopped booting on released v5.10-rc1, getting stuck
    in startup of non master SMP cores.

    This was bisected to upstream commit 7fef431be9c9ac25
    "(mm/page_alloc: place pages to tail in __free_pages_core())"
    That commit itself is harmless, it just exposed a subtle assumption in
    our platform code (hence CC'ing linux-mm just as FYI in case some other
    arches / platforms trip on it).

    The upstream commit is semantically disruptive as it reverses the order
    of page allocations (actually it can be good test for hardware
    verification to exercise different memory patterns altogether).
    For ARC HSDK platform that meant a remapped memory region (pertaining to
    unused Closely Coupled Memory) started getting used early for dynamice
    allocations, while not effectively remapped on all the cores, triggering
    memory error exception on those cores.

    The fix is to move the CCM remapping from early platform code to to early core
    boot code. And while it is undesirable to riddle common boot code with
    platform quirks, there is no other way to do this since the faltering code
    involves setting up stack itself so even function calls are not allowed at
    that point.

    If anyone is interested, all the gory details can be found at Link below.

    Link: https://github.com/foss-for-synopsys-dwc-arc-processors/linux/issues/32
    Cc: David Hildenbrand
    Cc: linux-mm@kvack.org
    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • Currently stack unwinder is a while(1) loop which relies on the dwarf
    unwinder to signal termination, which in turn relies on dwarf info to do
    so. This in theory could cause an infinite loop if the dwarf info was
    somehow messed up or the register contents were etc.

    This fix thus detects the excessive looping and breaks the loop.

    | Mem: 26184K used, 1009136K free, 0K shrd, 0K buff, 14416K cached
    | CPU: 0.0% usr 72.8% sys 0.0% nic 27.1% idle 0.0% io 0.0% irq 0.0% sirq
    | Load average: 4.33 2.60 1.11 2/74 139
    | PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND
    | 133 2 root SWN 0 0.0 3 22.9 [rcu_torture_rea]
    | 132 2 root SWN 0 0.0 0 22.0 [rcu_torture_rea]
    | 131 2 root SWN 0 0.0 3 21.5 [rcu_torture_rea]
    | 126 2 root RW 0 0.0 2 5.4 [rcu_torture_wri]
    | 129 2 root SWN 0 0.0 0 0.2 [rcu_torture_fak]
    | 137 2 root SW 0 0.0 0 0.2 [rcu_torture_cbf]
    | 127 2 root SWN 0 0.0 0 0.1 [rcu_torture_fak]
    | 138 115 root R 1464 0.1 2 0.1 top
    | 130 2 root SWN 0 0.0 0 0.1 [rcu_torture_fak]
    | 128 2 root SWN 0 0.0 0 0.1 [rcu_torture_fak]
    | 115 1 root S 1472 0.1 1 0.0 -/bin/sh
    | 104 1 root S 1464 0.1 0 0.0 inetd
    | 1 0 root S 1456 0.1 2 0.0 init
    | 78 1 root S 1456 0.1 0 0.0 syslogd -O /var/log/messages
    | 134 2 root SW 0 0.0 2 0.0 [rcu_torture_sta]
    | 10 2 root IW 0 0.0 1 0.0 [rcu_preempt]
    | 88 2 root IW 0 0.0 1 0.0 [kworker/1:1-eve]
    | 66 2 root IW 0 0.0 2 0.0 [kworker/2:2-eve]
    | 39 2 root IW 0 0.0 2 0.0 [kworker/2:1-eve]
    | unwinder looping too long, aborting !

    Cc:
    Signed-off-by: Vineet Gupta

    Vineet Gupta
     

26 Oct, 2020

1 commit

  • Use a more generic form for __section that requires quotes to avoid
    complications with clang and gcc differences.

    Remove the quote operator # from compiler_attributes.h __section macro.

    Convert all unquoted __section(foo) uses to quoted __section("foo").
    Also convert __attribute__((section("foo"))) uses to __section("foo")
    even if the __attribute__ has multiple list entry forms.

    Conversion done using the script at:

    https://lore.kernel.org/lkml/75393e5ddc272dc7403de74d645e6c6e0f4e70eb.camel@perches.com/2-convert_section.pl

    Signed-off-by: Joe Perches
    Reviewed-by: Nick Desaulniers
    Reviewed-by: Miguel Ojeda
    Signed-off-by: Linus Torvalds

    Joe Perches
     

24 Oct, 2020

2 commits

  • 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
     
  • Pull ARC fix from Vineet Gupta:
    "I found a snafu in perf driver which made it into 5.9-rc4 and the fix
    should go in now than wait"

    * tag 'arc-5.10-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: perf: redo the pct irq missing in device-tree handling

    Linus Torvalds
     

23 Oct, 2020

2 commits

  • commit feb92d7d3813456c11dce21 "(ARC: perf: don't bail setup if pct irq
    missing in device-tree)" introduced a silly brown-paper bag bug:
    The assignment and comparison in an if statement were not bracketed
    correctly leaving the order of evaluation undefined.

    |
    | if (has_interrupts && (irq = platform_get_irq(pdev, 0) >= 0)) {
    | ^^^ ^^^^

    And given such a chance, the compiler will bite you hard, fully entitled
    to generating this piece of beauty:

    |
    | # if (has_interrupts && (irq = platform_get_irq(pdev, 0) >= 0)) {
    |
    | bl.d @platform_get_irq = 0 true/false
    | brlt.d r0, 0, @.L114
    |
    | st_s r2,[sp] irq irq
    |
    | bl.d @__request_percpu_irq
    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • 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
     

21 Oct, 2020

1 commit

  • Pull ARC updates from Vineet Gupta:
    "The bulk of ARC pull request is removal of EZChip NPS platform which
    was suffering from constant bitrot. In recent years EZChip has gone
    though multiple successive acquisitions and I guess things and people
    move on. I would like to take this opportunity to recognize and thank
    all those good folks (Gilad, Noam, Ofer...) for contributing major
    bits to ARC port (SMP, Big Endian).

    Summary:

    - drop support for EZChip NPS platform

    - misc other fixes"

    * tag 'arc-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    arc: include/asm: fix typos of "themselves"
    ARC: SMP: fix typo and use "come up" instead of "comeup"
    ARC: [dts] fix the errors detected by dtbs_check
    arc: plat-hsdk: fix kconfig dependency warning when !RESET_CONTROLLER
    ARC: [plat-eznps]: Drop support for EZChip NPS platform

    Linus Torvalds
     

18 Oct, 2020

1 commit


16 Oct, 2020

1 commit

  • Pull dma-mapping updates from Christoph Hellwig:

    - rework the non-coherent DMA allocator

    - move private definitions out of

    - lower CMA_ALIGNMENT (Paul Cercueil)

    - remove the omap1 dma address translation in favor of the common code

    - make dma-direct aware of multiple dma offset ranges (Jim Quinlan)

    - support per-node DMA CMA areas (Barry Song)

    - increase the default seg boundary limit (Nicolin Chen)

    - misc fixes (Robin Murphy, Thomas Tai, Xu Wang)

    - various cleanups

    * tag 'dma-mapping-5.10' of git://git.infradead.org/users/hch/dma-mapping: (63 commits)
    ARM/ixp4xx: add a missing include of dma-map-ops.h
    dma-direct: simplify the DMA_ATTR_NO_KERNEL_MAPPING handling
    dma-direct: factor out a dma_direct_alloc_from_pool helper
    dma-direct check for highmem pages in dma_direct_alloc_pages
    dma-mapping: merge into
    dma-mapping: move large parts of to kernel/dma
    dma-mapping: move dma-debug.h to kernel/dma/
    dma-mapping: remove
    dma-mapping: merge into
    dma-contiguous: remove dma_contiguous_set_default
    dma-contiguous: remove dev_set_cma_area
    dma-contiguous: remove dma_declare_contiguous
    dma-mapping: split
    cma: decrease CMA_ALIGNMENT lower limit to 2
    firewire-ohci: use dma_alloc_pages
    dma-iommu: implement ->alloc_noncoherent
    dma-mapping: add new {alloc,free}_noncoherent dma_map_ops methods
    dma-mapping: add a new dma_alloc_pages API
    dma-mapping: remove dma_cache_sync
    53c700: convert to dma_alloc_noncoherent
    ...

    Linus Torvalds
     

13 Oct, 2020

2 commits

  • Pull perf/kprobes updates from Ingo Molnar:
    "This prepares to unify the kretprobe trampoline handler and make
    kretprobe lockless (those patches are still work in progress)"

    * tag 'perf-kprobes-2020-10-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    kprobes: Fix to check probe enabled before disarm_kprobe_ftrace()
    kprobes: Make local functions static
    kprobes: Free kretprobe_instance with RCU callback
    kprobes: Remove NMI context check
    sparc: kprobes: Use generic kretprobe trampoline handler
    sh: kprobes: Use generic kretprobe trampoline handler
    s390: kprobes: Use generic kretprobe trampoline handler
    powerpc: kprobes: Use generic kretprobe trampoline handler
    parisc: kprobes: Use generic kretprobe trampoline handler
    mips: kprobes: Use generic kretprobe trampoline handler
    ia64: kprobes: Use generic kretprobe trampoline handler
    csky: kprobes: Use generic kretprobe trampoline handler
    arc: kprobes: Use generic kretprobe trampoline handler
    arm64: kprobes: Use generic kretprobe trampoline handler
    arm: kprobes: Use generic kretprobe trampoline handler
    x86/kprobes: Use generic kretprobe trampoline handler
    kprobes: Add generic kretprobe trampoline handler

    Linus Torvalds
     
  • Pull orphan section checking from Ingo Molnar:
    "Orphan link sections were a long-standing source of obscure bugs,
    because the heuristics that various linkers & compilers use to handle
    them (include these bits into the output image vs discarding them
    silently) are both highly idiosyncratic and also version dependent.

    Instead of this historically problematic mess, this tree by Kees Cook
    (et al) adds build time asserts and build time warnings if there's any
    orphan section in the kernel or if a section is not sized as expected.

    And because we relied on so many silent assumptions in this area, fix
    a metric ton of dependencies and some outright bugs related to this,
    before we can finally enable the checks on the x86, ARM and ARM64
    platforms"

    * tag 'core-build-2020-10-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
    x86/boot/compressed: Warn on orphan section placement
    x86/build: Warn on orphan section placement
    arm/boot: Warn on orphan section placement
    arm/build: Warn on orphan section placement
    arm64/build: Warn on orphan section placement
    x86/boot/compressed: Add missing debugging sections to output
    x86/boot/compressed: Remove, discard, or assert for unwanted sections
    x86/boot/compressed: Reorganize zero-size section asserts
    x86/build: Add asserts for unwanted sections
    x86/build: Enforce an empty .got.plt section
    x86/asm: Avoid generating unused kprobe sections
    arm/boot: Handle all sections explicitly
    arm/build: Assert for unwanted sections
    arm/build: Add missing sections
    arm/build: Explicitly keep .ARM.attributes sections
    arm/build: Refactor linker script headers
    arm64/build: Assert for unwanted sections
    arm64/build: Add missing DWARF sections
    arm64/build: Use common DISCARDS in linker script
    arm64/build: Remove .eh_frame* sections due to unwind tables
    ...

    Linus Torvalds
     

06 Oct, 2020

7 commits


09 Sep, 2020

1 commit

  • Add a CONFIG_SET_FS option that is selected by architecturess that
    implement set_fs, which is all of them initially. If the option is not
    set stubs for routines related to overriding the address space are
    provided so that architectures can start to opt out of providing set_fs.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Kees Cook
    Signed-off-by: Al Viro

    Christoph Hellwig
     

08 Sep, 2020

1 commit


06 Sep, 2020

1 commit

  • Pull ARC fixes from Vineet Gupta:

    - HSDK-4xd Dev system: perf driver updates for sampling interrupt

    - HSDK* Dev System: Ethernet broken [Evgeniy Didin]

    - HIGHMEM broken (2 memory banks) [Mike Rapoport]

    - show_regs() rewrite once and for all

    - Other minor fixes

    * tag 'arc-5.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: [plat-hsdk]: Switch ethernet phy-mode to rgmii-id
    arc: fix memory initialization for systems with two memory banks
    irqchip/eznps: Fix build error for !ARC700 builds
    ARC: show_regs: fix r12 printing and simplify
    ARC: HSDK: wireup perf irq
    ARC: perf: don't bail setup if pct irq missing in device-tree
    ARC: pgalloc.h: delete a duplicated word + other fixes

    Linus Torvalds
     

02 Sep, 2020

2 commits

  • HSDK board has Micrel KSZ9031, recent commit
    bcf3440c6dd ("net: phy: micrel: add phy-mode support for the KSZ9031 PHY")
    caused a breakdown of Ethernet.
    Using 'phy-mode = "rgmii"' is not correct because accodring RGMII
    specification it is necessary to have delay on RX (PHY to MAX)
    which is not generated in case of "rgmii".
    Using "rgmii-id" adds necessary delay and solves the issue.

    Also adding name of PHY placed on HSDK board.

    Signed-off-by: Evgeniy Didin
    Cc: Eugeniy Paltsev
    Cc: Alexey Brodkin
    Signed-off-by: Vineet Gupta

    Evgeniy Didin
     
  • Rework of memory map initialization broke initialization of ARC systems
    with two memory banks. Before these changes, memblock was not aware of
    nodes configuration and the memory map was always allocated from the
    "lowmem" bank. After the addition of node information to memblock, the core
    mm attempts to allocate the memory map for the "highmem" bank from its
    node. The access to this memory using __va() fails because it can be only
    accessed using kmap.

    Anther problem that was uncovered is that {min,max}_high_pfn are calculated
    from u64 high_mem_start variable which prevents truncation to 32-bit
    physical address and the PFN values are above the node and zone boundaries.

    Use phys_addr_t type for high_mem_start and high_mem_size to ensure
    correspondence between PFNs and highmem zone boundaries and reserve the
    entire highmem bank until mem_init() to avoid accesses to it before highmem
    is enabled.

    To test this:
    1. Enable HIGHMEM in ARC config
    2. Enable 2 memory banks in haps_hs.dts (uncomment the 2nd bank)

    Fixes: 51930df5801e ("mm: free_area_init: allow defining max_zone_pfn in descending order")
    Cc: stable@vger.kernel.org [5.8]
    Signed-off-by: Mike Rapoport
    Signed-off-by: Vineet Gupta
    [vgupta: added instructions to test highmem]

    Mike Rapoport
     

01 Sep, 2020

1 commit

  • The .comment section doesn't belong in STABS_DEBUG. Split it out into a
    new macro named ELF_DETAILS. This will gain other non-debug sections
    that need to be accounted for when linking with --orphan-handling=warn.

    Signed-off-by: Kees Cook
    Signed-off-by: Ingo Molnar
    Cc: linux-arch@vger.kernel.org
    Link: https://lore.kernel.org/r/20200821194310.3089815-5-keescook@chromium.org

    Kees Cook
     

28 Aug, 2020

2 commits

  • eznps driver is supposed to be platform independent however it ends up
    including stuff from inside arch/arc headers leading to rand config
    build errors.

    The quick hack to fix this (proper fix is too much chrun for non active
    user-base) is to add following to nps platform agnostic header.
    - copy AUX_IENABLE from arch/arc header
    - move CTOP_AUX_IACK from arch/arc/plat-eznps/*/**

    Reported-by: kernel test robot
    Reported-by: Sebastian Andrzej Siewior
    Link: https://lkml.kernel.org/r/20200824095831.5lpkmkafelnvlpi2@linutronix.de
    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • when working on ARC64, spotted an issue in ARCv2 reg file printing.
    print_reg_file() assumes contiguous reg-file whereas in ARCv2 they are
    not: r12 comes before r0-r11 due to hardware auto-save. Apparently this
    issue has been present since v2 port submission.

    To avoid bolting hacks for this discontinuity while looping through
    pt_regs, just ditching the loop and print pt_regs directly.

    Signed-off-by: Vineet Gupta

    Vineet Gupta
     

24 Aug, 2020

1 commit

  • Replace the existing /* fall through */ comments and its variants with
    the new pseudo-keyword macro fallthrough[1]. Also, remove unnecessary
    fall-through markings when it is the case.

    [1] https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva