1. 29 3月, 2014 1 次提交
  2. 17 3月, 2014 1 次提交
  3. 14 3月, 2014 2 次提交
  4. 07 3月, 2014 4 次提交
  5. 06 3月, 2014 1 次提交
  6. 05 3月, 2014 1 次提交
    • T
      s390: Do not rely on magic indirect includes · 257ceab7
      Thomas Gleixner 提交于
      commit: 8f945a33 (genirq: Move kstat_incr_irqs_this_cpu() to core)
      unearthed the following:
      
         arch/s390/kernel/irq.c: In function 'init_IRQ':
      >> arch/s390/kernel/irq.c:93:2: error: implicit declaration of function 'irq_reserve_irqs'
      [-Werror=implicit-function-declaration]
      ....
         cc1: some warnings being treated as errors
      --
         drivers/s390/cio/cio.c: In function 'init_cio_interrupts':
      >> drivers/s390/cio/cio.c:594:2: error: implicit declaration of function
      'irq_set_chip_and_handler' [-Werror=implicit-function-declaration]
      [-Werror=implicit-function-declaration]
      ....
         cc1: some warnings being treated as errors
      
      The reason is that those files require linux/irq.h and magically
      pulled that in via linux/kernel_stat.h
      
      The commit above got rid of the pointless include of linux/irq.h in
      linux/kernel_stat.h and therefor broke the build.
      
      Include linux/irq.h
      
      Reported-by: fengguang.wu@intel.com
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: s390 <linux-s390@vger.kernel.org>
      257ceab7
  7. 04 3月, 2014 26 次提交
  8. 21 2月, 2014 4 次提交
    • M
      s390/mm,tlb: race of lazy TLB flush vs. recreation of TLB entries · 53e857f3
      Martin Schwidefsky 提交于
      Git commit 050eef36 "[S390] fix tlb flushing vs. concurrent
      /proc accesses" introduced the attach counter to avoid using the
      mm_users value to decide between IPTE for every PTE and lazy TLB
      flushing with IDTE. That fixed the problem with mm_users but it
      introduced another subtle race, fortunately one that is very hard
      to hit.
      The background is the requirement of the architecture that a valid
      PTE may not be changed while it can be used concurrently by another
      cpu. The decision between IPTE and lazy TLB flushing needs to be
      done while the PTE is still valid. Now if the virtual cpu is
      temporarily stopped after the decision to use lazy TLB flushing but
      before the invalid bit of the PTE has been set, another cpu can attach
      the mm, find that flush_mm is set, do the IDTE, return to userspace,
      and recreate a TLB that uses the PTE in question. When the first,
      stopped cpu continues it will change the PTE while it is attached on
      another cpu. The first cpu will do another IDTE shortly after the
      modification of the PTE which makes the race window quite short.
      
      To fix this race the CPU that wants to attach the address space of a
      user space thread needs to wait for the end of the PTE modification.
      The number of concurrent TLB flushers for an mm is tracked in the
      upper 16 bits of the attach_count and finish_arch_post_lock_switch
      is used to wait for the end of the flush operation if required.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      53e857f3
    • H
      s390/uaccess: remove dead kernel parameter 'user_mode=' · 7385d0a5
      Heiko Carstens 提交于
      Remove another leftover from the time when we supported running
      user space in either home or primary address space.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      7385d0a5
    • H
      s390/setup: get rid of MACHINE_HAS_MVCOS machine flag · ca04ddbf
      Heiko Carstens 提交于
      MACHINE_HAS_MVCOS is used exactly once when the machine is brought up.
      There is no need to cache the flag in the machine_flags.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      ca04ddbf
    • H
      s390/uaccess: get rid of indirect function calls · 4f41c2b4
      Heiko Carstens 提交于
      There are only two uaccess variants on s390 left: the version that is used
      if the mvcos instruction is available, and the page table walk variant.
      So there is no need for expensive indirect function calls.
      
      By default the mvcos variant will be called. If the mvcos instruction is not
      available it will call the page table walk variant.
      
      For minimal performance impact the "if (mvcos_is_available)" is implemented
      with a jump label, which will be a six byte nop on machines with mvcos.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      4f41c2b4