cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ip32-berr.c (947B)


      1/*
      2 * This file is subject to the terms and conditions of the GNU General Public
      3 * License.  See the file "COPYING" in the main directory of this archive
      4 * for more details.
      5 *
      6 * Copyright (C) 1994, 1995, 1996, 1999, 2000 by Ralf Baechle
      7 * Copyright (C) 1999, 2000 by Silicon Graphics
      8 * Copyright (C) 2002  Maciej W. Rozycki
      9 */
     10#include <linux/init.h>
     11#include <linux/kernel.h>
     12#include <linux/sched.h>
     13#include <linux/sched/debug.h>
     14#include <linux/sched/signal.h>
     15#include <asm/traps.h>
     16#include <linux/uaccess.h>
     17#include <asm/addrspace.h>
     18#include <asm/ptrace.h>
     19#include <asm/tlbdebug.h>
     20
     21static int ip32_be_handler(struct pt_regs *regs, int is_fixup)
     22{
     23	int data = regs->cp0_cause & 4;
     24
     25	if (is_fixup)
     26		return MIPS_BE_FIXUP;
     27
     28	printk("Got %cbe at 0x%lx\n", data ? 'd' : 'i', regs->cp0_epc);
     29	show_regs(regs);
     30	dump_tlb_all();
     31	while(1);
     32	force_sig(SIGBUS);
     33}
     34
     35void __init ip32_be_init(void)
     36{
     37	mips_set_be_handler(ip32_be_handler);
     38}