1. 11 Jun, 2019 1 commit
  2. 09 Jun, 2019 1 commit
  3. 07 Jun, 2019 1 commit
  4. 14 May, 2019 1 commit
    • Masahiro Yamada's avatar
      s390: move arch/s390/defconfig to arch/s390/configs/defconfig · f3e20ad6
      Masahiro Yamada authored
      
      As of Linux 5.1, alpha and s390 are the last architectures that
      have defconfig in arch/*/ instead of arch/*/configs/.
      
        $ find arch -name defconfig | sort
        arch/alpha/defconfig
        arch/arm64/configs/defconfig
        arch/csky/configs/defconfig
        arch/nds32/configs/defconfig
        arch/riscv/configs/defconfig
        arch/s390/defconfig
      
      The arch/$(ARCH)/defconfig is the hard-coded default in Kconfig,
      and I want to deprecate it after evacuating the remaining defconfig
      into the standard location, arch/*/configs/.
      
      Define KBUILD_DEFCONFIG like other architectures, and move defconfig
      into the configs/ subdirectory.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      f3e20ad6
  5. 03 May, 2019 1 commit
  6. 29 Apr, 2019 1 commit
  7. 11 Apr, 2019 1 commit
  8. 02 Nov, 2018 1 commit
    • Vasily Gorbik's avatar
      s390/kasan: increase instrumented stack size to 64k · 9fed920e
      Vasily Gorbik authored
      
      Increase kasan instrumented kernel stack size from 32k to 64k. Other
      architectures seems to get away with just doubling kernel stack size under
      kasan, but on s390 this appears to be not enough due to bigger frame size.
      The particular pain point is kasan inlined checks (CONFIG_KASAN_INLINE
      vs CONFIG_KASAN_OUTLINE). With inlined checks one particular case hitting
      stack overflow is fs sync on xfs filesystem:
      
       #0 [9a0681e8]  704 bytes  check_usage at 34b1fc
       #1 [9a0684a8]  432 bytes  check_usage at 34c710
       #2 [9a068658]  1048 bytes  validate_chain at 35044a
       #3 [9a068a70]  312 bytes  __lock_acquire at 3559fe
       #4 [9a068ba8]  440 bytes  lock_acquire at 3576ee
       #5 [9a068d60]  104 bytes  _raw_spin_lock at 21b44e0
       #6 [9a068dc8]  1992 bytes  enqueue_entity at 2dbf72
       #7 [9a069590]  1496 bytes  enqueue_task_fair at 2df5f0
       #8 [9a069b68]  64 bytes  ttwu_do_activate at 28f438
       #9 [9a069ba8]  552 bytes  try_to_wake_up at 298c4c
       #10 [9a069dd0]  168 bytes  wake_up_worker at 23f97c
       #11 [9a069e78]  200 bytes  insert_work at 23fc2e
       #12 [9a069f40]  648 bytes  __queue_work at 2487c0
       #13 [9a06a1c8]  200 bytes  __queue_delayed_work at 24db28
       #14 [9a06a290]  248 bytes  mod_delayed_work_on at 24de84
       #15 [9a06a388]  24 bytes  kblockd_mod_delayed_work_on at 153e2a0
       #16 [9a06a3a0]  288 bytes  __blk_mq_delay_run_hw_queue at 158168c
       #17 [9a06a4c0]  192 bytes  blk_mq_run_hw_queue at 1581a3c
       #18 [9a06a580]  184 bytes  blk_mq_sched_insert_requests at 15a2192
       #19 [9a06a638]  1024 bytes  blk_mq_flush_plug_list at 1590f3a
       #20 [9a06aa38]  704 bytes  blk_flush_plug_list at 1555028
       #21 [9a06acf8]  320 bytes  schedule at 219e476
       #22 [9a06ae38]  760 bytes  schedule_timeout at 21b0aac
       #23 [9a06b130]  408 bytes  wait_for_common at 21a1706
       #24 [9a06b2c8]  360 bytes  xfs_buf_iowait at fa1540
       #25 [9a06b430]  256 bytes  __xfs_buf_submit at fadae6
       #26 [9a06b530]  264 bytes  xfs_buf_read_map at fae3f6
       #27 [9a06b638]  656 bytes  xfs_trans_read_buf_map at 10ac9a8
       #28 [9a06b8c8]  304 bytes  xfs_btree_kill_root at e72426
       #29 [9a06b9f8]  288 bytes  xfs_btree_lookup_get_block at e7bc5e
       #30 [9a06bb18]  624 bytes  xfs_btree_lookup at e7e1a6
       #31 [9a06bd88]  2664 bytes  xfs_alloc_ag_vextent_near at dfa070
       #32 [9a06c7f0]  144 bytes  xfs_alloc_ag_vextent at dff3ca
       #33 [9a06c880]  1128 bytes  xfs_alloc_vextent at e05fce
       #34 [9a06cce8]  584 bytes  xfs_bmap_btalloc at e58342
       #35 [9a06cf30]  1336 bytes  xfs_bmapi_write at e618de
       #36 [9a06d468]  776 bytes  xfs_iomap_write_allocate at ff678e
       #37 [9a06d770]  720 bytes  xfs_map_blocks at f82af8
       #38 [9a06da40]  928 bytes  xfs_writepage_map at f83cd6
       #39 [9a06dde0]  320 bytes  xfs_do_writepage at f85872
       #40 [9a06df20]  1320 bytes  write_cache_pages at 73dfe8
       #41 [9a06e448]  208 bytes  xfs_vm_writepages at f7f892
       #42 [9a06e518]  88 bytes  do_writepages at 73fe6a
       #43 [9a06e570]  872 bytes  __writeback_single_inode at a20cb6
       #44 [9a06e8d8]  664 bytes  writeback_sb_inodes at a23be2
       #45 [9a06eb70]  296 bytes  __writeback_inodes_wb at a242e0
       #46 [9a06ec98]  928 bytes  wb_writeback at a2500e
       #47 [9a06f038]  848 bytes  wb_do_writeback at a260ae
       #48 [9a06f388]  536 bytes  wb_workfn at a28228
       #49 [9a06f5a0]  1088 bytes  process_one_work at 24a234
       #50 [9a06f9e0]  1120 bytes  worker_thread at 24ba26
       #51 [9a06fe40]  104 bytes  kthread at 26545a
       #52 [9a06fea8]             kernel_thread_starter at 21b6b62
      
      To be able to increase the stack size to 64k reuse LLILL instruction
      in __switch_to function to load 64k - STACK_FRAME_OVERHEAD - __PT_SIZE
      (65192) value as unsigned.
      Reported-by: default avatarBenjamin Block <bblock@linux.ibm.com>
      Reviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      9fed920e
  9. 09 Oct, 2018 1 commit
  10. 23 Aug, 2018 1 commit
  11. 16 Aug, 2018 1 commit
  12. 02 Jul, 2018 1 commit
  13. 25 Jun, 2018 5 commits
  14. 29 May, 2018 1 commit
  15. 28 Mar, 2018 1 commit
  16. 27 Feb, 2018 1 commit
  17. 07 Feb, 2018 1 commit
    • Martin Schwidefsky's avatar
      s390: introduce execute-trampolines for branches · f19fbd5e
      Martin Schwidefsky authored
      
      Add CONFIG_EXPOLINE to enable the use of the new -mindirect-branch= and
      -mfunction_return= compiler options to create a kernel fortified against
      the specte v2 attack.
      
      With CONFIG_EXPOLINE=y all indirect branches will be issued with an
      execute type instruction. For z10 or newer the EXRL instruction will
      be used, for older machines the EX instruction. The typical indirect
      call
      
      	basr	%r14,%r1
      
      is replaced with a PC relative call to a new thunk
      
      	brasl	%r14,__s390x_indirect_jump_r1
      
      The thunk contains the EXRL/EX instruction to the indirect branch
      
      __s390x_indirect_jump_r1:
      	exrl	0,0f
      	j	.
      0:	br	%r1
      
      The detour via the execute type instruction has a performance impact.
      To get rid of the detour the new kernel parameter "nospectre_v2" and
      "spectre_v2=[on,off,auto]" can be used. If the parameter is specified
      the kernel and module code will be patched at runtime.
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      f19fbd5e
  18. 23 Jan, 2018 2 commits
  19. 13 Dec, 2017 2 commits
  20. 24 Nov, 2017 2 commits
    • Greg Kroah-Hartman's avatar
      s390: Remove redundant license text · fec37202
      Greg Kroah-Hartman authored
      
      Now that the SPDX tag is in all arch/s390/ files, that identifies the
      license in a specific and legally-defined manner.  So the extra GPL text
      wording in the remaining files can be removed as it is no longer needed
      at all.
      
      This is done on a quest to remove the 700+ different ways that files in
      the kernel describe the GPL license text.  And there's unneeded stuff
      like the address (sometimes incorrect) for the FSF which is never
      needed.
      
      No copyright headers or other non-license-description text was removed.
      
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      fec37202
    • Greg Kroah-Hartman's avatar
      s390: add SPDX identifiers to the remaining files · 0b73214f
      Greg Kroah-Hartman authored
      
      It's good to have SPDX identifiers in all files to make it easier to
      audit the kernel tree for correct licenses.
      
      Update the remaining arch/s390/ files with the correct SPDX license
      identifier based on the license text in the file itself.  The SPDX
      identifier is a legally binding shorthand, which can be used instead of
      the full boiler plate text.
      
      This work is based on a script and data from Thomas Gleixner, Philippe
      Ombredanne, and Kate Stewart.
      
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Christian Borntraeger <borntraeger@de.ibm.com>
      Cc: Cornelia Huck <cohuck@redhat.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Kate Stewart <kstewart@linuxfoundation.org>
      Cc: Philippe Ombredanne <pombredanne@nexb.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      0b73214f
  21. 08 Nov, 2017 1 commit
    • Heiko Carstens's avatar
      s390/disassembler: generate opcode tables from text file · 8bc1e4ec
      Heiko Carstens authored
      
      The current way of adding new instructions to the opcode tables is
      painful and error prone. Therefore add, similar to binutils, a text
      file which contains all opcodes and the corresponding mnemonics and
      instruction formats.
      
      A small gen_opcode_table tool then generates a header file with the
      required enums and opcode table initializers at the prepare step of
      the kernel build.
      
      This way only a simple text file has to be maintained, which can be
      rather easily extended.
      
      Unlike before where there were plenty of opcode tables and a large
      switch statement to find the correct opcode table, there is now only
      one opcode table left which contains all instructions. A second opcode
      offset table now contains offsets within the opcode table to find
      instructions which have the same opcode prefix. In order to save space
      all 1-byte opcode instructions are grouped together at the end of the
      opcode table. This is also quite similar to like it was before.
      
      In addition also move and change code and definitions within the
      disassembler. As a side effect this reduces the size required for the
      code and opcode tables by ~1.5k.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      8bc1e4ec
  22. 02 Nov, 2017 1 commit
  23. 26 Jul, 2017 1 commit
  24. 06 Sep, 2016 1 commit
  25. 18 Dec, 2015 1 commit
    • Heiko Carstens's avatar
      s390/facilities: add helper tool to generate facility lists · c30f6828
      Heiko Carstens authored
      
      Modifying the architecture level set facility lists was always very
      error prone. Given the numbering of the facility bits within the
      Principles of Operation, where the most significant bit number is 0,
      it happened a lot of times that wrong bits were set or cleared.
      
      Therefore this patch adds a tool "gen_facilities" which generates
      include/generated/facilites.h.  The definition of the bits to be set
      is contained within arch/s390/include/asm/facilities_src.h and can be
      easily extended to e.g. also generate such lists for the KVM module.
      
      The generated file looks like this:
      
       #define FACILITIES_ALS _AC(0xc1006450f0040000,UL)
       #define FACILITIES_ALS_DWORDS 1
      
      The facility bits defined in this patch match 1:1 to the current masks
      that can be found in head.S.
      
      That is if the tool gets executed with -march=z990 then the generated
      masks will equal the masks in head.S for CONFIG_MARCH_Z990.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      c30f6828
  26. 27 Nov, 2015 1 commit
  27. 29 Jul, 2015 1 commit
  28. 25 Mar, 2015 1 commit
    • Heiko Carstens's avatar
      s390: remove 31 bit support · 5a79859a
      Heiko Carstens authored
      Remove the 31 bit support in order to reduce maintenance cost and
      effectively remove dead code. Since a couple of years there is no
      distribution left that comes with a 31 bit kernel.
      
      The 31 bit kernel also has been broken since more than a year before
      anybody noticed. In addition I added a removal warning to the kernel
      shown at ipl for 5 minutes: a960062e
      
       ("s390: add 31 bit warning
      message") which let everybody know about the plan to remove 31 bit
      code. We didn't get any response.
      
      Given that the last 31 bit only machine was introduced in 1999 let's
      remove the code.
      Anybody with 31 bit user space code can still use the compat mode.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      5a79859a
  29. 29 Jan, 2015 1 commit
  30. 22 Jan, 2015 1 commit
  31. 09 Sep, 2014 1 commit
  32. 31 Oct, 2013 1 commit
  33. 24 Oct, 2013 1 commit
    • Heiko Carstens's avatar
      s390: always set -march compiler option · faf499df
      Heiko Carstens authored
      
      Currently we only set the -march compiler option if the kbuild
      system figured out that the compiler actually supports the selected
      architecture (cc-option test).
      
      In result this means that no -march compiler option is set when an
      unsupported cpu architecture of the current compiler is selected.
      The kernel compile will afterwards succeed but with the default
      architecture instead of the (unsupported) selected one.
      
      Change this behaviour, so compiles will fail if the compiler does
      not support the selected cpu architecture.
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      faf499df