linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c
@ 2020-11-03 12:29 Luo Jiaxing
  2020-11-03 12:29 ` [PATCH v3 1/5] seq_file: Introduce DEFINE_SHOW_STORE_ATTRIBUTE() helper macro Luo Jiaxing
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Luo Jiaxing @ 2020-11-03 12:29 UTC (permalink / raw)
  To: akpm, viro, andriy.shevchenko
  Cc: linux-kernel, martin.petersen, john.garry, himanshu.madhani,
	felipe.balbi, gregkh, uma.shankar, anshuman.gupta, animesh.manna,
	linux-usb, linux-scsi, linuxarm

We already own DEFINE_SHOW_ATTRIBUTE() helper macro for defining attribute
for read-only file, but we found many of drivers also want a helper macro
for read-write file too.

So we add this macro to help decrease code duplication.

---
 v1->v2:
        1.Rename DEFINE_STORE_ATTRIBUTE() to DEFINE_SHOW_STORE_ATTRIBUTE().
 v2->v3:
        1.Fixed some spelling mistakes in commit.
        2.Revised resumes are added for easy tracing.
---

Luo Jiaxing (5):
  seq_file: Introduce DEFINE_SHOW_STORE_ATTRIBUTE() helper macro
  scsi: hisi_sas: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs
  scsi: qla2xxx: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs
  usb: dwc3: debugfs: Introduce DEFINE_SHOW_STORE_ATTRIBUTE
  drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs

 .../gpu/drm/i915/display/intel_display_debugfs.c   |  55 +--------
 drivers/scsi/hisi_sas/hisi_sas_main.c              | 135 +++------------------
 drivers/scsi/qla2xxx/qla_dfs.c                     |  19 +--
 drivers/usb/dwc3/debugfs.c                         |  52 +-------
 include/linux/seq_file.h                           |  15 +++
 5 files changed, 41 insertions(+), 235 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v3 1/5] seq_file: Introduce DEFINE_SHOW_STORE_ATTRIBUTE() helper macro
  2020-11-03 12:29 [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Luo Jiaxing
@ 2020-11-03 12:29 ` Luo Jiaxing
  2020-11-03 12:29 ` [PATCH v3 2/5] scsi: hisi_sas: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs Luo Jiaxing
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Luo Jiaxing @ 2020-11-03 12:29 UTC (permalink / raw)
  To: akpm, viro, andriy.shevchenko
  Cc: linux-kernel, martin.petersen, john.garry, himanshu.madhani,
	felipe.balbi, gregkh, uma.shankar, anshuman.gupta, animesh.manna,
	linux-usb, linux-scsi, linuxarm

We already own DEFINE_SHOW_ATTRIBUTE() helper macro for defining attribute
for read-only file, but many of drivers want a helper macro for read-write
file too.

So we make one to decrease code duplication.

Signed-off-by: Luo Jiaxing <luojiaxing@huawei.com>
---
 include/linux/seq_file.h | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h
index 813614d..8a474c8 100644
--- a/include/linux/seq_file.h
+++ b/include/linux/seq_file.h
@@ -191,6 +191,21 @@ static const struct proc_ops __name ## _proc_ops = {			\
 	.proc_release	= single_release,				\
 }
 
+#define DEFINE_SHOW_STORE_ATTRIBUTE(__name)					\
+static int __name ## _open(struct inode *inode, struct file *file)	\
+{									\
+	return single_open(file, __name ## _show, inode->i_private);	\
+}									\
+									\
+static const struct file_operations __name ## _fops = {			\
+	.owner		= THIS_MODULE,					\
+	.open		= __name ## _open,				\
+	.read		= seq_read,					\
+	.write		= __name ## _write,				\
+	.llseek		= seq_lseek,					\
+	.release	= single_release,				\
+}
+
 static inline struct user_namespace *seq_user_ns(struct seq_file *seq)
 {
 #ifdef CONFIG_USER_NS
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3 2/5] scsi: hisi_sas: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs
  2020-11-03 12:29 [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Luo Jiaxing
  2020-11-03 12:29 ` [PATCH v3 1/5] seq_file: Introduce DEFINE_SHOW_STORE_ATTRIBUTE() helper macro Luo Jiaxing
@ 2020-11-03 12:29 ` Luo Jiaxing
  2020-11-03 12:29 ` [PATCH v3 3/5] scsi: qla2xxx: " Luo Jiaxing
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Luo Jiaxing @ 2020-11-03 12:29 UTC (permalink / raw)
  To: akpm, viro, andriy.shevchenko
  Cc: linux-kernel, martin.petersen, john.garry, himanshu.madhani,
	felipe.balbi, gregkh, uma.shankar, anshuman.gupta, animesh.manna,
	linux-usb, linux-scsi, linuxarm

Seq introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE for
Read-Write file, so we use it at our code to reduce some duplicated code.

