1. 03 6月, 2018 29 次提交
  2. 01 6月, 2018 1 次提交
    • A
      powerpc/mm: Fix kernel crash on page table free · 667416f3
      Aneesh Kumar K.V 提交于
      Fix the below crash on Book3E 64. pgtable_page_dtor expects struct
      page *arg.
      
      Also call the destructor on non book3s platforms correctly. This frees
      up the split PTL locks correctly if we had allocated them before.
      
      Call Trace:
        .kmem_cache_free+0x9c/0x44c (unreliable)
        .ptlock_free+0x1c/0x30
        .tlb_remove_table+0xdc/0x224
        .free_pgd_range+0x298/0x500
        .shift_arg_pages+0x10c/0x1e0
        .setup_arg_pages+0x200/0x25c
        .load_elf_binary+0x450/0x16c8
        .search_binary_handler.part.11+0x9c/0x248
        .do_execveat_common.isra.13+0x868/0xc18
        .run_init_process+0x34/0x4c
        .try_to_run_init_process+0x1c/0x68
        .kernel_init+0xdc/0x130
        .ret_from_kernel_thread+0x58/0x7c
      
      Fixes: 70234676 ("powerpc/mm/nohash: Remove pte fragment dependency from nohash")
      Signed-off-by: NAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      667416f3
  3. 28 5月, 2018 1 次提交
  4. 25 5月, 2018 6 次提交
    • M
      powerpc: Add missing prototype · 3fc5ee9b
      Mathieu Malaterre 提交于
      Add one missing prototype for function rh_dump_blk. Fix warning treated as
      error in W=1:
      
        arch/powerpc/lib/rheap.c:740:6: error: no previous prototype for ‘rh_dump_blk’ [-Werror=missing-prototypes]
      Suggested-by: NChristophe Leroy <christophe.leroy@c-s.fr>
      Signed-off-by: NMathieu Malaterre <malat@debian.org>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      3fc5ee9b
    • M
      powerpc/52xx: Add missing functions prototypes · c3f0515e
      Mathieu Malaterre 提交于
      The function prototypes were declared within a `#ifdef CONFIG_PPC_LITE5200`
      block which would prevent them from being visible when compiling
      `mpc52xx_pm.c`. Move the prototypes outside of the `#ifdef` block to fix
      the following warnings treated as errors with W=1:
      
        arch/powerpc/platforms/52xx/mpc52xx_pm.c:58:5: error: no previous prototype for ‘mpc52xx_pm_prepare’ [-Werror=missing-prototypes]
        arch/powerpc/platforms/52xx/mpc52xx_pm.c:113:5: error: no previous prototype for ‘mpc52xx_pm_enter’ [-Werror=missing-prototypes]
        arch/powerpc/platforms/52xx/mpc52xx_pm.c:181:6: error: no previous prototype for ‘mpc52xx_pm_finish’ [-Werror=missing-prototypes]
      Suggested-by: NChristophe Leroy <christophe.leroy@c-s.fr>
      Signed-off-by: NMathieu Malaterre <malat@debian.org>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      c3f0515e
    • M
      powerpc/powermac: Move pmac_pfunc_base_install prototype to header file · f91d5998
      Mathieu Malaterre 提交于
      The pmac_pfunc_base_install prototype was declared in powermac/smp.c since
      function was used there, move it to pmac_pfunc.h header to be visible in
      pfunc_base.c. Fix a warning treated as error with W=1:
      
        arch/powerpc/platforms/powermac/pfunc_base.c:330:12: error: no previous prototype for ‘pmac_pfunc_base_install’ [-Werror=missing-prototypes]
      Suggested-by: NChristophe Leroy <christophe.leroy@c-s.fr>
      Signed-off-by: NMathieu Malaterre <malat@debian.org>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      f91d5998
    • M
      powerpc/sparse: Fix plain integer as NULL pointer warning · d8731527
      Mathieu Malaterre 提交于
      Trivial fix to remove the following sparse warnings:
      
        arch/powerpc/kernel/module_32.c:112:74: warning: Using plain integer as NULL pointer
        arch/powerpc/kernel/module_32.c:117:74: warning: Using plain integer as NULL pointer
        drivers/macintosh/via-pmu.c:1155:28: warning: Using plain integer as NULL pointer
        drivers/macintosh/via-pmu.c:1230:20: warning: Using plain integer as NULL pointer
        drivers/macintosh/via-pmu.c:1385:36: warning: Using plain integer as NULL pointer
        drivers/macintosh/via-pmu.c:1752:23: warning: Using plain integer as NULL pointer
        drivers/macintosh/via-pmu.c:2084:19: warning: Using plain integer as NULL pointer
        drivers/macintosh/via-pmu.c:2110:32: warning: Using plain integer as NULL pointer
        drivers/macintosh/via-pmu.c:2167:19: warning: Using plain integer as NULL pointer
        drivers/macintosh/via-pmu.c:2183:19: warning: Using plain integer as NULL pointer
        drivers/macintosh/via-pmu.c:277:20: warning: Using plain integer as NULL pointer
        arch/powerpc/platforms/powermac/setup.c:155:67: warning: Using plain integer as NULL pointer
        arch/powerpc/platforms/powermac/setup.c:247:27: warning: Using plain integer as NULL pointer
        arch/powerpc/platforms/powermac/setup.c:249:27: warning: Using plain integer as NULL pointer
        arch/powerpc/platforms/powermac/setup.c:252:37: warning: Using plain integer as NULL pointer
        arch/powerpc/mm/tlb_hash32.c:127:21: warning: Using plain integer as NULL pointer
        arch/powerpc/mm/tlb_hash32.c:148:21: warning: Using plain integer as NULL pointer
        arch/powerpc/mm/tlb_hash32.c:44:21: warning: Using plain integer as NULL pointer
        arch/powerpc/mm/tlb_hash32.c:57:21: warning: Using plain integer as NULL pointer
        arch/powerpc/mm/tlb_hash32.c:87:21: warning: Using plain integer as NULL pointer
        arch/powerpc/kernel/btext.c:160:31: warning: Using plain integer as NULL pointer
        arch/powerpc/kernel/btext.c:167:22: warning: Using plain integer as NULL pointer
        arch/powerpc/kernel/btext.c:274:21: warning: Using plain integer as NULL pointer
        arch/powerpc/kernel/btext.c:285:31: warning: Using plain integer as NULL pointer
        arch/powerpc/include/asm/hugetlb.h:204:16: warning: Using plain integer as NULL pointer
        arch/powerpc/mm/ppc_mmu_32.c:170:21: warning: Using plain integer as NULL pointer
        arch/powerpc/platforms/powermac/pci.c:1227:23: warning: Using plain integer as NULL pointer
        arch/powerpc/platforms/powermac/pci.c:65:24: warning: Using plain integer as NULL pointer
      
      Also use `--fix` command line option from `script/checkpatch --strict` to
      remove the following:
      
        CHECK: Comparison to NULL could be written "!dispDeviceBase"
        #72: FILE: arch/powerpc/kernel/btext.c:160:
        +	if (dispDeviceBase == NULL)
      
        CHECK: Comparison to NULL could be written "!vbase"
        #80: FILE: arch/powerpc/kernel/btext.c:167:
        +	if (vbase == NULL)
      
        CHECK: Comparison to NULL could be written "!base"
        #89: FILE: arch/powerpc/kernel/btext.c:274:
        +	if (base == NULL)
      
        CHECK: Comparison to NULL could be written "!dispDeviceBase"
        #98: FILE: arch/powerpc/kernel/btext.c:285:
        +	if (dispDeviceBase == NULL)
      
        CHECK: Comparison to NULL could be written "strstr"
        #117: FILE: arch/powerpc/kernel/module_32.c:117:
        +		if (strstr(secstrings + sechdrs[i].sh_name, ".debug") != NULL)
      
        CHECK: Comparison to NULL could be written "!Hash"
        #130: FILE: arch/powerpc/mm/ppc_mmu_32.c:170:
        +	if (Hash == NULL)
      
        CHECK: Comparison to NULL could be written "Hash"
        #143: FILE: arch/powerpc/mm/tlb_hash32.c:44:
        +	if (Hash != NULL) {
      
        CHECK: Comparison to NULL could be written "!Hash"
        #152: FILE: arch/powerpc/mm/tlb_hash32.c:57:
        +	if (Hash == NULL) {
      
        CHECK: Comparison to NULL could be written "!Hash"
        #161: FILE: arch/powerpc/mm/tlb_hash32.c:87:
        +	if (Hash == NULL) {
      
        CHECK: Comparison to NULL could be written "!Hash"
        #170: FILE: arch/powerpc/mm/tlb_hash32.c:127:
        +	if (Hash == NULL) {
      
        CHECK: Comparison to NULL could be written "!Hash"
        #179: FILE: arch/powerpc/mm/tlb_hash32.c:148:
        +	if (Hash == NULL) {
      
        ERROR: space required after that ';' (ctx:VxV)
        #192: FILE: arch/powerpc/platforms/powermac/pci.c:65:
        +	for (; node != NULL;node = node->sibling) {
      
        CHECK: Comparison to NULL could be written "node"
        #192: FILE: arch/powerpc/platforms/powermac/pci.c:65:
        +	for (; node != NULL;node = node->sibling) {
      
        CHECK: Comparison to NULL could be written "!region"
        #201: FILE: arch/powerpc/platforms/powermac/pci.c:1227:
        +	if (region == NULL)
      
        CHECK: Comparison to NULL could be written "of_get_property"
        #214: FILE: arch/powerpc/platforms/powermac/setup.c:155:
        +		if (of_get_property(np, "cache-unified", NULL) != NULL && dc) {
      
        CHECK: Comparison to NULL could be written "!np"
        #223: FILE: arch/powerpc/platforms/powermac/setup.c:247:
        +		if (np == NULL)
      
        CHECK: Comparison to NULL could be written "np"
        #226: FILE: arch/powerpc/platforms/powermac/setup.c:249:
        +		if (np != NULL) {
      
        CHECK: Comparison to NULL could be written "l2cr"
        #230: FILE: arch/powerpc/platforms/powermac/setup.c:252:
        +			if (l2cr != NULL) {
      
        CHECK: Comparison to NULL could be written "via"
        #243: FILE: drivers/macintosh/via-pmu.c:277:
        +	if (via != NULL)
      
        CHECK: Comparison to NULL could be written "current_req"
        #252: FILE: drivers/macintosh/via-pmu.c:1155:
        +	if (current_req != NULL) {
      
        CHECK: Comparison to NULL could be written "!req"
        #261: FILE: drivers/macintosh/via-pmu.c:1230:
        +	if (req == NULL || pmu_state != idle
      
        CHECK: Comparison to NULL could be written "!req"
        #270: FILE: drivers/macintosh/via-pmu.c:1385:
        +			if (req == NULL) {
      
        CHECK: Comparison to NULL could be written "!pp"
        #288: FILE: drivers/macintosh/via-pmu.c:2084:
        +	if (pp == NULL)
      
        CHECK: Comparison to NULL could be written "!pp"
        #297: FILE: drivers/macintosh/via-pmu.c:2110:
        +	if (count < 1 || pp == NULL)
      
        CHECK: Comparison to NULL could be written "!pp"
        #306: FILE: drivers/macintosh/via-pmu.c:2167:
        +	if (pp == NULL)
      
        CHECK: Comparison to NULL could be written "pp"
        #315: FILE: drivers/macintosh/via-pmu.c:2183:
        +	if (pp != NULL) {
      
      Link: https://github.com/linuxppc/linux/issues/37Signed-off-by: NMathieu Malaterre <malat@debian.org>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      d8731527
    • M
      powerpc/altivec: Add missing prototypes for altivec · 7cf76a68
      Mathieu Malaterre 提交于
      Some functions prototypes were missing for the non-altivec code. Add the
      missing prototypes in a new header file, fix warnings treated as errors
      with W=1:
      
        arch/powerpc/lib/xor_vmx_glue.c:18:6: error: no previous prototype for ‘xor_altivec_2’ [-Werror=missing-prototypes]
        arch/powerpc/lib/xor_vmx_glue.c:29:6: error: no previous prototype for ‘xor_altivec_3’ [-Werror=missing-prototypes]
        arch/powerpc/lib/xor_vmx_glue.c:40:6: error: no previous prototype for ‘xor_altivec_4’ [-Werror=missing-prototypes]
        arch/powerpc/lib/xor_vmx_glue.c:52:6: error: no previous prototype for ‘xor_altivec_5’ [-Werror=missing-prototypes]
      
      The prototypes were already present in <asm/xor.h> but this header file is
      meant to be included after <include/linux/raid/xor.h>. Trying to re-use
      <asm/xor.h> directly would lead to warnings such as:
      
        arch/powerpc/include/asm/xor.h:39:15: error: variable ‘xor_block_altivec’ has initializer but incomplete type
      
      Trying to re-use <asm/xor.h> after <include/linux/raid/xor.h> in
      xor_vmx_glue.c would in turn trigger the following warnings:
      
        include/asm-generic/xor.h:688:34: error: ‘xor_block_32regs’ defined but not used [-Werror=unused-variable]
      Signed-off-by: NMathieu Malaterre <malat@debian.org>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      7cf76a68
    • M
      powerpc/xmon: Add __printf annotation to xmon_printf() · e70d8f55
      Mathieu Malaterre 提交于
      This allows the compiler to verify the format strings vs the types of
      the arguments.
      
      Update the other prototype declarations in asm/xmon.h.
      
      Silence warnings (triggered at W=1) by adding relevant __printf
      attribute. Move #define at bottom of the file to prevent conflict with
      gcc attribute.
      
      Solves the original warning:
      
        arch/powerpc/xmon/nonstdio.c:178:2: error: function might be
        possible candidate for ‘gnu_printf’ format attribute
      
      In turn this uncovered many formatting errors in xmon.c, all fixed in
      this patch.
      Signed-off-by: NMathieu Malaterre <malat@debian.org>
      [mpe: Always use px not p, fixup the 44x specific code, tweak change log]
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      e70d8f55
  5. 24 5月, 2018 3 次提交