summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJunxian Huang <huangjunxian6@hisilicon.com>2026-05-07 09:21:47 +0800
committerLeon Romanovsky <leon@kernel.org>2026-05-18 04:58:41 -0400
commitbb50659745fa978784571e1402b89fb5f02ff875 (patch)
tree0a1323237c52dd37b78b0332fd12018bcc6f1932 /drivers
parentb4070770506ff516e21b4923afdaf7eb5da0e150 (diff)
RDMA/hns: Add write support to debugfs
Add write support to debugfs. Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com> Link: https://patch.msgid.link/20260507012148.1079712-3-huangjunxian6@hisilicon.com Signed-off-by: Leon Romanovsky <leon@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/infiniband/hw/hns/hns_roce_debugfs.c20
-rw-r--r--drivers/infiniband/hw/hns/hns_roce_debugfs.h1
2 files changed, 21 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/hns/hns_roce_debugfs.c b/drivers/infiniband/hw/hns/hns_roce_debugfs.c
index db32c5897640..724d5ad90bfe 100644
--- a/drivers/infiniband/hw/hns/hns_roce_debugfs.c
+++ b/drivers/infiniband/hw/hns/hns_roce_debugfs.c
@@ -18,11 +18,31 @@ static int hns_debugfs_seqfile_open(struct inode *inode, struct file *f)
return single_open(f, seqfile->read, seqfile->data);
}
+static ssize_t hns_debugfs_seqfile_write(struct file *file,
+ const char __user *buffer,
+ size_t count, loff_t *ppos)
+{
+ struct hns_debugfs_seqfile *seqfile = file_inode(file)->i_private;
+ char buf[16] = {};
+
+ if (!seqfile->write)
+ return -EOPNOTSUPP;
+
+ if (count >= sizeof(buf))
+ return -EINVAL;
+
+ if (copy_from_user(buf, buffer, count))
+ return -EFAULT;
+
+ return seqfile->write(buf, count, seqfile->data);
+}
+
static const struct file_operations hns_debugfs_seqfile_fops = {
.owner = THIS_MODULE,
.open = hns_debugfs_seqfile_open,
.release = single_release,
.read = seq_read,
+ .write = hns_debugfs_seqfile_write,
.llseek = seq_lseek
};
diff --git a/drivers/infiniband/hw/hns/hns_roce_debugfs.h b/drivers/infiniband/hw/hns/hns_roce_debugfs.h
index 98e87bd3161e..4e77dea0fbf6 100644
--- a/drivers/infiniband/hw/hns/hns_roce_debugfs.h
+++ b/drivers/infiniband/hw/hns/hns_roce_debugfs.h
@@ -9,6 +9,7 @@
/* debugfs seqfile */
struct hns_debugfs_seqfile {
int (*read)(struct seq_file *seq, void *data);
+ ssize_t (*write)(char *buf, size_t count, void *data);
void *data;
};