05 Feb, 2020

1 commit

  • Allow vectors to be either merged into the kernel .text or put at a
    fixed virtual address independently of XIP option. Drop option that
    puts vectors at a fixed offset from the kernel text. Add choice to
    Kconfig.
    Vectors at fixed virtual address may be useful for XIP-aware MTD support
    and for noMMU configurations with available IRAM. Configurations without
    VECBASE register must put their vectors at specific locations regardless
    of the selected option. All other configurations should happily use
    merged vectors.

    Signed-off-by: Max Filippov

    Max Filippov
     

31 Jan, 2020

1 commit


04 Dec, 2019

1 commit

  • Pull Xtensa updates from Max Filippov:

    - add support for execute in place (XIP) kernels

    - improvements in inline assembly: use named arguments and "m"
    constraints where possible

    - improve stack dumping

    - clean up system_call code and syscall tracing

    - various small fixes and cleanups

    * tag 'xtensa-20191201' of git://github.com/jcmvbkbc/linux-xtensa: (30 commits)
    xtensa: clean up system_call/xtensa_rt_sigreturn interaction
    xtensa: fix system_call interaction with ptrace
    xtensa: rearrange syscall tracing
    xtensa: fix syscall_set_return_value
    xtensa: drop unneeded headers from coprocessor.S
    xtensa: entry: Remove unneeded need_resched() loop
    xtensa: use MEMBLOCK_ALLOC_ANYWHERE for KASAN shadow map
    xtensa: fix TLB sanity checker
    xtensa: get rid of __ARCH_USE_5LEVEL_HACK
    xtensa: mm: fix PMD folding implementation
    xtensa: make stack dump size configurable
    xtensa: improve stack dumping
    xtensa: use "m" constraint instead of "r" in futex.h assembly
    xtensa: use "m" constraint instead of "a" in cmpxchg.h assembly
    xtensa: use named assembly arguments in cmpxchg.h
    xtensa: use "m" constraint instead of "a" in atomic.h assembly
    xtensa: use named assembly arguments in atomic.h
    xtensa: use "m" constraint instead of "a" in bitops.h assembly
    xtensa: use named assembly arguments in bitops.h
    xtensa: use macros to generate *_bit and test_and_*_bit functions
    ...

    Linus Torvalds
     

27 Nov, 2019

2 commits

  • XIP (eXecute In Place) kernel image is the image that can be run
    directly from ROM, using RAM only for writable data.

    XIP xtensa kernel differs from regular xtensa kernel in the following
    ways:
    - it has exception/IRQ vectors merged into text section. No vectors
    relocation takes place at kernel startup.
    - .data/.bss location must be specified in the kernel configuration,
    its content is copied there in the _startup function.
    - .init.text is merged with the rest of text and is executed from ROM.
    - when MMU is used the virtual address where the kernel will be mapped
    must be specified in the kernel configuration. It may be in the KSEG
    or in the KIO, __pa macro is adjusted to be able to handle both.

    Signed-off-by: Max Filippov

    Max Filippov
     
  • This system call has been deprecated almost since it was introduced, and
    in a survey of the linux distributions I can no longer find any of them
    that enable CONFIG_SYSCTL_SYSCALL. The only indication that I can find
    that anyone might care is that a few of the defconfigs in the kernel
    enable CONFIG_SYSCTL_SYSCALL. However this appears in only 31 of 414
    defconfigs in the kernel, so I suspect this symbols presence is simply
    because it is harmless to include rather than because it is necessary.

    As there appear to be no users of the sysctl system call, remove the
    code. As this removes one of the few uses of the internal kernel mount
    of proc I hope this allows for even more simplifications of the proc
    filesystem.

    Cc: Alex Smith
    Cc: Anders Berg
    Cc: Apelete Seketeli
    Cc: Arnd Bergmann
    Cc: Chee Nouk Phoon
    Cc: Chris Zankel
    Cc: Christian Ruppert
    Cc: Greg Ungerer
    Cc: Harvey Hunt
    Cc: Helge Deller
    Cc: Hongliang Tao
    Cc: Hua Yan
    Cc: Huacai Chen
    Cc: John Crispin
    Cc: Jonas Jensen
    Cc: Josh Boyer
    Cc: Jun Nie
    Cc: Kevin Hilman
    Cc: Kevin Wells
    Cc: Kumar Gala
    Cc: Lars-Peter Clausen
    Cc: Ley Foon Tan
    Cc: Linus Walleij
    Cc: Markos Chandras
    Cc: Max Filippov
    Cc: Noam Camus
    Cc: Olof Johansson
    Cc: Paul Burton
    Cc: Paul Mundt
    Cc: Phil Edworthy
    Cc: Pierrick Hascoet
    Cc: Ralf Baechle
    Cc: Roland Stigge
    Cc: Santosh Shilimkar
    Cc: Scott Telford
    Cc: Stephen Boyd
    Cc: Steven J. Hill
    Cc: Tanmay Inamdar
    Cc: Vineet Gupta
    Cc: Wolfram Sang
    Acked-by: Andi Kleen
    Reviewed-by: Kees Cook
    Signed-off-by: "Eric W. Biederman"

    Eric W. Biederman
     

