• Michael Ellerman's avatar
    powerpc/ptdump: Fix sparse warning in hashpagetable.c · 961f649f
    Michael Ellerman authored
    As reported by sparse:
    
      arch/powerpc/mm/ptdump/hashpagetable.c:264:29: warning: restricted __be64 degrades to integer
      arch/powerpc/mm/ptdump/hashpagetable.c:265:49: warning: restricted __be64 degrades to integer
      arch/powerpc/mm/ptdump/hashpagetable.c:267:36: warning: incorrect type in assignment (different base types)
      arch/powerpc/mm/ptdump/hashpagetable.c:267:36:    expected unsigned long long [usertype]
      arch/powerpc/mm/ptdump/hashpagetable.c:267:36:    got restricted __be64 [usertype] v
      arch/powerpc/mm/ptdump/hashpagetable.c:268:36: warning: incorrect type in assignment (different base types)
      arch/powerpc/mm/ptdump/hashpagetable.c:268:36:    expected unsigned long long [usertype]
      arch/powerpc/mm/ptdump/hashpagetable.c:268:36:    got restricted __be64 [usertype] r
    
    The values returned by plpar_pte_read_4() are CPU endian, not __be64, so
    assigning them to struct hash_pte confuses sparse. As a minimal fix open
    code a struct to hold the values with CPU endian types.
    Reported-by: default avatarkernel test robot <lkp@intel.com>
    Reported-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20220202053039.691917-1-mpe@ellerman.id.au
    961f649f
hashpagetable.c 12.7 KB