Signed-off-by: Luo Jiaxing <luojiaxing@huawei.com>
---
 drivers/scsi/hisi_sas/hisi_sas_main.c | 135 ++++------------------------------
 1 file changed, 16 insertions(+), 119 deletions(-)

diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c b/drivers/scsi/hisi_sas/hisi_sas_main.c
index 128583d..b8a6fc9 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_main.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
@@ -3403,22 +3403,7 @@ static ssize_t hisi_sas_debugfs_bist_linkrate_write(struct file *filp,
 
 	return count;
 }
-
-static int hisi_sas_debugfs_bist_linkrate_open(struct inode *inode,
-					       struct file *filp)
-{
-	return single_open(filp, hisi_sas_debugfs_bist_linkrate_show,
-			   inode->i_private);
-}
-
-static const struct file_operations hisi_sas_debugfs_bist_linkrate_ops = {
-	.open = hisi_sas_debugfs_bist_linkrate_open,
-	.read = seq_read,
-	.write = hisi_sas_debugfs_bist_linkrate_write,
-	.llseek = seq_lseek,
-	.release = single_release,
-	.owner = THIS_MODULE,
-};
+DEFINE_SHOW_STORE_ATTRIBUTE(hisi_sas_debugfs_bist_linkrate);
 
 static const struct {
 	int		value;
@@ -3493,22 +3478,7 @@ static ssize_t hisi_sas_debugfs_bist_code_mode_write(struct file *filp,
 
 	return count;
 }
-
-static int hisi_sas_debugfs_bist_code_mode_open(struct inode *inode,
-						struct file *filp)
-{
-	return single_open(filp, hisi_sas_debugfs_bist_code_mode_show,
-			   inode->i_private);
-}
-
-static const struct file_operations hisi_sas_debugfs_bist_code_mode_ops = {
-	.open = hisi_sas_debugfs_bist_code_mode_open,
-	.read = seq_read,
-	.write = hisi_sas_debugfs_bist_code_mode_write,
-	.llseek = seq_lseek,
-	.release = single_release,
-	.owner = THIS_MODULE,
-};
+DEFINE_SHOW_STORE_ATTRIBUTE(hisi_sas_debugfs_bist_code_mode);
 
 static ssize_t hisi_sas_debugfs_bist_phy_write(struct file *filp,
 					       const char __user *buf,
@@ -3542,22 +3512,7 @@ static int hisi_sas_debugfs_bist_phy_show(struct seq_file *s, void *p)
 
 	return 0;
 }
-
-static int hisi_sas_debugfs_bist_phy_open(struct inode *inode,
-					  struct file *filp)
-{
-	return single_open(filp, hisi_sas_debugfs_bist_phy_show,
-			   inode->i_private);
-}
-
-static const struct file_operations hisi_sas_debugfs_bist_phy_ops = {
-	.open = hisi_sas_debugfs_bist_phy_open,
-	.read = seq_read,
-	.write = hisi_sas_debugfs_bist_phy_write,
-	.llseek = seq_lseek,
-	.release = single_release,
-	.owner = THIS_MODULE,
-};
+DEFINE_SHOW_STORE_ATTRIBUTE(hisi_sas_debugfs_bist_phy);
 
 static const struct {
 	int		value;
@@ -3621,22 +3576,7 @@ static ssize_t hisi_sas_debugfs_bist_mode_write(struct file *filp,
 
 	return count;
 }
-
-static int hisi_sas_debugfs_bist_mode_open(struct inode *inode,
-					   struct file *filp)
-{
-	return single_open(filp, hisi_sas_debugfs_bist_mode_show,
-			   inode->i_private);
-}
-
-static const struct file_operations hisi_sas_debugfs_bist_mode_ops = {
-	.open = hisi_sas_debugfs_bist_mode_open,
-	.read = seq_read,
-	.write = hisi_sas_debugfs_bist_mode_write,
-	.llseek = seq_lseek,
-	.release = single_release,
-	.owner = THIS_MODULE,
-};
+DEFINE_SHOW_STORE_ATTRIBUTE(hisi_sas_debugfs_bist_mode);
 
 static ssize_t hisi_sas_debugfs_bist_enable_write(struct file *filp,
 						  const char __user *buf,
@@ -3677,22 +3617,7 @@ static int hisi_sas_debugfs_bist_enable_show(struct seq_file *s, void *p)
 
 	return 0;
 }
-
-static int hisi_sas_debugfs_bist_enable_open(struct inode *inode,
-					     struct file *filp)
-{
-	return single_open(filp, hisi_sas_debugfs_bist_enable_show,
-			   inode->i_private);
-}
-
-static const struct file_operations hisi_sas_debugfs_bist_enable_ops = {
-	.open = hisi_sas_debugfs_bist_enable_open,
-	.read = seq_read,
-	.write = hisi_sas_debugfs_bist_enable_write,
-	.llseek = seq_lseek,
-	.release = single_release,
-	.owner = THIS_MODULE,
-};
+DEFINE_SHOW_STORE_ATTRIBUTE(hisi_sas_debugfs_bist_enable);
 
 static const struct {
 	char *name;
@@ -3730,21 +3655,7 @@ static int hisi_sas_debugfs_show(struct seq_file *s, void *p)
 
 	return 0;
 }
-
-static int hisi_sas_debugfs_open(struct inode *inode, struct file *filp)
-{
-	return single_open(filp, hisi_sas_debugfs_show,
-			   inode->i_private);
-}
-
-static const struct file_operations hisi_sas_debugfs_ops = {
-	.open = hisi_sas_debugfs_open,
-	.read = seq_read,
-	.write = hisi_sas_debugfs_write,
-	.llseek = seq_lseek,
-	.release = single_release,
-	.owner = THIS_MODULE,
-};
+DEFINE_SHOW_STORE_ATTRIBUTE(hisi_sas_debugfs);
 
 static ssize_t hisi_sas_debugfs_phy_down_cnt_write(struct file *filp,
 						   const char __user *buf,
@@ -3776,21 +3687,7 @@ static int hisi_sas_debugfs_phy_down_cnt_show(struct seq_file *s, void *p)
 	return 0;
 }
 
-static int hisi_sas_debugfs_phy_down_cnt_open(struct inode *inode,
-					      struct file *filp)
-{
-	return single_open(filp, hisi_sas_debugfs_phy_down_cnt_show,
-			   inode->i_private);
-}
-
-static const struct file_operations hisi_sas_debugfs_phy_down_cnt_ops = {
-	.open = hisi_sas_debugfs_phy_down_cnt_open,
-	.read = seq_read,
-	.write = hisi_sas_debugfs_phy_down_cnt_write,
-	.llseek = seq_lseek,
-	.release = single_release,
-	.owner = THIS_MODULE,
-};
+DEFINE_SHOW_STORE_ATTRIBUTE(hisi_sas_debugfs_phy_down_cnt);
 
 void hisi_sas_debugfs_work_handler(struct work_struct *work)
 {
@@ -3937,7 +3834,7 @@ static void hisi_sas_debugfs_phy_down_cnt_init(struct hisi_hba *hisi_hba)
 		snprintf(name, 16, "%d", phy_no);
 		debugfs_create_file(name, 0600, dir,
 				    &hisi_hba->phy[phy_no],
-				    &hisi_sas_debugfs_phy_down_cnt_ops);
+				    &hisi_sas_debugfs_phy_down_cnt_fops);
 	}
 }
 