09 Jul, 2019

1 commit

  • Add defconfig and DTS for a virt board. Defconfig enables PCIe host and
    a number of virtio devices. DTS routes legacy PCI IRQs to the first four
    level-triggered external IRQ lines. CPU core with edge-triggered IRQs
    among the first four may need a custom DTS to work correctly.

    Signed-off-by: Max Filippov

    Max Filippov
     

26 Jan, 2019

2 commits

  • When building some xtensa config, I hit the following warning:
    drivers/staging/mt7621-dts/Kconfig:4:warning: 'BUILTIN_DTB' has wrong type.
    'select' only accept arguments of bool and tristate type

    It is due to some arch use BUILTIN_DTB as a flag for the need to builtin
    dtb but xtensa use it as a string for which dtb to bulltin.
    But for this (which dtb to build), it is better to use
    BUILTIN_DTB_SOURCE like other arch do.

    Signed-off-by: Corentin Labbe
    Signed-off-by: Max Filippov

    Corentin Labbe
     
  • Secondary CPU reset vector overlaps part of the double exception handler
    code, resulting in weird crashes and hangups when running user code.
    Move exception vectors one page up so that they don't clash with the
    secondary CPU reset vector.

    Signed-off-by: Max Filippov

    Max Filippov
     

23 Nov, 2018

1 commit

  • There is no good reason to duplicate the PCI menu in every architecture.
    Instead provide a selectable HAVE_PCI symbol that indicates availability
    of PCI support, and a FORCE_PCI symbol to for PCI on and the handle the
    rest in drivers/pci.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Palmer Dabbelt
    Acked-by: Max Filippov
    Acked-by: Thomas Gleixner
    Acked-by: Bjorn Helgaas
    Acked-by: Geert Uytterhoeven
    Acked-by: Paul Burton
    Signed-off-by: Masahiro Yamada

    Christoph Hellwig
     

21 Aug, 2018

1 commit


14 Aug, 2018

1 commit


24 Jan, 2018

1 commit

  • CONFIG_IRQ_DOMAIN_DEBUG is similar to CONFIG_GENERIC_IRQ_DEBUGFS,
    just with less information.

    Spring cleanup time.

    Signed-off-by: Marc Zyngier
    Signed-off-by: Thomas Gleixner
    Cc: Yang Shunyong
    Link: https://lkml.kernel.org/r/20180117142647.23622-1-marc.zyngier@arm.com

    Marc Zyngier
     

21 Sep, 2016

3 commits


10 Sep, 2016

1 commit


24 May, 2016

1 commit


10 Nov, 2015

1 commit

  • Pull xtensa updates from Chris Zankel:

    - fix remaining issues with noMMU cores
    - fix build for cores w/o cache or zero overhead loop options
    - fix boot of secondary cores in SMP configuration
    - add support for DMA to high memory pages
    - add dma_to_phys and phys_to_dma functions.

    * tag 'xtensa-20151108' of git://github.com/czankel/xtensa-linux:
    xtensa: implement dma_to_phys and phys_to_dma
    xtensa: support DMA to high memory
    Revert "xtensa: cache inquiry and unaligned cache handling functions"
    xtensa: drop unused sections and remapped reset handlers
    xtensa: fix secondary core boot in SMP
    xtensa: add FORCE_MAX_ZONEORDER to Kconfig
    xtensa: nommu: provide defconfig for de212 on kc705
    xtensa: nommu: xtfpga: add kc705 DTS
    xtensa: add de212 core variant
    xtensa: nommu: select HAVE_FUTEX_CMPXCHG
    xtensa: nommu: fix default memory start address
    xtensa: nommu: provide correct KIO addresses
    xtensa: nommu: fix USER_RING definition
    xtensa: xtfpga: fix integer overflow in TASK_SIZE
    xtensa: fix build for configs without cache options
    xtensa: fixes for configs without loop option

    Linus Torvalds
     

07 Nov, 2015

