1. 28 1月, 2015 1 次提交
    • K
      powerpc/mm: fix undefined reference to `.__kernel_map_pages' on FSL PPC64 · ce614c3c
      Kim Phillips 提交于
      arch/powerpc has __kernel_map_pages implementations in mm/pgtable_32.c, and
      mm/hash_utils_64.c, of which the former is built for PPC32, and the latter
      for PPC64 machines with PPC_STD_MMU.  Fix arch/powerpc/Kconfig to not select
      ARCH_SUPPORTS_DEBUG_PAGEALLOC when CONFIG_PPC_STD_MMU_64 isn't defined,
      i.e., for 64-bit book3e builds to use the generic __kernel_map_pages()
      in mm/debug-pagealloc.c.
      
        LD      init/built-in.o
      mm/built-in.o: In function `kernel_map_pages':
      include/linux/mm.h:2076: undefined reference to `.__kernel_map_pages'
      include/linux/mm.h:2076: undefined reference to `.__kernel_map_pages'
      include/linux/mm.h:2076: undefined reference to `.__kernel_map_pages'
      Makefile:925: recipe for target 'vmlinux' failed
      make: *** [vmlinux] Error 1
      Signed-off-by: NKim Phillips <kim.phillips@freescale.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      ce614c3c
  2. 27 1月, 2015 2 次提交
    • P
      powerpc/powernv: Skip registering log region when CONFIG_PRINTK=n · 6501ab5e
      Pranith Kumar 提交于
      When CONFIG_PRINTK=n, log_buf_addr_get() returns NULL and log_buf_len_get()
      return 0. Check for these return values and skip registering the dump buffer.
      Signed-off-by: NPranith Kumar <bobby.prani@gmail.com>
      Reviewed-by: NStewart Smith <stewart@linux.vnet.ibm.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      6501ab5e
    • C
      powerpc/pseries: Fix endian problems with LE migration · 3df76a9d
      Cyril Bur 提交于
      RTAS events require arguments be passed in big endian while hypercalls
      have their arguments passed in registers and the values should therefore
      be in CPU endian.
      
      The "ibm,suspend_me" 'RTAS' call makes a sequence of hypercalls to setup
      one true RTAS call. This means that "ibm,suspend_me" is handled
      specially in the ppc_rtas() syscall.
      
      The ppc_rtas() syscall has its arguments in big endian and can therefore
      pass these arguments directly to the RTAS call. "ibm,suspend_me" is
      handled specially from within ppc_rtas() (by calling rtas_ibm_suspend_me())
      which has left an endian bug on little endian systems due to the
      requirement of hypercalls. The return value from rtas_ibm_suspend_me()
      gets returned in cpu endian, and is left unconverted, also a bug on
      little endian systems.
      
      rtas_ibm_suspend_me() does not actually make use of the rtas_args that
      it is passed. This patch removes the convoluted use of the rtas_args
      struct to pass params to rtas_ibm_suspend_me() in favour of passing what
      it needs as actual arguments. This patch also ensures the two callers of
      rtas_ibm_suspend_me() pass function parameters in cpu endian and in the
      case of ppc_rtas(), converts the return value.
      
      migrate_store() (the other caller of rtas_ibm_suspend_me()) is from a
      sysfs file which deals with everything in cpu endian so this function
      only underwent cleanup.
      
      This patch has been tested with KVM both LE and BE and on PowerVM both
      LE and BE. Under QEMU/KVM the migration happens without touching these
      code pathes.
      
      For PowerVM there is no obvious regression on BE and the LE code path
      now provides the correct parameters to the hypervisor.
      Signed-off-by: NCyril Bur <cyrilbur@gmail.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      3df76a9d
  3. 23 1月, 2015 17 次提交
  4. 22 1月, 2015 14 次提交
  5. 21 1月, 2015 6 次提交