~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/mips/sgi-ip27/ip27-berr.c

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/mips/sgi-ip27/ip27-berr.c (Version linux-6.12-rc7) and /arch/m68k/sgi-ip27/ip27-berr.c (Version linux-6.4.16)


  1 /*                                                  1 
  2  * This file is subject to the terms and condi    
  3  * License.  See the file "COPYING" in the mai    
  4  * for more details.                              
  5  *                                                
  6  * Copyright (C) 1994, 1995, 1996, 1999, 2000     
  7  * Copyright (C) 1999, 2000 by Silicon Graphic    
  8  * Copyright (C) 2002  Maciej W. Rozycki          
  9  */                                               
 10 #include <linux/init.h>                           
 11 #include <linux/kernel.h>                         
 12 #include <linux/signal.h>       /* for SIGBUS     
 13 #include <linux/sched.h>        /* schow_regs(    
 14 #include <linux/sched/debug.h>                    
 15 #include <linux/sched/signal.h>                   
 16                                                   
 17 #include <asm/ptrace.h>                           
 18 #include <asm/sn/addrs.h>                         
 19 #include <asm/sn/agent.h>                         
 20 #include <asm/sn/arch.h>                          
 21 #include <asm/tlbdebug.h>                         
 22 #include <asm/traps.h>                            
 23 #include <linux/uaccess.h>                        
 24                                                   
 25 #include "ip27-common.h"                          
 26                                                   
 27 static void dump_hub_information(unsigned long    
 28 {                                                 
 29         static char *err_type[2][8] = {           
 30                 { NULL, "Uncached Partial Read    
 31                   NULL, NULL, NULL, NULL },       
 32                 { "WERR", "Uncached Partial Wr    
 33                   NULL, NULL, NULL, NULL }        
 34         };                                        
 35         union pi_err_stat0 st0;                   
 36         union pi_err_stat1 st1;                   
 37                                                   
 38         st0.pi_stat0_word = errst0;               
 39         st1.pi_stat1_word = errst1;               
 40                                                   
 41         if (!st0.pi_stat0_fmt.s0_valid) {         
 42                 pr_info("Hub does not contain     
 43                 return;                           
 44         }                                         
 45                                                   
 46         pr_info("Hub has valid error informati    
 47         if (st0.pi_stat0_fmt.s0_ovr_run)          
 48                 pr_info("Overrun is set. Error    
 49                        "information.\n");         
 50         pr_info("Hub error address is %08lx\n"    
 51                 (unsigned long)st0.pi_stat0_fm    
 52         pr_info("Incoming message command 0x%l    
 53                 (unsigned long)st0.pi_stat0_fm    
 54         pr_info("Supplemental field of incomin    
 55                 (unsigned long)st0.pi_stat0_fm    
 56         pr_info("T5 Rn (for RRB only) is 0x%lx    
 57                 (unsigned long)st0.pi_stat0_fm    
 58         pr_info("Error type is %s\n", err_type    
 59                [st0.pi_stat0_fmt.s0_err_type]     
 60 }                                                 
 61                                                   
 62 static int ip27_be_handler(struct pt_regs *reg    
 63 {                                                 
 64         unsigned long errst0, errst1;             
 65         int data = regs->cp0_cause & 4;           
 66         int cpu = LOCAL_HUB_L(PI_CPU_NUM);        
 67                                                   
 68         if (is_fixup)                             
 69                 return MIPS_BE_FIXUP;             
 70                                                   
 71         printk("Slice %c got %cbe at 0x%lx\n",    
 72                regs->cp0_epc);                    
 73         printk("Hub information:\n");             
 74         printk("ERR_INT_PEND = 0x%06llx\n", LO    
 75         errst0 = LOCAL_HUB_L(cpu ? PI_ERR_STAT    
 76         errst1 = LOCAL_HUB_L(cpu ? PI_ERR_STAT    
 77         dump_hub_information(errst0, errst1);     
 78         show_regs(regs);                          
 79         dump_tlb_all();                           
 80         while(1);                                 
 81         force_sig(SIGBUS);                        
 82 }                                                 
 83                                                   
 84 void __init ip27_be_init(void)                    
 85 {                                                 
 86         /* XXX Initialize all the Hub & Bridge    
 87         int cpu = LOCAL_HUB_L(PI_CPU_NUM);        
 88         int cpuoff = cpu << 8;                    
 89                                                   
 90         mips_set_be_handler(ip27_be_handler);     
 91                                                   
 92         LOCAL_HUB_S(PI_ERR_INT_PEND,              
 93                     cpu ? PI_ERR_CLEAR_ALL_B :    
 94         LOCAL_HUB_S(PI_ERR_INT_MASK_A + cpuoff    
 95         LOCAL_HUB_S(PI_ERR_STACK_ADDR_A + cpuo    
 96         LOCAL_HUB_S(PI_ERR_STACK_SIZE, 0);        
 97         LOCAL_HUB_S(PI_SYSAD_ERRCHK_EN, PI_SYS    
 98 }                                                 
 99                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php