1 commit

  • Hugh has pointed that compound_head() call can be unsafe in some
    context. There's one example:

    CPU0 CPU1

    isolate_migratepages_block()
    page_count()
    compound_head()
    !!PageTail() == true
    put_page()
    tail->first_page = NULL
    head = tail->first_page
    alloc_pages(__GFP_COMP)
    prep_compound_page()
    tail->first_page = head
    __SetPageTail(p);
    !!PageTail() == true

    The race is pure theoretical. I don't it's possible to trigger it in
    practice. But who knows.

    We can fix the race by changing how encode PageTail() and compound_head()
    within struct page to be able to update them in one shot.

    The patch introduces page->compound_head into third double word block in
    front of compound_dtor and compound_order. Bit 0 encodes PageTail() and
    the rest bits are pointer to head page if bit zero is set.

    The patch moves page->pmd_huge_pte out of word, just in case if an
    architecture defines pgtable_t into something what can have the bit 0
    set.

    hugetlb_cgroup uses page->lru.next in the second tail page to store
    pointer struct hugetlb_cgroup. The patch switch it to use page->private
    in the second tail page instead. The space is free since ->first_page is
    removed from the union.

    The patch also opens possibility to remove HUGETLB_CGROUP_MIN_ORDER
    limitation, since there's now space in first tail page to store struct
    hugetlb_cgroup pointer. But that's out of scope of the patch.

    That means page->compound_head shares storage space with:

    - page->lru.next;
    - page->next;
    - page->rcu_head.next;

    That's too long list to be absolutely sure, but looks like nobody uses
    bit 0 of the word.

    page->rcu_head.next guaranteed[1] to have bit 0 clean as long as we use
    call_rcu(), call_rcu_bh(), call_rcu_sched(), or call_srcu(). But future
    call_rcu_lazy() is not allowed as it makes use of the bit and we can
    get false positive PageTail().

    [1] http://lkml.kernel.org/g/20150827163634.GD4029@linux.vnet.ibm.com

    Signed-off-by: Kirill A. Shutemov
    Acked-by: Michal Hocko
    Reviewed-by: Andrea Arcangeli
    Cc: Hugh Dickins
    Cc: David Rientjes
    Cc: Vlastimil Babka
    Acked-by: Paul E. McKenney
    Cc: Aneesh Kumar K.V
    Cc: Andi Kleen
    Cc: Christoph Lameter
    Cc: Joonsoo Kim
    Cc: Sergey Senozhatsky
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     

02 Nov, 2015

1 commit


20 Jul, 2015

1 commit

  • No one uses this anymore, and this is not the first time the
    idea of replacing it with a (now possible) userspace side.
    Lock stealing logic was removed long ago in when the lock
    was granted to the highest prio.

    Signed-off-by: Davidlohr Bueso
    Cc: Darren Hart
    Cc: Steven Rostedt
    Cc: Mike Galbraith
    Cc: Paul E. McKenney
    Cc: Sebastian Andrzej Siewior
    Cc: Davidlohr Bueso
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1435782588-4177-2-git-send-email-dave@stgolabs.net
    Signed-off-by: Thomas Gleixner

    Davidlohr Bueso
     

07 Feb, 2015

1 commit


16 Dec, 2014

1 commit

  • The default linker behavior is to optimize identical literal values
    and remove unnecessary overhead. However, because of a bug in the
    linker, this currently results in an error ('call target out of range').

    Disable link-time optimizations per default until there is a fix
    for the linker and add the option to iss_defconfig.

    Signed-off-by: Chris Zankel

    Chris Zankel
     

21 Oct, 2014

3 commits


14 Aug, 2014

2 commits


13 Apr, 2014

1 commit

  • Pull vfs updates from Al Viro:
    "The first vfs pile, with deep apologies for being very late in this
    window.

    Assorted cleanups and fixes, plus a large preparatory part of iov_iter
    work. There's a lot more of that, but it'll probably go into the next
    merge window - it *does* shape up nicely, removes a lot of
    boilerplate, gets rid of locking inconsistencie between aio_write and
    splice_write and I hope to get Kent's direct-io rewrite merged into
    the same queue, but some of the stuff after this point is having
    (mostly trivial) conflicts with the things already merged into
    mainline and with some I want more testing.

    This one passes LTP and xfstests without regressions, in addition to
    usual beating. BTW, readahead02 in ltp syscalls testsuite has started
    giving failures since "mm/readahead.c: fix readahead failure for
    memoryless NUMA nodes and limit readahead pages" - might be a false
    positive, might be a real regression..."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (63 commits)
    missing bits of "splice: fix racy pipe->buffers uses"
    cifs: fix the race in cifs_writev()
    ceph_sync_{,direct_}write: fix an oops on ceph_osdc_new_request() failure
    kill generic_file_buffered_write()
    ocfs2_file_aio_write(): switch to generic_perform_write()
    ceph_aio_write(): switch to generic_perform_write()
    xfs_file_buffered_aio_write(): switch to generic_perform_write()
    export generic_perform_write(), start getting rid of generic_file_buffer_write()
    generic_file_direct_write(): get rid of ppos argument
    btrfs_file_aio_write(): get rid of ppos
    kill the 5th argument of generic_file_buffered_write()
    kill the 4th argument of __generic_file_aio_write()
    lustre: don't open-code kernel_recvmsg()
    ocfs2: don't open-code kernel_recvmsg()
    drbd: don't open-code kernel_recvmsg()
    constify blk_rq_map_user_iov() and friends
    lustre: switch to kernel_sendmsg()
    ocfs2: don't open-code kernel_sendmsg()
    take iov_iter stuff to mm/iov_iter.c
    process_vm_access: tidy up a bit
    ...

    Linus Torvalds
     

