Lines Matching refs:fault

55 #include "fault.h"
111 if (!ibd->fault->n_rxfaults[i] && !ibd->fault->n_txfaults[i])
116 (unsigned long long)ibd->fault->n_rxfaults[i],
117 (unsigned long long)ibd->fault->n_txfaults[i]);
138 struct fault *fault = file->private_data;
180 bitmap_zero(fault->opcodes, sizeof(fault->opcodes) *
190 clear_bit(i, fault->opcodes);
192 set_bit(i, fault->opcodes);
212 struct fault *fault = file->private_data;
213 size_t bitsize = sizeof(fault->opcodes) * BITS_PER_BYTE;
221 bit = find_first_bit(fault->opcodes, bitsize);
223 zero = find_next_zero_bit(fault->opcodes, bitsize, bit);
232 bit = find_next_bit(fault->opcodes, bitsize, zero);
253 if (ibd->fault)
254 debugfs_remove_recursive(ibd->fault->dir);
255 kfree(ibd->fault);
256 ibd->fault = NULL;
264 ibd->fault = kzalloc(sizeof(*ibd->fault), GFP_KERNEL);
265 if (!ibd->fault)
268 ibd->fault->attr.interval = 1;
269 ibd->fault->attr.require_end = ULONG_MAX;
270 ibd->fault->attr.stacktrace_depth = 32;
271 ibd->fault->attr.dname = NULL;
272 ibd->fault->attr.verbose = 0;
273 ibd->fault->enable = false;
274 ibd->fault->opcode = false;
275 ibd->fault->fault_skip = 0;
276 ibd->fault->skip = 0;
277 ibd->fault->direction = HFI1_FAULT_DIR_TXRX;
278 ibd->fault->suppress_err = false;
279 bitmap_zero(ibd->fault->opcodes,
280 sizeof(ibd->fault->opcodes) * BITS_PER_BYTE);
283 fault_create_debugfs_attr("fault", parent, &ibd->fault->attr);
285 kfree(ibd->fault);
286 ibd->fault = NULL;
289 ibd->fault->dir = fault_dir;
293 debugfs_create_bool("enable", 0600, fault_dir, &ibd->fault->enable);
295 &ibd->fault->suppress_err);
297 &ibd->fault->opcode);
298 debugfs_create_file("opcodes", 0600, fault_dir, ibd->fault,
301 &ibd->fault->fault_skip);
303 &ibd->fault->fault_skip_usec);
304 debugfs_create_u8("direction", 0600, fault_dir, &ibd->fault->direction);
311 if (ibd->fault)
312 return ibd->fault->suppress_err;
321 if (!ibd->fault || !ibd->fault->enable)
323 if (!(ibd->fault->direction & direction))
325 if (ibd->fault->opcode) {
326 if (bitmap_empty(ibd->fault->opcodes,
327 (sizeof(ibd->fault->opcodes) *
330 if (!(test_bit(opcode, ibd->fault->opcodes)))
333 if (ibd->fault->fault_skip_usec &&
334 time_before(jiffies, ibd->fault->skip_usec))
336 if (ibd->fault->fault_skip && ibd->fault->skip) {
337 ibd->fault->skip--;
340 ret = should_fail(&ibd->fault->attr, 1);
342 ibd->fault->skip = ibd->fault->fault_skip;
343 ibd->fault->skip_usec = jiffies +
344 usecs_to_jiffies(ibd->fault->fault_skip_usec);
355 ibd->fault->n_txfaults[opcode]++;
367 ibd->fault->n_rxfaults[packet->opcode]++;