powerpc/ptdump: Fix sparse warning in hashpagetable.c
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: kernel test robot <lkp@intel.com> Reported-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20220202053039.691917-1-mpe@ellerman.id.au
This commit is contained in:
parent
ccafe7c20b
commit
961f649fb3
@ -238,7 +238,10 @@ static int native_find(unsigned long ea, int psize, bool primary, u64 *v, u64
|
||||
|
||||
static int pseries_find(unsigned long ea, int psize, bool primary, u64 *v, u64 *r)
|
||||
{
|
||||
struct hash_pte ptes[4];
|
||||
struct {
|
||||
unsigned long v;
|
||||
unsigned long r;
|
||||
} ptes[4];
|
||||
unsigned long vsid, vpn, hash, hpte_group, want_v;
|
||||
int i, j, ssize = mmu_kernel_ssize;
|
||||
long lpar_rc = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user