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

fault.h (1518B)


      1/* SPDX-License-Identifier: GPL-2.0 or BSD-3-Clause */
      2/*
      3 * Copyright(c) 2018 Intel Corporation.
      4 */
      5
      6#ifndef _HFI1_FAULT_H
      7#define _HFI1_FAULT_H
      8
      9#include <linux/fault-inject.h>
     10#include <linux/dcache.h>
     11#include <linux/bitops.h>
     12#include <linux/kernel.h>
     13#include <rdma/rdma_vt.h>
     14
     15#include "hfi.h"
     16
     17struct hfi1_ibdev;
     18
     19#if defined(CONFIG_FAULT_INJECTION) && defined(CONFIG_FAULT_INJECTION_DEBUG_FS)
     20struct fault {
     21	struct fault_attr attr;
     22	struct dentry *dir;
     23	u64 n_rxfaults[(1U << BITS_PER_BYTE)];
     24	u64 n_txfaults[(1U << BITS_PER_BYTE)];
     25	u64 fault_skip;
     26	u64 skip;
     27	u64 fault_skip_usec;
     28	unsigned long skip_usec;
     29	unsigned long opcodes[(1U << BITS_PER_BYTE) / BITS_PER_LONG];
     30	bool enable;
     31	bool suppress_err;
     32	bool opcode;
     33	u8 direction;
     34};
     35
     36int hfi1_fault_init_debugfs(struct hfi1_ibdev *ibd);
     37bool hfi1_dbg_should_fault_tx(struct rvt_qp *qp, u32 opcode);
     38bool hfi1_dbg_should_fault_rx(struct hfi1_packet *packet);
     39bool hfi1_dbg_fault_suppress_err(struct hfi1_ibdev *ibd);
     40void hfi1_fault_exit_debugfs(struct hfi1_ibdev *ibd);
     41
     42#else
     43
     44static inline int hfi1_fault_init_debugfs(struct hfi1_ibdev *ibd)
     45{
     46	return 0;
     47}
     48
     49static inline bool hfi1_dbg_should_fault_rx(struct hfi1_packet *packet)
     50{
     51	return false;
     52}
     53
     54static inline bool hfi1_dbg_should_fault_tx(struct rvt_qp *qp,
     55					    u32 opcode)
     56{
     57	return false;
     58}
     59
     60static inline bool hfi1_dbg_fault_suppress_err(struct hfi1_ibdev *ibd)
     61{
     62	return false;
     63}
     64
     65static inline void hfi1_fault_exit_debugfs(struct hfi1_ibdev *ibd)
     66{
     67}
     68#endif
     69#endif /* _HFI1_FAULT_H */