@@ -3950,34 +3847,34 @@ static void hisi_sas_debugfs_bist_init(struct hisi_hba *hisi_hba)
 			debugfs_create_dir("bist", hisi_hba->debugfs_dir);
 	debugfs_create_file("link_rate", 0600,
 			    hisi_hba->debugfs_bist_dentry, hisi_hba,
-			    &hisi_sas_debugfs_bist_linkrate_ops);
+			    &hisi_sas_debugfs_bist_linkrate_fops);
 
 	debugfs_create_file("code_mode", 0600,
 			    hisi_hba->debugfs_bist_dentry, hisi_hba,
-			    &hisi_sas_debugfs_bist_code_mode_ops);
+			    &hisi_sas_debugfs_bist_code_mode_fops);
 
 	debugfs_create_file("fixed_code", 0600,
 			    hisi_hba->debugfs_bist_dentry,
 			    &hisi_hba->debugfs_bist_fixed_code[0],
-			    &hisi_sas_debugfs_ops);
+			    &hisi_sas_debugfs_fops);
 
 	debugfs_create_file("fixed_code_1", 0600,
 			    hisi_hba->debugfs_bist_dentry,
 			    &hisi_hba->debugfs_bist_fixed_code[1],
-			    &hisi_sas_debugfs_ops);
+			    &hisi_sas_debugfs_fops);
 
 	debugfs_create_file("phy_id", 0600, hisi_hba->debugfs_bist_dentry,
-			    hisi_hba, &hisi_sas_debugfs_bist_phy_ops);
+			    hisi_hba, &hisi_sas_debugfs_bist_phy_fops);
 
 	debugfs_create_u32("cnt", 0600, hisi_hba->debugfs_bist_dentry,
 			   &hisi_hba->debugfs_bist_cnt);
 
 	debugfs_create_file("loopback_mode", 0600,
 			    hisi_hba->debugfs_bist_dentry,
-			    hisi_hba, &hisi_sas_debugfs_bist_mode_ops);
+			    hisi_hba, &hisi_sas_debugfs_bist_mode_fops);
 
 	debugfs_create_file("enable", 0600, hisi_hba->debugfs_bist_dentry,
-			    hisi_hba, &hisi_sas_debugfs_bist_enable_ops);
+			    hisi_hba, &hisi_sas_debugfs_bist_enable_fops);
 
 	ports_dentry = debugfs_create_dir("port", hisi_hba->debugfs_bist_dentry);
 