08 Apr, 2014

1 commit

  • If the renamed symbol is defined lib/iomap.c implements ioport_map and
    ioport_unmap and currently (nearly) all platforms define the port
    accessor functions outb/inb and friend unconditionally. So
    HAS_IOPORT_MAP is the better name for this.

    Consequently NO_IOPORT is renamed to NO_IOPORT_MAP.

    The motivation for this change is to reintroduce a symbol HAS_IOPORT
    that signals if outb/int et al are available. I will address that at
    least one merge window later though to keep surprises to a minimum and
    catch new introductions of (HAS|NO)_IOPORT.

    The changes in this commit were done using:

    $ git grep -l -E '(NO|HAS)_IOPORT' | xargs perl -p -i -e 's/\b((?:CONFIG_)?(?:NO|HAS)_IOPORT)\b/$1_MAP/'

    Signed-off-by: Uwe Kleine-König
    Acked-by: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Uwe Kleine-König
     

02 Apr, 2014

1 commit


13 Sep, 2013

1 commit


20 Mar, 2013

1 commit


04 Oct, 2012

1 commit

  • Remove Kconfig entries, boot subdirectory, dependencies from other
    boot-* Makefiles, and sections from ld scripts.

    Remove stale redboot code that used to pass initrd addresses in a3 and
    a4 to _start.

    Signed-off-by: Max Filippov
    Signed-off-by: Chris Zankel

    Max Filippov
     

16 May, 2012

1 commit

  • This represents the mass deletion of the of the tokenring support.

    It gets rid of:
    - the net/tr.c which the drivers depended on
    - the drivers/net component
    - the Kbuild infrastructure around it
    - any tokenring related CONFIG_ settings in any defconfigs
    - the tokenring headers in the include/linux dir
    - the firmware associated with the tokenring drivers.
    - any associated token ring documentation.

    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

23 Mar, 2012

1 commit

  • Get rid of INLINE_SPIN_UNLOCK entirely replacing it with
    UNINLINE_SPIN_UNLOCK instead of the reverse meaning.

    Whoever wants to change the default spinlock inlining
    behavior and uninline the spinlocks for some weird reason,
    such as spinlock debugging, paravirt etc. can now all just
    select UNINLINE_SPIN_UNLOCK

    Original discussion at: https://lkml.org/lkml/2012/3/21/357

    Suggested-by: Linus Torvalds
    Signed-off-by: Raghavendra K T
    Cc: Linus Torvalds
    Cc: Ralf Baechle
    Cc: Chris Metcalf
    Cc: Chris Zankel
    Cc: linux-mips@linux-mips.org
    Link: http://lkml.kernel.org/r/20120322095502.30866.75756.sendpatchset@codeblue
    [ tidied up the changelog a bit ]
    Signed-off-by: Ingo Molnar

    Raghavendra K T
     

05 Oct, 2011

1 commit

  • Awhile back I removed all the CONFIG_GENERIC_TIME referecnes as
    the last of the non-GENERIC_TIME arches were converted.

    However, due to the functionality being important and around for
    awhile, there apparently were some out of tree hardware enablement
    patches that used it and have since been merged.

    This patch removes the remaining instances of GENERIC_TIME.

    Singed-off-by: John Stultz

    John Stultz
     

11 Apr, 2011

1 commit


15 Feb, 2011

1 commit


21 Jan, 2011

1 commit

  • The meaning of CONFIG_EMBEDDED has long since been obsoleted; the option
    is used to configure any non-standard kernel with a much larger scope than
    only small devices.

    This patch renames the option to CONFIG_EXPERT in init/Kconfig and fixes
    references to the option throughout the kernel. A new CONFIG_EMBEDDED
    option is added that automatically selects CONFIG_EXPERT when enabled and
    can be used in the future to isolate options that should only be
    considered for embedded systems (RISC architectures, SLOB, etc).

    Calling the option "EXPERT" more accurately represents its intention: only
    expert users who understand the impact of the configuration changes they
    are making should enable it.

    Reviewed-by: Ingo Molnar
    Acked-by: David Woodhouse
    Signed-off-by: David Rientjes
    Cc: Greg KH
    Cc: "David S. Miller"
    Cc: Jens Axboe
    Cc: Arnd Bergmann
    Cc: Robin Holt
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes