forked from Mirrors/opensbi
		
	lib: sbi: simplify pmp_set(), pmp_get()
pmpcfg_csr and pmpcfg_shift are only negative for an unexpected value of __riscv_xlen. We can immediately return in this case. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Dong Du <Dd_nirvana@sjtu.edu.cn> Reviewed-by: Anup Patel <anup.patel@wdc.com>
This commit is contained in:
		
				
					committed by
					
						
						Anup Patel
					
				
			
			
				
	
			
			
			
						parent
						
							f270359810
						
					
				
				
					commit
					2082153fc9
				
			@@ -261,12 +261,9 @@ int pmp_set(unsigned int n, unsigned long prot, unsigned long addr,
 | 
			
		||||
	pmpcfg_csr   = (CSR_PMPCFG0 + (n >> 2)) & ~1;
 | 
			
		||||
	pmpcfg_shift = (n & 7) << 3;
 | 
			
		||||
#else
 | 
			
		||||
	pmpcfg_csr   = -1;
 | 
			
		||||
	pmpcfg_shift = -1;
 | 
			
		||||
	return SBI_ENOTSUPP;
 | 
			
		||||
#endif
 | 
			
		||||
	pmpaddr_csr = CSR_PMPADDR0 + n;
 | 
			
		||||
	if (pmpcfg_csr < 0 || pmpcfg_shift < 0)
 | 
			
		||||
		return SBI_ENOTSUPP;
 | 
			
		||||
 | 
			
		||||
	/* encode PMP config */
 | 
			
		||||
	prot &= ~PMP_A;
 | 
			
		||||
@@ -315,12 +312,9 @@ int pmp_get(unsigned int n, unsigned long *prot_out, unsigned long *addr_out,
 | 
			
		||||
	pmpcfg_csr   = (CSR_PMPCFG0 + (n >> 2)) & ~1;
 | 
			
		||||
	pmpcfg_shift = (n & 7) << 3;
 | 
			
		||||
#else
 | 
			
		||||
	pmpcfg_csr   = -1;
 | 
			
		||||
	pmpcfg_shift = -1;
 | 
			
		||||
	return SBI_ENOTSUPP;
 | 
			
		||||
#endif
 | 
			
		||||
	pmpaddr_csr = CSR_PMPADDR0 + n;
 | 
			
		||||
	if (pmpcfg_csr < 0 || pmpcfg_shift < 0)
 | 
			
		||||
		return SBI_ENOTSUPP;
 | 
			
		||||
 | 
			
		||||
	/* decode PMP config */
 | 
			
		||||
	cfgmask = (0xffUL << pmpcfg_shift);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user