@@ -3996,7 +3893,7 @@ static void hisi_sas_debugfs_bist_init(struct hisi_hba *hisi_hba)
 			debugfs_create_file(hisi_sas_debugfs_ffe_name[i].name,
 					    0600, ffe_dentry,
 					    &hisi_hba->debugfs_bist_ffe[phy_no][i],
-					    &hisi_sas_debugfs_ops);
+					    &hisi_sas_debugfs_fops);
 		}
 	}
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3 3/5] scsi: qla2xxx: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs
  2020-11-03 12:29 [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Luo Jiaxing
  2020-11-03 12:29 ` [PATCH v3 1/5] seq_file: Introduce DEFINE_SHOW_STORE_ATTRIBUTE() helper macro Luo Jiaxing
  2020-11-03 12:29 ` [PATCH v3 2/5] scsi: hisi_sas: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs Luo Jiaxing
@ 2020-11-03 12:29 ` Luo Jiaxing
  2020-11-03 12:29 ` [PATCH v3 4/5] usb: dwc3: debugfs: Introduce DEFINE_SHOW_STORE_ATTRIBUTE Luo Jiaxing
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 11+ messages in thread
From: Luo Jiaxing @ 2020-11-03 12:29 UTC (permalink / raw)
  To: akpm, viro, andriy.shevchenko
  Cc: linux-kernel, martin.petersen, john.garry, himanshu.madhani,
	felipe.balbi, gregkh, uma.shankar, anshuman.gupta, animesh.manna,
	linux-usb, linux-scsi, linuxarm

Seq introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE for
Read-Write file, so we apply it at qla2xxx to reduce some duplicated code.

Signed-off-by: Luo Jiaxing <luojiaxing@huawei.com>
---
 drivers/scsi/qla2xxx/qla_dfs.c | 19 ++-----------------
 1 file changed, 2 insertions(+), 17 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_dfs.c b/drivers/scsi/qla2xxx/qla_dfs.c
index f89ad32..a5de808 100644
--- a/drivers/scsi/qla2xxx/qla_dfs.c
+++ b/drivers/scsi/qla2xxx/qla_dfs.c
@@ -513,14 +513,6 @@ qla_dfs_naqp_show(struct seq_file *s, void *unused)
 	return 0;
 }
 
-static int
-qla_dfs_naqp_open(struct inode *inode, struct file *file)
-{
-	struct scsi_qla_host *vha = inode->i_private;
-
-	return single_open(file, qla_dfs_naqp_show, vha);
-}
-
 static ssize_t
 qla_dfs_naqp_write(struct file *file, const char __user *buffer,
     size_t count, loff_t *pos)
@@ -569,14 +561,7 @@ qla_dfs_naqp_write(struct file *file, const char __user *buffer,
 	return rc;
 }
 
-static const struct file_operations dfs_naqp_ops = {
-	.open		= qla_dfs_naqp_open,
-	.read		= seq_read,
-	.llseek		= seq_lseek,
-	.release	= single_release,
-	.write		= qla_dfs_naqp_write,
-};
-
+DEFINE_SHOW_STORE_ATTRIBUTE(qla_dfs_naqp);
 
 int
 qla2x00_dfs_setup(scsi_qla_host_t *vha)
