|  | @@ -290,3 +290,72 @@ asmlinkage notrace void trap_c(struct pt_regs *fp)
 | 
	
		
			
				|  |  |  		CHK_DEBUGGER_TRAP_MAYBE();
 | 
	
		
			
				|  |  |  		break;
 | 
	
		
			
				|  |  |  #else
 | 
	
		
			
				|  |  | +	/* 0x29 - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +	/* 0x2A - Instruction fetch misaligned, handled here */
 | 
	
		
			
				|  |  | +	case VEC_MISALI_I:
 | 
	
		
			
				|  |  | +		info.si_code = BUS_ADRALN;
 | 
	
		
			
				|  |  | +		sig = SIGBUS;
 | 
	
		
			
				|  |  | +		strerror = KERN_NOTICE EXC_0x2A(KERN_NOTICE);
 | 
	
		
			
				|  |  | +		CHK_DEBUGGER_TRAP_MAYBE();
 | 
	
		
			
				|  |  | +		break;
 | 
	
		
			
				|  |  | +	/* 0x2B - Instruction CPLB protection violation, handled here */
 | 
	
		
			
				|  |  | +	case VEC_CPLB_I_VL:
 | 
	
		
			
				|  |  | +		info.si_code = ILL_CPLB_VI;
 | 
	
		
			
				|  |  | +		sig = SIGBUS;
 | 
	
		
			
				|  |  | +		strerror = KERN_NOTICE EXC_0x2B(KERN_NOTICE);
 | 
	
		
			
				|  |  | +		CHK_DEBUGGER_TRAP_MAYBE();
 | 
	
		
			
				|  |  | +		break;
 | 
	
		
			
				|  |  | +	/* 0x2C - Instruction CPLB miss, handled in _cplb_hdr */
 | 
	
		
			
				|  |  | +	case VEC_CPLB_I_M:
 | 
	
		
			
				|  |  | +		info.si_code = ILL_CPLB_MISS;
 | 
	
		
			
				|  |  | +		sig = SIGBUS;
 | 
	
		
			
				|  |  | +		strerror = KERN_NOTICE EXC_0x2C(KERN_NOTICE);
 | 
	
		
			
				|  |  | +		break;
 | 
	
		
			
				|  |  | +	/* 0x2D - Instruction CPLB Multiple Hits, handled here */
 | 
	
		
			
				|  |  | +	case VEC_CPLB_I_MHIT:
 | 
	
		
			
				|  |  | +		info.si_code = ILL_CPLB_MULHIT;
 | 
	
		
			
				|  |  | +		sig = SIGSEGV;
 | 
	
		
			
				|  |  | +#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO
 | 
	
		
			
				|  |  | +		if (cpu_pda[cpu].icplb_fault_addr < FIXED_CODE_START)
 | 
	
		
			
				|  |  | +			strerror = KERN_NOTICE "Jump to NULL address\n";
 | 
	
		
			
				|  |  | +		else
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +			strerror = KERN_NOTICE EXC_0x2D(KERN_NOTICE);
 | 
	
		
			
				|  |  | +		CHK_DEBUGGER_TRAP_MAYBE();
 | 
	
		
			
				|  |  | +		break;
 | 
	
		
			
				|  |  | +	/* 0x2E - Illegal use of Supervisor Resource, handled here */
 | 
	
		
			
				|  |  | +	case VEC_ILL_RES:
 | 
	
		
			
				|  |  | +		info.si_code = ILL_PRVOPC;
 | 
	
		
			
				|  |  | +		sig = SIGILL;
 | 
	
		
			
				|  |  | +		strerror = KERN_NOTICE EXC_0x2E(KERN_NOTICE);
 | 
	
		
			
				|  |  | +		CHK_DEBUGGER_TRAP_MAYBE();
 | 
	
		
			
				|  |  | +		break;
 | 
	
		
			
				|  |  | +	/* 0x2F - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x30 - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x31 - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x32 - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x33 - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x34 - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x35 - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x36 - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x37 - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x38 - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x39 - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x3A - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x3B - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x3C - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x3D - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x3E - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	/* 0x3F - Reserved, Caught by default */
 | 
	
		
			
				|  |  | +	case VEC_HWERR:
 | 
	
		
			
				|  |  | +		info.si_code = BUS_ADRALN;
 | 
	
		
			
				|  |  | +		sig = SIGBUS;
 | 
	
		
			
				|  |  | +		switch (fp->seqstat & SEQSTAT_HWERRCAUSE) {
 | 
	
		
			
				|  |  | +		/* System MMR Error */
 | 
	
		
			
				|  |  | +		case (SEQSTAT_HWERRCAUSE_SYSTEM_MMR):
 | 
	
		
			
				|  |  | +			info.si_code = BUS_ADRALN;
 | 
	
		
			
				|  |  | +			sig = SIGBUS;
 | 
	
		
			
				|  |  | +			strerror = KERN_NOTICE HWC_x2(KERN_NOTICE);
 | 
	
		
			
				|  |  | +			break;
 | 
	
		
			
				|  |  | +		/* External Memory Addressing Error */
 |