1. 11 7月, 2016 1 次提交
  2. 08 7月, 2016 3 次提交
  3. 07 7月, 2016 2 次提交
    • G
      powerpc/pci: Assign fixed PHB number based on device-tree properties · 63a72284
      Guilherme G. Piccoli 提交于
      The domain/PHB field of PCI addresses has its value obtained from a
      global variable, incremented each time a new domain (represented by
      struct pci_controller) is added on the system. The domain addition
      process happens during boot or due to PHB hotplug add.
      
      As recent kernels are using predictable naming for network interfaces,
      the network stack is more tied to PCI naming. This can be a problem in
      hotplug scenarios, because PCI addresses will change if devices are
      removed and then re-added. This situation seems unusual, but it can
      happen if a user wants to replace a NIC without rebooting the machine,
      for example.
      
      This patch changes the way PCI domain values are generated: now, we use
      device-tree properties to assign fixed PHB numbers to PCI addresses
      when available (meaning pSeries and PowerNV cases). We also use a bitmap
      to allow dynamic PHB numbering when device-tree properties are not
      used. This bitmap keeps track of used PHB numbers and if a PHB is
      released (by hotplug operations for example), it allows the reuse of
      this PHB number, avoiding PCI address to change in case of device remove
      and re-add soon after. No functional changes were introduced.
      Signed-off-by: NGuilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
      Reviewed-by: NGavin Shan <gwshan@linux.vnet.ibm.com>
      Reviewed-by: NIan Munsie <imunsie@au1.ibm.com>
      Acked-by: NGavin Shan <gwshan@linux.vnet.ibm.com>
      [mpe: Drop unnecessary machine_is(pseries) test]
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      63a72284
    • M
      powerpc/pci: Fix build with PCI_IOV=y and EEH=n · d468fcaf
      Michael Ellerman 提交于
      Despite attempting to fix this in commit fb36e907 ("powerpc/pci: Fix
      SRIOV not building without EEH enabled"), the build is still broken when
      PCI_IOV=y and EEH=n (eg. g5_defconfig with PCI_IOV=y):
      
        arch/powerpc/kernel/pci_dn.c: In function ‘remove_dev_pci_data’:
        arch/powerpc/kernel/pci_dn.c:230:18: error: unused variable ‘edev’
      
      Incorporate Ben's idea of using __maybe_unused to avoid so many #ifdefs.
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      d468fcaf
  4. 05 7月, 2016 5 次提交
    • O
      powerpc/timer: Large Decrementer support · 79901024
      Oliver O'Halloran 提交于
      Power ISAv3 adds a large decrementer (LD) mode which increases the size
      of the decrementer register. The size of the enlarged decrementer
      register is between 32 and 64 bits with the exact size being dependent
      on the implementation. When in LD mode, reads are sign extended to 64
      bits and a decrementer exception is raised when the high bit is set (i.e
      the value goes below zero). Writes however are truncated to the physical
      register width so some care needs to be taken to ensure that the high
      bit is not set when reloading the decrementer. This patch adds support
      for using the LD inside the host kernel on processors that support it.
      
      When LD mode is supported firmware will supply the ibm,dec-bits property
      for CPU nodes to allow the kernel to determine the maximum decrementer
      value. Enabling LD mode is a hypervisor privileged operation so the kernel
      can only enable it manually when running in hypervisor mode. Guests that
      support LD mode can request it using the "ibm,client-architecture-support"
      firmware call (not implemented in this patch) or some other platform
      specific method. If this property is not supplied then the traditional
      decrementer width of 32 bit is assumed and LD mode will not be enabled.
      
      This patch was based on initial work by Jack Miller.
      Signed-off-by: NOliver O'Halloran <oohall@gmail.com>
      Signed-off-by: NBalbir Singh <bsingharora@gmail.com>
      Acked-by: NMichael Neuling <mikey@neuling.org>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      79901024
    • A
      powerpc/rtas: Fix array overrun in ppc_rtas() syscall · a9862c74
      Andrew Donnellan 提交于
      If ppc_rtas() is called with args.nargs == 16 and args.nret == 0,
      args.rets is set to point to &args.args[16], which is beyond the end of
      the args.args array. This results in a minor read overrun of the array
      when we check the first return code (which, per PAPR, is a required
      output of all RTAS calls) to see if there's been a hardware error.
      
      Change the nargs/nret check to ensure nargs is <= 15, allowing room for
      the status code. Users shouldn't be calling with nret == 0, but there's
      no real harm if they do, so we don't stop them.
      Signed-off-by: NAndrew Donnellan <andrew.donnellan@au1.ibm.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      a9862c74
    • C
      powerpc: Send SIGBUS on unaligned copy and paste · ae26b36f
      Chris Smart 提交于
      Calling ISA 3.0 instructions copy, copy_first, paste and paste_last
      generates an alignment fault when copying or pasting unaligned
      data (128 byte). We catch this and send SIGBUS to the userspace
      process that caused it.
      
      We do not emulate these because paste may contain additional metadata
      when pasting to a co-processor and paste_last is the synchronisation
      point for preceding copy/paste sequences.
      
      Thanks to Michael Neuling <mikey@neuling.org> for his help.
      Signed-off-by: NChris Smart <chris@distroguy.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      ae26b36f
    • M
      powerpc/perf: factor out power8 __init_pmu code · 393eb79a
      Madhavan Srinivasan 提交于
      Factor out the power8 pmu init functions to share with
      power9. Monitor Mode Control Register S(MMCRS) and
      Monitor Mode Control Register H(MMCRH) registers are
      dropped in Power9. These registers are added to new
      function which are included for power8 init.
      Signed-off-by: NMadhavan Srinivasan <maddy@linux.vnet.ibm.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      393eb79a
    • M
      powerpc/fadump: Fix build error introduced by recent cleanup · b5b1cfc5
      Michael Ellerman 提交于
      We spent so much time bike-shedding the printk() we missed that the next
      line was missing a semi-colon. And it seems none of our defconfigs turn
      on CONFIG_FA_DUMP.
      
      Fixes: 4a03749f ("powerpc/fadump: Trivial fix of spelling mistake, clean up message")
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      b5b1cfc5
  5. 28 6月, 2016 1 次提交
  6. 24 6月, 2016 1 次提交
  7. 21 6月, 2016 8 次提交
    • G
      powerpc/pci: Delay populating pdn · 8cc7581c
      Gavin Shan 提交于
      The pdn (struct pci_dn) instances are allocated from memblock or
      bootmem when creating PCI controller (hoses) in setup_arch(). PCI
      hotplug, which will be supported by proceeding patches, releases
      PCI device nodes and their corresponding pdn on unplugging event.
      The memory chunks for pdn instances allocated from memblock or
      bootmem are hard to reused after being released.
      
      This delays creating pdn by pci_devs_phb_init() from setup_arch()
      to core_initcall() so that they are allocated from slab. The memory
      consumed by pdn can be released to system without problem during
      PCI unplugging time. It indicates that pci_dn is unavailable in
      setup_arch() and the the fixup on pdn (like AGP's) can't be carried
      out that time. We have to do that in pcibios_root_bridge_prepare()
      on maple/pasemi/powermac platforms where/when the pdn is available.
      pcibios_root_bridge_prepare is called from subsys_initcall() which
      is executed after core_initcall() so the code flow does not change.
      
      At the mean while, the EEH device is created when pdn is populated,
      meaning pdn and EEH device have same life cycle. In turn, we needn't
      call eeh_dev_init() to create EEH device explicitly.
      Signed-off-by: NGavin Shan <gwshan@linux.vnet.ibm.com>
      Reviewed-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      8cc7581c
    • G
      powerpc/pci: Update bridge windows on PCI plug · 7415c14c
      Gavin Shan 提交于
      On the PCI plugging event, PCI slot's subordinate devices are
      scanned and their (IO and MMIO) resources are assigned. Platform
      dependent resources (PE#, IO/MMIO/DMA windows) are allocated or
      created on updating windows of the slot's upstream bridge.
      
      This updates the windows of the hot plugged slot's upstream bridge
      in pcibios_finish_adding_to_bus() so that the platform resources
      (PE#, IO/MMIO/DMA segments) are allocated or created accordingly.
      Signed-off-by: NGavin Shan <gwshan@linux.vnet.ibm.com>
      Reviewed-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      7415c14c
    • G
      powerpc/pci: Override pcibios_setup_bridge() · c5fcb29a
      Gavin Shan 提交于
      This overrides pcibios_setup_bridge() that is called to update PCI
      bridge windows when PCI resource assignment is completed, to assign
      PE and setup various (resource) mapping for the PE in subsequent
      patches.
      Signed-off-by: NGavin Shan <gwshan@linux.vnet.ibm.com>
      Reviewed-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      c5fcb29a
    • M
      powerpc: export cpu_to_core_id() · f8ab4810
      Mauricio Faria de Oliveira 提交于
      Export cpu_to_core_id(). This will be used by the lpfc driver.
      
      This enables topology_core_id() from <linux/topology.h> (defined
      to cpu_to_core_id() in arch/powerpc/include/asm/topology.h) to be
      used by (non-builtin) modules.
      
      That is arch-neutral, already used by eg, drivers/base/topology.c,
      but it is builtin (obj-y in Makefile) thus didn't need the export.
      
      Since the module uses topology_core_id() and this is defined to
      cpu_to_core_id(), it needs the export, otherwise:
      
          ERROR: "cpu_to_core_id" [drivers/scsi/lpfc/lpfc.ko] undefined!
      
      Tested on next-20160601.
      Signed-off-by: NMauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      f8ab4810
    • J
      powerpc: Load Monitor Register Support · bd3ea317
      Jack Miller 提交于
      This enables new registers, LMRR and LMSER, that can trigger an EBB in
      userspace code when a monitored load (via the new ldmx instruction)
      loads memory from a monitored space. This facility is controlled by a
      new FSCR bit, LM.
      
      This patch disables the FSCR LM control bit on task init and enables
      that bit when a load monitor facility unavailable exception is taken
      for using it. On context switch, this bit is then used to determine
      whether the two relevant registers are saved and restored. This is
      done lazily for performance reasons.
      Signed-off-by: NJack Miller <jack@codezen.org>
      Signed-off-by: NMichael Neuling <mikey@neuling.org>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      bd3ea317
    • M
      powerpc: Improve FSCR init and context switching · b57bd2de
      Michael Neuling 提交于
      This fixes a few issues with FSCR init and switching.
      
      In commit 152d523e ("powerpc: Create context switch helpers
      save_sprs() and restore_sprs()") we moved the setting of the FSCR
      register from inside an CPU_FTR_ARCH_207S section to inside just a
      CPU_FTR_ARCH_DSCR section. Hence we are setting FSCR on POWER6/7 where
      the FSCR doesn't exist. This is harmless but we shouldn't do it.
      
      Also, we can simplify the FSCR context switch. We don't need to go
      through the calculation involving dscr_inherit. We can just restore
      what we saved last time.
      
      We also set an initial value in INIT_THREAD, so that pid 1 which is
      cloned from that gets a sane value.
      
      Based on patch by Jack Miller.
      Signed-off-by: NMichael Neuling <mikey@neuling.org>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      b57bd2de
    • M
      powerpc: Fix misleading comment in early_setup_secondary() · 103b7827
      Madhavan Srinivasan 提交于
      Current comment in the early_setup_secondary() for paca->soft_enabled
      update is misleading. Comment should say to Mark interrupts "disabled"
      instead of "enabled". Fix the typo.
      Signed-off-by: NMadhavan Srinivasan <maddy@linux.vnet.ibm.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      103b7827
    • T
      powerpc/kprobes: Remove kretprobe_trampoline_holder. · 61ed9cfb
      Thiago Jung Bauermann 提交于
      Fixes the following testsuite failure:
      
        $ sudo ./perf test -v kallsyms
         1: vmlinux symtab matches kallsyms                          :
        --- start ---
        test child forked, pid 12489
        Using /proc/kcore for kernel object code
        Looking at the vmlinux_path (8 entries long)
        Using /boot/vmlinux for symbols
        0xc00000000003d300: diff name v: .kretprobe_trampoline_holder k: kretprobe_trampoline
        Maps only in vmlinux:
         c00000000086ca38-c000000000879b6c 87ca38 [kernel].text.unlikely
         c000000000879b6c-c000000000bf0000 889b6c [kernel].meminit.text
         c000000000bf0000-c000000000c53264 c00000 [kernel].init.text
         c000000000c53264-d000000004250000 c63264 [kernel].exit.text
         d000000004250000-d000000004450000 0 [libcrc32c]
         d000000004450000-d000000004620000 0 [xfs]
         d000000004620000-d000000004680000 0 [autofs4]
         d000000004680000-d0000000046e0000 0 [x_tables]
         d0000000046e0000-d000000004780000 0 [ip_tables]
         d000000004780000-d0000000047e0000 0 [rng_core]
         d0000000047e0000-ffffffffffffffff 0 [pseries_rng]
        Maps in vmlinux with a different name in kallsyms:
        Maps only in kallsyms:
         d000000000000000-f000000000000000 1000000000010000 [kernel.kallsyms]
         f000000000000000-ffffffffffffffff 3000000000010000 [kernel.kallsyms]
        test child finished with -1
        ---- end ----
        vmlinux symtab matches kallsyms: FAILED!
      
      The problem is that the kretprobe_trampoline symbol looks like this:
      
        $ eu-readelf -s /boot/vmlinux G kretprobe_trampoline
         2431: c000000001302368     24 NOTYPE  LOCAL  DEFAULT       37 kretprobe_trampoline_holder
         2432: c00000000003d300      8 FUNC    LOCAL  DEFAULT        1 .kretprobe_trampoline_holder
        97543: c00000000003d300      0 NOTYPE  GLOBAL DEFAULT        1 kretprobe_trampoline
      
      Its type is NOTYPE, and its size is 0, and this is a problem because
      symbol-elf.c:dso__load_sym skips function symbols that are not STT_FUNC
      or STT_GNU_IFUNC (this is determined by elf_sym__is_function). Even
      if the type is changed to STT_FUNC, when dso__load_sym calls
      symbols__fixup_duplicate, the kretprobe_trampoline symbol is dropped in
      favour of .kretprobe_trampoline_holder because the latter has non-zero
      size (as determined by choose_best_symbol).
      
      With this patch, all vmlinux symbols match /proc/kallsyms and the
      testcase passes.
      
      Commit c1c355ce ("x86/kprobes: Get rid of
      kretprobe_trampoline_holder()") gets rid of kretprobe_trampoline_holder
      altogether on x86. This commit does the same on powerpc. This change
      introduces no regressions on the perf and ftracetest testsuite results.
      Reviewed-by: NNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
      Signed-off-by: NThiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      61ed9cfb
  8. 17 6月, 2016 1 次提交
  9. 16 6月, 2016 6 次提交
    • D
      powerpc/align: Use #ifdef __BIG_ENDIAN__ #else for REG_BYTE · a9650e9b
      Daniel Axtens 提交于
      Sparse complains that it doesn't know what REG_BYTE is:
      
        arch/powerpc/kernel/align.c:313:29: error: undefined identifier 'REG_BYTE'
      
      REG_BYTE is defined differently based on whether we're compiling for
      LE, BE32 or BE64. Sparse apparently doesn't provide __BIG_ENDIAN__ or
      __LITTLE_ENDIAN__, which means we get no definition.
      
      Rather than check for __BIG_ENDIAN__ and then separately for
      __LITTLE_ENDIAN__, just switch the #ifdef to check for __BIG_ENDIAN__
      and then #else we define the little endian version. Technically that's
      dicey because PDP_ENDIAN is also a possibility, but we already do it in
      a lot of places so one more hardly matters.
      Signed-off-by: NDaniel Axtens <dja@axtens.net>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      a9650e9b
    • D
      powerpc/sparse: Include headers containing prototypes · 665e87ff
      Daniel Axtens 提交于
      Sometimes headers that provide prototypes for functions are
      accidentally omitted from the files that define the functions.
      
      Fix a couple of times that occurs.
      Signed-off-by: NDaniel Axtens <dja@axtens.net>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      665e87ff
    • D
      powerpc: Introduce asm-prototypes.h · 42f5b4ca
      Daniel Axtens 提交于
      Sparse picked up a number of functions that are implemented in C and
      then only referred to in asm code.
      
      This introduces asm-prototypes.h, which provides a place for
      prototypes of these functions.
      
      This silences some sparse warnings.
      Signed-off-by: NDaniel Axtens <dja@axtens.net>
      [mpe: Add include guards, clean up copyright & GPL text]
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      42f5b4ca
    • D
      powerpc/sparse: make some things static · 34852ed5
      Daniel Axtens 提交于
      This is just a smattering of things picked up by sparse that should
      be made static.
      Signed-off-by: NDaniel Axtens <dja@axtens.net>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      34852ed5
    • S
      powerpc: Add array bounds checking to crash_shutdown_handlers · 1d145165
      Suraj Jitindar Singh 提交于
      The array crash_shutdown_handles is an array of size CRASH_HANDLER_MAX+1
      containing up to CRASH_HANDLER_MAX shutdown_handlers. It is assumed to
      be NULL terminated, which it is under normal circumstances. Array
      accesses in the functions crash_shutdown_unregister() and
      default_machine_crash_shutdown() rely on this NULL termination property
      when traversing this list and don't protect again out of bounds accesses.
      If the NULL terminator were somehow overwritten these functions could
      potentially access out of the bounds of the array.
      
      Shrink the array to size CRASH_HANDLER_MAX and implement explicit array
      bounds checking when accessing the elements of the
      crash_shutdown_handles[] array in crash_shutdown_unregister() and
      default_machine_crash_shutdown().
      Signed-off-by: NSuraj Jitindar Singh <sjitindarsingh@gmail.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      1d145165
    • R
      powerpc/asm: Remove unused symbols in asm-offsets.c · aac6a91f
      Rashmica Gupta 提交于
      THREAD_DSCR:
        Added in efcac658 "powerpc: Per process DSCR + some fixes (try#4)"
        Last usage removed in 152d523e "powerpc: Create context switch helpers save_sprs() and restore_sprs()"
      
      THREAD_DSCR_INHERIT:
        Added in 71433285 "powerpc: Restore correct DSCR in context switch"
        Last usage removed in 152d523e "powerpc: Create context switch helpers save_sprs() and restore_sprs()"
      
      THREAD_TAR:
        Added in 2468dcf6 "powerpc: Add support for context switching the TAR register"
        Last usage removed in 152d523e "powerpc: Create context switch helpers save_sprs() and restore_sprs()"
      
      THREAD_BESCR, THREAD_EBBHR and THREAD_EBBRR:
        Added in 9353374b "powerpc: Context switch the new EBB SPRs"
        Last usage removed in 152d523e "powerpc: Create context switch helpers save_sprs() and restore_sprs()"
      
      THREAD_SIAR, THREAD_SDAR, THREAD_SIER, THREAD_MMCR0, and THREAD_MMCR2:
        Added in 59affcd3 "powerpc: Context switch more PMU related SPRs"
        Last usage removed in b11ae951 "powerpc: Partial revert of "Context switch more PMU related SPRs""
      
      PACA_LOCK_TOKEN:
        Added in 9e368f29 "KVM: PPC: book3s_hv: Add support for PPC970-family processors"
        Last usage removed in c17b98cf "KVM: PPC: Book3S HV: Remove code for PPC970 processors"
      
      HCALL_STAT_SIZE, HCALL_STAT_CALLS, HCALL_STAT_TB and HCALL_STAT_PURR:
        Added in 57852a85 "[POWERPC] powerpc: Instrument Hypervisor Calls"
        Last usage removed in c8cd093a "powerpc: tracing: Add hypervisor call tracepoints"
      
      VCPU_EPLC:
        Added in d30f6e48 "KVM: PPC: booke: category E.HV (GS-mode) support"
        Never used.
      
      CPU_DOWN_FLUSH:
        Added in e7affb1d "powerpc/cache: add cache flush operation for various e500"
        Never used.
      
      CFG_STAMP_XSEC:
        Added in 14cf11af "powerpc: Merge enough to start building in arch/powerpc."
        Last usage removed in 0e469db8 "powerpc: Rework VDSO gettimeofday to prevent time going backwards"
      
      KVM_LPCR:
        Added in aa04b4cc "KVM: PPC: Allocate RMAs (Real Mode Areas) at boot for use by guests"
        Last usage removed in a0144e2a "KVM: PPC: Book3S HV: Store LPCR value for each virtual core"
      
      GPR15, GPR16, GPR17, GPR18, GPR19, GPR20, GPR21, GPR22, GPR23, GPR24,
      GPR25, GPR26, GPR27, GPR28, GPR29, GPR30 and GPR31:
        Added in 14cf11af "powerpc: Merge enough to start building in arch/powerpc."
        Never used.
      
      VCPU_SHADOW_FSCR:
        Added in 616dff86 "KVM: PPC: Book3S PR: Handle Facility interrupt and FSCR"
        Never used.
      
      VCPU_SHADOW_SRR1:
        Added in a2d56020 "KVM: PPC: Book3S PR: Keep volatile reg values in vcpu rather than shadow_vcpu"
        Never used.
      
      KVM_SPLIT_SIZE:
        Added in b4deba5c "KVM: PPC: Book3S HV: Implement dynamicmicro-threading on POWER8"
        Never used.
      
      VCPU_VCPUID:
        Added in de56a948 "KVM: PPC: Add support for Book3S processors in hypervisor mode"
        Last usage removed 1b400ba0 "KVM: PPC: Book3S HV: Improve handling of local vs. global TLB invalidations"
      
      _MQ:
        Added in 14cf11af "powerpc: Merge enough to start building in arch/powerpc."
        Never used.
      
      AUDITCONTEXT:
        Added in 14cf11af "powerpc: Merge enough to start building in arch/powerpc."
        Last usage removed in 401d1f02 "[PATCH] syscall entry/exit revamp"
      
      CLONE_VM:
        Added in 14cf11af "powerpc: Merge enough to start building in arch/powerpc."
        Currently unused.
      
      CLONE_UNTRACED:
        Added in 14cf11af "powerpc: Merge enough to start building in arch/powerpc."
        Currently unused.
      Signed-off-by: NRashmica Gupta <rashmicy@gmail.com>
      [mpe: Munge change log]
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      aac6a91f
  10. 14 6月, 2016 6 次提交
  11. 08 6月, 2016 1 次提交
    • M
      powerpc/pseries: Fix IBM_ARCH_VEC_NRCORES_OFFSET since POWER8NVL was added · 2c2a63e3
      Michael Ellerman 提交于
      The recent commit 7cc85103 ("powerpc/pseries: Add POWER8NVL support
      to ibm,client-architecture-support call") added a new PVR mask & value
      to the start of the ibm_architecture_vec[] array.
      
      However it missed the fact that further down in the array, we hard code
      the offset of one of the fields, and then at boot use that value to
      patch the value in the array. This means every update to the array must
      also update the #define, ugh.
      
      This means that on pseries machines we will misreport to firmware the
      number of cores we support, by a factor of threads_per_core.
      
      Fix it for now by updating the #define.
      
      Fixes: 7cc85103 ("powerpc/pseries: Add POWER8NVL support to ibm,client-architecture-support call")
      Cc: stable@vger.kernel.org # v4.0+
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      2c2a63e3
  12. 06 6月, 2016 1 次提交
  13. 01 6月, 2016 1 次提交
  14. 24 5月, 2016 1 次提交
  15. 21 5月, 2016 1 次提交
    • J
      exit_thread: remove empty bodies · 5f56a5df
      Jiri Slaby 提交于
      Define HAVE_EXIT_THREAD for archs which want to do something in
      exit_thread. For others, let's define exit_thread as an empty inline.
      
      This is a cleanup before we change the prototype of exit_thread to
      accept a task parameter.
      
      [akpm@linux-foundation.org: fix mips]
      Signed-off-by: NJiri Slaby <jslaby@suse.cz>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
      Cc: Aurelien Jacquiot <a-jacquiot@ti.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Chen Liqin <liqin.linux@gmail.com>
      Cc: Chris Metcalf <cmetcalf@mellanox.com>
      Cc: Chris Zankel <chris@zankel.net>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
      Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
      Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Helge Deller <deller@gmx.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: James Hogan <james.hogan@imgtec.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: Jesper Nilsson <jesper.nilsson@axis.com>
      Cc: Jiri Slaby <jslaby@suse.cz>
      Cc: Jonas Bonn <jonas@southpole.se>
      Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
      Cc: Lennox Wu <lennox.wu@gmail.com>
      Cc: Ley Foon Tan <lftan@altera.com>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Max Filippov <jcmvbkbc@gmail.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Rich Felker <dalias@libc.org>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Steven Miao <realmz6@gmail.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5f56a5df
  16. 12 5月, 2016 1 次提交
    • G
      Revert "powerpc/eeh: Fix crash in eeh_add_device_early() on Cell" · c2078d9e
      Guilherme G. Piccoli 提交于
      This reverts commit 89a51df5.
      
      The function eeh_add_device_early() is used to perform EEH
      initialization in devices added later on the system, like in
      hotplug/DLPAR scenarios. Since the commit 89a51df5 ("powerpc/eeh:
      Fix crash in eeh_add_device_early() on Cell") a new check was introduced
      in this function - Cell has no EEH capabilities which led to kernel oops
      if hotplug was performed, so checking for eeh_enabled() was introduced
      to avoid the issue.
      
      However, in architectures that EEH is present like pSeries or PowerNV,
      we might reach a case in which no PCI devices are present on boot time
      and so EEH is not initialized. Then, if a device is added via DLPAR for
      example, eeh_add_device_early() fails because eeh_enabled() is false,
      and EEH end up not being enabled at all.
      
      This reverts the aforementioned patch since a new verification was
      introduced by the commit d91dafc0 ("powerpc/eeh: Delay probing EEH
      device during hotplug") and so the original Cell issue does not happen
      anymore.
      
      Cc: stable@vger.kernel.org # v4.1+
      Reviewed-by: NGavin Shan <gwshan@linux.vnet.ibm.com>
      Signed-off-by: NGuilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      c2078d9e