@@ -622,7 +607,7 @@ qla2x00_dfs_setup(scsi_qla_host_t *vha)
 
 	if (IS_QLA27XX(ha) || IS_QLA83XX(ha) || IS_QLA28XX(ha)) {
 		ha->tgt.dfs_naqp = debugfs_create_file("naqp",
-		    0400, ha->dfs_dir, vha, &dfs_naqp_ops);
+		    0400, ha->dfs_dir, vha, &qla_dfs_naqp_ops);
 		if (!ha->tgt.dfs_naqp) {
 			ql_log(ql_log_warn, vha, 0xd011,
 			       "Unable to create debugFS naqp node.\n");
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3 4/5] usb: dwc3: debugfs: Introduce DEFINE_SHOW_STORE_ATTRIBUTE
  2020-11-03 12:29 [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Luo Jiaxing
                   ` (2 preceding siblings ...)
  2020-11-03 12:29 ` [PATCH v3 3/5] scsi: qla2xxx: " Luo Jiaxing
@ 2020-11-03 12:29 ` Luo Jiaxing
  2020-11-03 12:29 ` [PATCH v3 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs Luo Jiaxing
  2020-11-03 13:36 ` [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Greg KH
  5 siblings, 0 replies; 11+ messages in thread
From: Luo Jiaxing @ 2020-11-03 12:29 UTC (permalink / raw)
  To: akpm, viro, andriy.shevchenko
  Cc: linux-kernel, martin.petersen, john.garry, himanshu.madhani,
	felipe.balbi, gregkh, uma.shankar, anshuman.gupta, animesh.manna,
	linux-usb, linux-scsi, linuxarm

Seq introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE for
Read-Write file, so we apply it at dwc3 debugfs to reduce some duplicated
code.

While at that, also use DEFINE_SHOW_ATTRIBUTE() where possible.

Signed-off-by: Luo Jiaxing <luojiaxing@huawei.com>
Acked-by: Felipe Balbi <balbi@kernel.org>
---
 drivers/usb/dwc3/debugfs.c | 52 ++++------------------------------------------
 1 file changed, 4 insertions(+), 48 deletions(-)

diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c
index 5da4f60..2b5de8d 100644
--- a/drivers/usb/dwc3/debugfs.c
+++ b/drivers/usb/dwc3/debugfs.c
@@ -348,11 +348,6 @@ static int dwc3_lsp_show(struct seq_file *s, void *unused)
 	return 0;
 }
 
-static int dwc3_lsp_open(struct inode *inode, struct file *file)
-{
-	return single_open(file, dwc3_lsp_show, inode->i_private);
-}
-
 static ssize_t dwc3_lsp_write(struct file *file, const char __user *ubuf,
 			      size_t count, loff_t *ppos)
 {
@@ -377,13 +372,7 @@ static ssize_t dwc3_lsp_write(struct file *file, const char __user *ubuf,
 	return count;
 }
 
-static const struct file_operations dwc3_lsp_fops = {
-	.open			= dwc3_lsp_open,
-	.write			= dwc3_lsp_write,
-	.read			= seq_read,
-	.llseek			= seq_lseek,
-	.release		= single_release,
-};
+DEFINE_SHOW_STORE_ATTRIBUTE(dwc3_lsp);
 
 static int dwc3_mode_show(struct seq_file *s, void *unused)
 {
@@ -412,11 +401,6 @@ static int dwc3_mode_show(struct seq_file *s, void *unused)
 	return 0;
 }
 
-static int dwc3_mode_open(struct inode *inode, struct file *file)
-{
-	return single_open(file, dwc3_mode_show, inode->i_private);
-}
-
 static ssize_t dwc3_mode_write(struct file *file,
 		const char __user *ubuf, size_t count, loff_t *ppos)
 {
@@ -445,13 +429,7 @@ static ssize_t dwc3_mode_write(struct file *file,
 	return count;
 }
 
-static const struct file_operations dwc3_mode_fops = {
-	.open			= dwc3_mode_open,
-	.write			= dwc3_mode_write,
-	.read			= seq_read,
-	.llseek			= seq_lseek,
-	.release		= single_release,
-};
+DEFINE_SHOW_STORE_ATTRIBUTE(dwc3_mode);
 
 static int dwc3_testmode_show(struct seq_file *s, void *unused)
 {
@@ -491,11 +469,6 @@ static int dwc3_testmode_show(struct seq_file *s, void *unused)
 	return 0;
 }
 
-static int dwc3_testmode_open(struct inode *inode, struct file *file)
-{
-	return single_open(file, dwc3_testmode_show, inode->i_private);
-}
-
 static ssize_t dwc3_testmode_write(struct file *file,
 		const char __user *ubuf, size_t count, loff_t *ppos)
 {
@@ -528,13 +501,7 @@ static ssize_t dwc3_testmode_write(struct file *file,
 	return count;
 }
 
-static const struct file_operations dwc3_testmode_fops = {
-	.open			= dwc3_testmode_open,
-	.write			= dwc3_testmode_write,
-	.read			= seq_read,
-	.llseek			= seq_lseek,
-	.release		= single_release,
-};
+DEFINE_SHOW_STORE_ATTRIBUTE(dwc3_testmode);
 
 static int dwc3_link_state_show(struct seq_file *s, void *unused)
 {
@@ -564,11 +531,6 @@ static int dwc3_link_state_show(struct seq_file *s, void *unused)
 	return 0;
 }
 
-static int dwc3_link_state_open(struct inode *inode, struct file *file)
-{
-	return single_open(file, dwc3_link_state_show, inode->i_private);
-}
-
 static ssize_t dwc3_link_state_write(struct file *file,
 		const char __user *ubuf, size_t count, loff_t *ppos)
 {
@@ -620,13 +582,7 @@ static ssize_t dwc3_link_state_write(struct file *file,
 	return count;
 }
 
-static const struct file_operations dwc3_link_state_fops = {
-	.open			= dwc3_link_state_open,
-	.write			= dwc3_link_state_write,
-	.read			= seq_read,
-	.llseek			= seq_lseek,
-	.release		= single_release,
-};
+DEFINE_SHOW_STORE_ATTRIBUTE(dwc3_link_state);
 
 struct dwc3_ep_file_map {
 	const char name[25];
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs
  2020-11-03 12:29 [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Luo Jiaxing
                   ` (3 preceding siblings ...)
  2020-11-03 12:29 ` [PATCH v3 4/5] usb: dwc3: debugfs: Introduce DEFINE_SHOW_STORE_ATTRIBUTE Luo Jiaxing
@ 2020-11-03 12:29 ` Luo Jiaxing
  2020-11-03 19:25   ` kernel test robot
  2020-11-03 13:36 ` [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Greg KH
  5 siblings, 1 reply; 11+ messages in thread
From: Luo Jiaxing @ 2020-11-03 12:29 UTC (permalink / raw)
  To: akpm, viro, andriy.shevchenko
  Cc: linux-kernel, martin.petersen, john.garry, himanshu.madhani,
	felipe.balbi, gregkh, uma.shankar, anshuman.gupta, animesh.manna,
	linux-usb, linux-scsi, linuxarm

Seq introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE for
Read-Write file, so we apply it at drm/i915/display to reduce some
duplicated code.

Signed-off-by: Luo Jiaxing <luojiaxing@huawei.com>
---
 .../gpu/drm/i915/display/intel_display_debugfs.c   | 55 ++--------------------
 1 file changed, 4 insertions(+), 51 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
index 0bf31f9..8bf839f 100644
--- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
+++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
@@ -1329,21 +1329,7 @@ static int i915_displayport_test_active_show(struct seq_file *m, void *data)
 	return 0;
 }
 
-static int i915_displayport_test_active_open(struct inode *inode,
-					     struct file *file)
-{
-	return single_open(file, i915_displayport_test_active_show,
-			   inode->i_private);
-}
-
-static const struct file_operations i915_displayport_test_active_fops = {
-	.owner = THIS_MODULE,
-	.open = i915_displayport_test_active_open,
-	.read = seq_read,
-	.llseek = seq_lseek,
-	.release = single_release,
-	.write = i915_displayport_test_active_write
-};
+DEFINE_SHOW_STORE_ATTRIBUTE(i915_displayport_test_active);
 
 static int i915_displayport_test_data_show(struct seq_file *m, void *data)
 {
@@ -1733,19 +1719,7 @@ static ssize_t i915_hpd_storm_ctl_write(struct file *file,
 	return len;
 }
 
-static int i915_hpd_storm_ctl_open(struct inode *inode, struct file *file)
-{
-	return single_open(file, i915_hpd_storm_ctl_show, inode->i_private);
-}
-
-static const struct file_operations i915_hpd_storm_ctl_fops = {
-	.owner = THIS_MODULE,
-	.open = i915_hpd_storm_ctl_open,
-	.read = seq_read,
-	.llseek = seq_lseek,
-	.release = single_release,
-	.write = i915_hpd_storm_ctl_write
-};
+DEFINE_SHOW_STORE_ATTRIBUTE(i915_hpd_storm_ctl);
 
 static int i915_hpd_short_storm_ctl_show(struct seq_file *m, void *data)
 {
@@ -1811,14 +1785,7 @@ static ssize_t i915_hpd_short_storm_ctl_write(struct file *file,
 	return len;
 }
 
-static const struct file_operations i915_hpd_short_storm_ctl_fops = {
-	.owner = THIS_MODULE,
-	.open = i915_hpd_short_storm_ctl_open,
-	.read = seq_read,
-	.llseek = seq_lseek,
-	.release = single_release,
-	.write = i915_hpd_short_storm_ctl_write,
-};
+DEFINE_SHOW_STORE_ATTRIBUTE(i915_hpd_short_storm_ctl);
 
 static int i915_drrs_ctl_set(void *data, u64 val)
 {
@@ -2181,21 +2148,7 @@ static ssize_t i915_dsc_fec_support_write(struct file *file,
 	return len;
 }
 
-static int i915_dsc_fec_support_open(struct inode *inode,
-				     struct file *file)
-{
-	return single_open(file, i915_dsc_fec_support_show,
-			   inode->i_private);
-}
-
-static const struct file_operations i915_dsc_fec_support_fops = {
-	.owner = THIS_MODULE,
-	.open = i915_dsc_fec_support_open,
-	.read = seq_read,
-	.llseek = seq_lseek,
-	.release = single_release,
-	.write = i915_dsc_fec_support_write
-};
+DEFINE_SHOW_STORE_ATTRIBUTE(i915_dsc_fec_support);
 
 /**
  * intel_connector_debugfs_add - add i915 specific connector debugfs files
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c
  2020-11-03 12:29 [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Luo Jiaxing
                   ` (4 preceding siblings ...)
  2020-11-03 12:29 ` [PATCH v3 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs Luo Jiaxing
@ 2020-11-03 13:36 ` Greg KH
  2020-11-03 13:45   ` Alan Stern
  2020-11-05 11:05   ` luojiaxing
  5 siblings, 2 replies; 11+ messages in thread
From: Greg KH @ 2020-11-03 13:36 UTC (permalink / raw)
  To: Luo Jiaxing
  Cc: akpm, viro, andriy.shevchenko, linux-kernel, martin.petersen,
	john.garry, himanshu.madhani, felipe.balbi, uma.shankar,
	anshuman.gupta, animesh.manna, linux-usb, linux-scsi, linuxarm

On Tue, Nov 03, 2020 at 08:29:39PM +0800, Luo Jiaxing wrote:
> We already own DEFINE_SHOW_ATTRIBUTE() helper macro for defining attribute
> for read-only file, but we found many of drivers also want a helper macro
> for read-write file too.
> 
> So we add this macro to help decrease code duplication.
> 
> ---
>  v1->v2:
>         1.Rename DEFINE_STORE_ATTRIBUTE() to DEFINE_SHOW_STORE_ATTRIBUTE().
>  v2->v3:
>         1.Fixed some spelling mistakes in commit.
>         2.Revised resumes are added for easy tracing.

You forgot to address Al Viro's review comments :(


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c
  2020-11-03 13:36 ` [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Greg KH
@ 2020-11-03 13:45   ` Alan Stern
  2020-11-05 11:08     ` luojiaxing
  2020-11-05 11:05   ` luojiaxing
  1 sibling, 1 reply; 11+ messages in thread
From: Alan Stern @ 2020-11-03 13:45 UTC (permalink / raw)
  To: Greg KH
  Cc: Luo Jiaxing, akpm, viro, andriy.shevchenko, linux-kernel,
	martin.petersen, john.garry, himanshu.madhani, felipe.balbi,
	uma.shankar, anshuman.gupta, animesh.manna, linux-usb,
	linux-scsi, linuxarm

On Tue, Nov 03, 2020 at 02:36:44PM +0100, Greg KH wrote:
> On Tue, Nov 03, 2020 at 08:29:39PM +0800, Luo Jiaxing wrote:
> > We already own DEFINE_SHOW_ATTRIBUTE() helper macro for defining attribute
> > for read-only file, but we found many of drivers also want a helper macro
> > for read-write file too.
> > 
> > So we add this macro to help decrease code duplication.
> > 
> > ---
> >  v1->v2:
> >         1.Rename DEFINE_STORE_ATTRIBUTE() to DEFINE_SHOW_STORE_ATTRIBUTE().
> >  v2->v3:
> >         1.Fixed some spelling mistakes in commit.
> >         2.Revised resumes are added for easy tracing.
> 
> You forgot to address Al Viro's review comments :(

You also might want to fix the type in the Subject line ("marco" instead 
of "macro").

Alan Stern

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v3 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs
  2020-11-03 12:29 ` [PATCH v3 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs Luo Jiaxing
@ 2020-11-03 19:25   ` kernel test robot
  0 siblings, 0 replies; 11+ messages in thread
From: kernel test robot @ 2020-11-03 19:25 UTC (permalink / raw)
  To: Luo Jiaxing, akpm, viro, andriy.shevchenko
  Cc: kbuild-all, linux-kernel, martin.petersen, john.garry,
	himanshu.madhani, felipe.balbi, gregkh, uma.shankar

[-- Attachment #1: Type: text/plain, Size: 2630 bytes --]

Hi Luo,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on mkp-scsi/for-next]
[also build test ERROR on scsi/for-next linus/master v5.10-rc2 next-20201103]
[cannot apply to hnaz-linux-mm/master]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Luo-Jiaxing/Introduce-a-new-helper-marco-DEFINE_SHOW_STORE_ATTRIBUTE-at-seq_file-c/20201103-203013
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
config: x86_64-rhel (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/0day-ci/linux/commit/2a7109d59db858885944f3275a489046da612f3f
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Luo-Jiaxing/Introduce-a-new-helper-marco-DEFINE_SHOW_STORE_ATTRIBUTE-at-seq_file-c/20201103-203013
        git checkout 2a7109d59db858885944f3275a489046da612f3f
        # save the attached .config to linux build tree
        make W=1 ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from include/drm/drm_debugfs.h:36,
                    from drivers/gpu/drm/i915/display/intel_display_debugfs.c:6:
>> drivers/gpu/drm/i915/display/intel_display_debugfs.c:1788:29: error: redefinition of 'i915_hpd_short_storm_ctl_open'
    1788 | DEFINE_SHOW_STORE_ATTRIBUTE(i915_hpd_short_storm_ctl);
         |                             ^~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/seq_file.h:195:12: note: in definition of macro 'DEFINE_SHOW_STORE_ATTRIBUTE'
     195 | static int __name ## _open(struct inode *inode, struct file *file) \
         |            ^~~~~~
   drivers/gpu/drm/i915/display/intel_display_debugfs.c:1735:1: note: previous definition of 'i915_hpd_short_storm_ctl_open' was here
    1735 | i915_hpd_short_storm_ctl_open(struct inode *inode, struct file *file)
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/display/intel_display_debugfs.c:1735:1: warning: 'i915_hpd_short_storm_ctl_open' defined but not used [-Wunused-function]

vim +/i915_hpd_short_storm_ctl_open +1788 drivers/gpu/drm/i915/display/intel_display_debugfs.c

  1787	
> 1788	DEFINE_SHOW_STORE_ATTRIBUTE(i915_hpd_short_storm_ctl);
  1789	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 45910 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c
  2020-11-03 13:36 ` [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Greg KH
  2020-11-03 13:45   ` Alan Stern
@ 2020-11-05 11:05   ` luojiaxing
  1 sibling, 0 replies; 11+ messages in thread
From: luojiaxing @ 2020-11-05 11:05 UTC (permalink / raw)
  To: Greg KH
  Cc: akpm, viro, andriy.shevchenko, linux-kernel, martin.petersen,
	john.garry, himanshu.madhani, felipe.balbi, uma.shankar,
	anshuman.gupta, animesh.manna, linux-usb, linux-scsi, linuxarm

Hi, Greg

On 2020/11/3 21:36, Greg KH wrote:
> On Tue, Nov 03, 2020 at 08:29:39PM +0800, Luo Jiaxing wrote:
>> We already own DEFINE_SHOW_ATTRIBUTE() helper macro for defining attribute
>> for read-only file, but we found many of drivers also want a helper macro
>> for read-write file too.
>>
>> So we add this macro to help decrease code duplication.
>>
>> ---
>>   v1->v2:
>>          1.Rename DEFINE_STORE_ATTRIBUTE() to DEFINE_SHOW_STORE_ATTRIBUTE().
>>   v2->v3:
>>          1.Fixed some spelling mistakes in commit.
>>          2.Revised resumes are added for easy tracing.
> You forgot to address Al Viro's review comments :(


Yes, I remember that AI Viro point out that he don't want this, but Andy 
reply later and suggest me to modify the naming,

So I send a v2 for review.


Actually I am not sure about what you mean by " forgot to address Al 
Viro's review comments ". Should I add AI Viro's review comments at my 
changes description?


Thanks

Jiaxing


>
>
> .
>


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c
  2020-11-03 13:45   ` Alan Stern
@ 2020-11-05 11:08     ` luojiaxing
  0 siblings, 0 replies; 11+ messages in thread
From: luojiaxing @ 2020-11-05 11:08 UTC (permalink / raw)
  To: Alan Stern, Greg KH
  Cc: akpm, viro, andriy.shevchenko, linux-kernel, martin.petersen,
	john.garry, himanshu.madhani, felipe.balbi, uma.shankar,
	anshuman.gupta, animesh.manna, linux-usb, linux-scsi, linuxarm

Hi , Alan

On 2020/11/3 21:45, Alan Stern wrote:
> On Tue, Nov 03, 2020 at 02:36:44PM +0100, Greg KH wrote:
>> On Tue, Nov 03, 2020 at 08:29:39PM +0800, Luo Jiaxing wrote:
>>> We already own DEFINE_SHOW_ATTRIBUTE() helper macro for defining attribute
>>> for read-only file, but we found many of drivers also want a helper macro
>>> for read-write file too.
>>>
>>> So we add this macro to help decrease code duplication.
>>>
>>> ---
>>>   v1->v2:
>>>          1.Rename DEFINE_STORE_ATTRIBUTE() to DEFINE_SHOW_STORE_ATTRIBUTE().
>>>   v2->v3:
>>>          1.Fixed some spelling mistakes in commit.
>>>          2.Revised resumes are added for easy tracing.
>> You forgot to address Al Viro's review comments :(
> You also might want to fix the type in the Subject line ("marco" instead
> of "macro").


I'm sorry for such an obvious spelling error. Thanks for pointing out 
and it will be fixed in v4.


Jiaxing


>
> Alan Stern
>
> .
>


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-11-05 11:08 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-03 12:29 [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Luo Jiaxing
2020-11-03 12:29 ` [PATCH v3 1/5] seq_file: Introduce DEFINE_SHOW_STORE_ATTRIBUTE() helper macro Luo Jiaxing
2020-11-03 12:29 ` [PATCH v3 2/5] scsi: hisi_sas: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs Luo Jiaxing
2020-11-03 12:29 ` [PATCH v3 3/5] scsi: qla2xxx: " Luo Jiaxing
2020-11-03 12:29 ` [PATCH v3 4/5] usb: dwc3: debugfs: Introduce DEFINE_SHOW_STORE_ATTRIBUTE Luo Jiaxing
2020-11-03 12:29 ` [PATCH v3 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs Luo Jiaxing
2020-11-03 19:25   ` kernel test robot
2020-11-03 13:36 ` [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Greg KH
2020-11-03 13:45   ` Alan Stern
2020-11-05 11:08     ` luojiaxing
2020-11-05 11:05   ` luojiaxing

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).