hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/drivers/infiniband/hw/hfi1/fault.c
....@@ -222,11 +222,11 @@
222222 while (bit < bitsize) {
223223 zero = find_next_zero_bit(fault->opcodes, bitsize, bit);
224224 if (zero - 1 != bit)
225
- size += snprintf(data + size,
225
+ size += scnprintf(data + size,
226226 datalen - size - 1,
227227 "0x%lx-0x%lx,", bit, zero - 1);
228228 else
229
- size += snprintf(data + size,
229
+ size += scnprintf(data + size,
230230 datalen - size - 1, "0x%lx,",
231231 bit);
232232 bit = find_next_bit(fault->opcodes, bitsize, zero);
....@@ -259,6 +259,7 @@
259259 int hfi1_fault_init_debugfs(struct hfi1_ibdev *ibd)
260260 {
261261 struct dentry *parent = ibd->hfi1_ibdev_dbg;
262
+ struct dentry *fault_dir;
262263
263264 ibd->fault = kzalloc(sizeof(*ibd->fault), GFP_KERNEL);
264265 if (!ibd->fault)
....@@ -278,45 +279,31 @@
278279 bitmap_zero(ibd->fault->opcodes,
279280 sizeof(ibd->fault->opcodes) * BITS_PER_BYTE);
280281
281
- ibd->fault->dir =
282
- fault_create_debugfs_attr("fault", parent,
283
- &ibd->fault->attr);
284
- if (IS_ERR(ibd->fault->dir)) {
282
+ fault_dir =
283
+ fault_create_debugfs_attr("fault", parent, &ibd->fault->attr);
284
+ if (IS_ERR(fault_dir)) {
285285 kfree(ibd->fault);
286286 ibd->fault = NULL;
287287 return -ENOENT;
288288 }
289
+ ibd->fault->dir = fault_dir;
289290
290
- DEBUGFS_SEQ_FILE_CREATE(fault_stats, ibd->fault->dir, ibd);
291
- if (!debugfs_create_bool("enable", 0600, ibd->fault->dir,
292
- &ibd->fault->enable))
293
- goto fail;
294
- if (!debugfs_create_bool("suppress_err", 0600,
295
- ibd->fault->dir,
296
- &ibd->fault->suppress_err))
297
- goto fail;
298
- if (!debugfs_create_bool("opcode_mode", 0600, ibd->fault->dir,
299
- &ibd->fault->opcode))
300
- goto fail;
301
- if (!debugfs_create_file("opcodes", 0600, ibd->fault->dir,
302
- ibd->fault, &__fault_opcodes_fops))
303
- goto fail;
304
- if (!debugfs_create_u64("skip_pkts", 0600,
305
- ibd->fault->dir,
306
- &ibd->fault->fault_skip))
307
- goto fail;
308
- if (!debugfs_create_u64("skip_usec", 0600,
309
- ibd->fault->dir,
310
- &ibd->fault->fault_skip_usec))
311
- goto fail;
312
- if (!debugfs_create_u8("direction", 0600, ibd->fault->dir,
313
- &ibd->fault->direction))
314
- goto fail;
291
+ debugfs_create_file("fault_stats", 0444, fault_dir, ibd,
292
+ &_fault_stats_file_ops);
293
+ debugfs_create_bool("enable", 0600, fault_dir, &ibd->fault->enable);
294
+ debugfs_create_bool("suppress_err", 0600, fault_dir,
295
+ &ibd->fault->suppress_err);
296
+ debugfs_create_bool("opcode_mode", 0600, fault_dir,
297
+ &ibd->fault->opcode);
298
+ debugfs_create_file("opcodes", 0600, fault_dir, ibd->fault,
299
+ &__fault_opcodes_fops);
300
+ debugfs_create_u64("skip_pkts", 0600, fault_dir,
301
+ &ibd->fault->fault_skip);
302
+ debugfs_create_u64("skip_usec", 0600, fault_dir,
303
+ &ibd->fault->fault_skip_usec);
304
+ debugfs_create_u8("direction", 0600, fault_dir, &ibd->fault->direction);
315305
316306 return 0;
317
-fail:
318
- hfi1_fault_exit_debugfs(ibd);
319
- return -ENOMEM;
320307 }
321308
322309 bool hfi1_dbg_fault_suppress_err(struct hfi1_ibdev *ibd)