All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c
@ 2020-11-12  7:07 Luo Jiaxing
  2020-11-12  7:07 ` [PATCH v4 1/5] seq_file: Introduce DEFINE_SHOW_STORE_ATTRIBUTE() helper macro Luo Jiaxing
                   ` (6 more replies)
  0 siblings, 7 replies; 17+ messages in thread
From: Luo Jiaxing @ 2020-11-12  7:07 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().
	2.AI Viro points out that he doesn't like the definition of macros
	  like DEFINE_SHOW_ATTRIBUTE.
 v2->v3:
        1.Fixed some spelling mistakes in commit.
        2.Revision description are added for easy tracing.

 v3->v4:
	1.Add AI Viro's comment to v1->v2's revision description.
	2.Fixed a spelling mistakes of "marco" to "macro".
---

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] 17+ messages in thread

* [PATCH v4 1/5] seq_file: Introduce DEFINE_SHOW_STORE_ATTRIBUTE() helper macro
  2020-11-12  7:07 [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Luo Jiaxing
@ 2020-11-12  7:07 ` Luo Jiaxing
  2020-11-12  7:07 ` [PATCH v4 2/5] scsi: hisi_sas: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs Luo Jiaxing
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 17+ messages in thread
From: Luo Jiaxing @ 2020-11-12  7:07 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] 17+ messages in thread

* [PATCH v4 2/5] scsi: hisi_sas: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs
  2020-11-12  7:07 [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Luo Jiaxing
  2020-11-12  7:07 ` [PATCH v4 1/5] seq_file: Introduce DEFINE_SHOW_STORE_ATTRIBUTE() helper macro Luo Jiaxing
@ 2020-11-12  7:07 ` Luo Jiaxing
  2020-11-12  7:07 ` [PATCH v4 3/5] scsi: qla2xxx: " Luo Jiaxing
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 17+ messages in thread
From: Luo Jiaxing @ 2020-11-12  7:07 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] 17+ messages in thread

* [PATCH v4 3/5] scsi: qla2xxx: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs
  2020-11-12  7:07 [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Luo Jiaxing
  2020-11-12  7:07 ` [PATCH v4 1/5] seq_file: Introduce DEFINE_SHOW_STORE_ATTRIBUTE() helper macro Luo Jiaxing
  2020-11-12  7:07 ` [PATCH v4 2/5] scsi: hisi_sas: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs Luo Jiaxing
@ 2020-11-12  7:07 ` Luo Jiaxing
  2020-11-13 23:52     ` kernel test robot
  2020-11-12  7:07 ` [PATCH v4 4/5] usb: dwc3: debugfs: Introduce DEFINE_SHOW_STORE_ATTRIBUTE Luo Jiaxing
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 17+ messages in thread
From: Luo Jiaxing @ 2020-11-12  7:07 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] 17+ messages in thread

* [PATCH v4 4/5] usb: dwc3: debugfs: Introduce DEFINE_SHOW_STORE_ATTRIBUTE
  2020-11-12  7:07 [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Luo Jiaxing
                   ` (2 preceding siblings ...)
  2020-11-12  7:07 ` [PATCH v4 3/5] scsi: qla2xxx: " Luo Jiaxing
@ 2020-11-12  7:07 ` Luo Jiaxing
  2020-11-12  7:07 ` [PATCH v4 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs Luo Jiaxing
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 17+ messages in thread
From: Luo Jiaxing @ 2020-11-12  7:07 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] 17+ messages in thread

* [PATCH v4 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs
  2020-11-12  7:07 [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Luo Jiaxing
                   ` (3 preceding siblings ...)
  2020-11-12  7:07 ` [PATCH v4 4/5] usb: dwc3: debugfs: Introduce DEFINE_SHOW_STORE_ATTRIBUTE Luo Jiaxing
@ 2020-11-12  7:07 ` Luo Jiaxing
  2020-11-13 11:26     ` kernel test robot
  2020-11-14  5:12     ` kernel test robot
  2023-06-28 10:40 ` [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Andy Shevchenko
  2023-08-31 18:19 ` Andy Shevchenko
  6 siblings, 2 replies; 17+ messages in thread
From: Luo Jiaxing @ 2020-11-12  7:07 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] 17+ messages in thread

* Re: [PATCH v4 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs
  2020-11-12  7:07 ` [PATCH v4 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs Luo Jiaxing
@ 2020-11-13 11:26     ` kernel test robot
  2020-11-14  5:12     ` kernel test robot
  1 sibling, 0 replies; 17+ messages in thread
From: kernel test robot @ 2020-11-13 11:26 UTC (permalink / raw)
  To: Luo Jiaxing, akpm, viro, andriy.shevchenko
  Cc: kbuild-all, clang-built-linux, linux-kernel, martin.petersen,
	john.garry, himanshu.madhani, felipe.balbi, gregkh, uma.shankar

[-- Attachment #1: Type: text/plain, Size: 2687 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-rc3 next-20201112]
[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-macro-DEFINE_SHOW_STORE_ATTRIBUTE-at-seq_file-c/20201112-150927
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
config: x86_64-randconfig-a002-20201111 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project a7b65741441556d295079fc4f2391d99fd1c1111)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://github.com/0day-ci/linux/commit/c5417f366b929124a8b8a6add9b86653da6935a8
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Luo-Jiaxing/Introduce-a-new-helper-macro-DEFINE_SHOW_STORE_ATTRIBUTE-at-seq_file-c/20201112-150927
        git checkout c5417f366b929124a8b8a6add9b86653da6935a8
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross 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 >>):

>> drivers/gpu/drm/i915/display/intel_display_debugfs.c:1788:1: error: redefinition of 'i915_hpd_short_storm_ctl_open'
   DEFINE_SHOW_STORE_ATTRIBUTE(i915_hpd_short_storm_ctl);
   ^
   include/linux/seq_file.h:195:12: note: expanded from macro 'DEFINE_SHOW_STORE_ATTRIBUTE'
   static int __name ## _open(struct inode *inode, struct file *file)      \
              ^
   <scratch space>:154:1: note: expanded from here
   i915_hpd_short_storm_ctl_open
   ^
   drivers/gpu/drm/i915/display/intel_display_debugfs.c:1735:1: note: previous definition is here
   i915_hpd_short_storm_ctl_open(struct inode *inode, struct file *file)
   ^
   1 error generated.

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: 34354 bytes --]

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

* Re: [PATCH v4 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs
@ 2020-11-13 11:26     ` kernel test robot
  0 siblings, 0 replies; 17+ messages in thread
From: kernel test robot @ 2020-11-13 11:26 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 2744 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-rc3 next-20201112]
[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-macro-DEFINE_SHOW_STORE_ATTRIBUTE-at-seq_file-c/20201112-150927
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
config: x86_64-randconfig-a002-20201111 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project a7b65741441556d295079fc4f2391d99fd1c1111)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://github.com/0day-ci/linux/commit/c5417f366b929124a8b8a6add9b86653da6935a8
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Luo-Jiaxing/Introduce-a-new-helper-macro-DEFINE_SHOW_STORE_ATTRIBUTE-at-seq_file-c/20201112-150927
        git checkout c5417f366b929124a8b8a6add9b86653da6935a8
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross 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 >>):

>> drivers/gpu/drm/i915/display/intel_display_debugfs.c:1788:1: error: redefinition of 'i915_hpd_short_storm_ctl_open'
   DEFINE_SHOW_STORE_ATTRIBUTE(i915_hpd_short_storm_ctl);
   ^
   include/linux/seq_file.h:195:12: note: expanded from macro 'DEFINE_SHOW_STORE_ATTRIBUTE'
   static int __name ## _open(struct inode *inode, struct file *file)      \
              ^
   <scratch space>:154:1: note: expanded from here
   i915_hpd_short_storm_ctl_open
   ^
   drivers/gpu/drm/i915/display/intel_display_debugfs.c:1735:1: note: previous definition is here
   i915_hpd_short_storm_ctl_open(struct inode *inode, struct file *file)
   ^
   1 error generated.

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(a)lists.01.org

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

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

* Re: [PATCH v4 3/5] scsi: qla2xxx: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs
  2020-11-12  7:07 ` [PATCH v4 3/5] scsi: qla2xxx: " Luo Jiaxing
@ 2020-11-13 23:52     ` kernel test robot
  0 siblings, 0 replies; 17+ messages in thread
From: kernel test robot @ 2020-11-13 23:52 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: 4791 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-rc3 next-20201113]
[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-macro-DEFINE_SHOW_STORE_ATTRIBUTE-at-seq_file-c/20201112-150927
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/cdd2edc795fcbb643f104476d99a52d0e95bb229
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Luo-Jiaxing/Introduce-a-new-helper-macro-DEFINE_SHOW_STORE_ATTRIBUTE-at-seq_file-c/20201112-150927
        git checkout cdd2edc795fcbb643f104476d99a52d0e95bb229
        # 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 >>):

   drivers/scsi/qla2xxx/qla_dfs.c: In function 'qla2x00_dfs_setup':
>> drivers/scsi/qla2xxx/qla_dfs.c:558:32: error: 'qla_dfs_naqp_ops' undeclared (first use in this function); did you mean 'qla_dfs_naqp_fops'?
     558 |       0400, ha->dfs_dir, vha, &qla_dfs_naqp_ops);
         |                                ^~~~~~~~~~~~~~~~
         |                                qla_dfs_naqp_fops
   drivers/scsi/qla2xxx/qla_dfs.c:558:32: note: each undeclared identifier is reported only once for each function it appears in
   In file included from include/scsi/scsi_host.h:10,
                    from drivers/scsi/qla2xxx/qla_def.h:30,
                    from drivers/scsi/qla2xxx/qla_dfs.c:6:
   At top level:
   drivers/scsi/qla2xxx/qla_dfs.c:512:29: warning: 'qla_dfs_naqp_fops' defined but not used [-Wunused-const-variable=]
     512 | DEFINE_SHOW_STORE_ATTRIBUTE(qla_dfs_naqp);
         |                             ^~~~~~~~~~~~
   include/linux/seq_file.h:200:37: note: in definition of macro 'DEFINE_SHOW_STORE_ATTRIBUTE'
     200 | static const struct file_operations __name ## _fops = {   \
         |                                     ^~~~~~

vim +558 drivers/scsi/qla2xxx/qla_dfs.c

   513	
   514	int
   515	qla2x00_dfs_setup(scsi_qla_host_t *vha)
   516	{
   517		struct qla_hw_data *ha = vha->hw;
   518	
   519		if (!IS_QLA25XX(ha) && !IS_QLA81XX(ha) && !IS_QLA83XX(ha) &&
   520		    !IS_QLA27XX(ha) && !IS_QLA28XX(ha))
   521			goto out;
   522		if (!ha->fce)
   523			goto out;
   524	
   525		if (qla2x00_dfs_root)
   526			goto create_dir;
   527	
   528		atomic_set(&qla2x00_dfs_root_count, 0);
   529		qla2x00_dfs_root = debugfs_create_dir(QLA2XXX_DRIVER_NAME, NULL);
   530	
   531	create_dir:
   532		if (ha->dfs_dir)
   533			goto create_nodes;
   534	
   535		mutex_init(&ha->fce_mutex);
   536		ha->dfs_dir = debugfs_create_dir(vha->host_str, qla2x00_dfs_root);
   537	
   538		atomic_inc(&qla2x00_dfs_root_count);
   539	
   540	create_nodes:
   541		ha->dfs_fw_resource_cnt = debugfs_create_file("fw_resource_count",
   542		    S_IRUSR, ha->dfs_dir, vha, &qla_dfs_fw_resource_cnt_fops);
   543	
   544		ha->dfs_tgt_counters = debugfs_create_file("tgt_counters", S_IRUSR,
   545		    ha->dfs_dir, vha, &qla_dfs_tgt_counters_fops);
   546	
   547		ha->tgt.dfs_tgt_port_database = debugfs_create_file("tgt_port_database",
   548		    S_IRUSR,  ha->dfs_dir, vha, &qla2x00_dfs_tgt_port_database_fops);
   549	
   550		ha->dfs_fce = debugfs_create_file("fce", S_IRUSR, ha->dfs_dir, vha,
   551		    &dfs_fce_ops);
   552	
   553		ha->tgt.dfs_tgt_sess = debugfs_create_file("tgt_sess",
   554			S_IRUSR, ha->dfs_dir, vha, &qla2x00_dfs_tgt_sess_fops);
   555	
   556		if (IS_QLA27XX(ha) || IS_QLA83XX(ha) || IS_QLA28XX(ha)) {
   557			ha->tgt.dfs_naqp = debugfs_create_file("naqp",
 > 558			    0400, ha->dfs_dir, vha, &qla_dfs_naqp_ops);
   559			if (!ha->tgt.dfs_naqp) {
   560				ql_log(ql_log_warn, vha, 0xd011,
   561				       "Unable to create debugFS naqp node.\n");
   562				goto out;
   563			}
   564		}
   565		vha->dfs_rport_root = debugfs_create_dir("rports", ha->dfs_dir);
   566		if (!vha->dfs_rport_root) {
   567			ql_log(ql_log_warn, vha, 0xd012,
   568			       "Unable to create debugFS rports node.\n");
   569			goto out;
   570		}
   571	out:
   572		return 0;
   573	}
   574	

---
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: 45908 bytes --]

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

* Re: [PATCH v4 3/5] scsi: qla2xxx: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs
@ 2020-11-13 23:52     ` kernel test robot
  0 siblings, 0 replies; 17+ messages in thread
From: kernel test robot @ 2020-11-13 23:52 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 4906 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-rc3 next-20201113]
[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-macro-DEFINE_SHOW_STORE_ATTRIBUTE-at-seq_file-c/20201112-150927
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/cdd2edc795fcbb643f104476d99a52d0e95bb229
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Luo-Jiaxing/Introduce-a-new-helper-macro-DEFINE_SHOW_STORE_ATTRIBUTE-at-seq_file-c/20201112-150927
        git checkout cdd2edc795fcbb643f104476d99a52d0e95bb229
        # 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 >>):

   drivers/scsi/qla2xxx/qla_dfs.c: In function 'qla2x00_dfs_setup':
>> drivers/scsi/qla2xxx/qla_dfs.c:558:32: error: 'qla_dfs_naqp_ops' undeclared (first use in this function); did you mean 'qla_dfs_naqp_fops'?
     558 |       0400, ha->dfs_dir, vha, &qla_dfs_naqp_ops);
         |                                ^~~~~~~~~~~~~~~~
         |                                qla_dfs_naqp_fops
   drivers/scsi/qla2xxx/qla_dfs.c:558:32: note: each undeclared identifier is reported only once for each function it appears in
   In file included from include/scsi/scsi_host.h:10,
                    from drivers/scsi/qla2xxx/qla_def.h:30,
                    from drivers/scsi/qla2xxx/qla_dfs.c:6:
   At top level:
   drivers/scsi/qla2xxx/qla_dfs.c:512:29: warning: 'qla_dfs_naqp_fops' defined but not used [-Wunused-const-variable=]
     512 | DEFINE_SHOW_STORE_ATTRIBUTE(qla_dfs_naqp);
         |                             ^~~~~~~~~~~~
   include/linux/seq_file.h:200:37: note: in definition of macro 'DEFINE_SHOW_STORE_ATTRIBUTE'
     200 | static const struct file_operations __name ## _fops = {   \
         |                                     ^~~~~~

vim +558 drivers/scsi/qla2xxx/qla_dfs.c

   513	
   514	int
   515	qla2x00_dfs_setup(scsi_qla_host_t *vha)
   516	{
   517		struct qla_hw_data *ha = vha->hw;
   518	
   519		if (!IS_QLA25XX(ha) && !IS_QLA81XX(ha) && !IS_QLA83XX(ha) &&
   520		    !IS_QLA27XX(ha) && !IS_QLA28XX(ha))
   521			goto out;
   522		if (!ha->fce)
   523			goto out;
   524	
   525		if (qla2x00_dfs_root)
   526			goto create_dir;
   527	
   528		atomic_set(&qla2x00_dfs_root_count, 0);
   529		qla2x00_dfs_root = debugfs_create_dir(QLA2XXX_DRIVER_NAME, NULL);
   530	
   531	create_dir:
   532		if (ha->dfs_dir)
   533			goto create_nodes;
   534	
   535		mutex_init(&ha->fce_mutex);
   536		ha->dfs_dir = debugfs_create_dir(vha->host_str, qla2x00_dfs_root);
   537	
   538		atomic_inc(&qla2x00_dfs_root_count);
   539	
   540	create_nodes:
   541		ha->dfs_fw_resource_cnt = debugfs_create_file("fw_resource_count",
   542		    S_IRUSR, ha->dfs_dir, vha, &qla_dfs_fw_resource_cnt_fops);
   543	
   544		ha->dfs_tgt_counters = debugfs_create_file("tgt_counters", S_IRUSR,
   545		    ha->dfs_dir, vha, &qla_dfs_tgt_counters_fops);
   546	
   547		ha->tgt.dfs_tgt_port_database = debugfs_create_file("tgt_port_database",
   548		    S_IRUSR,  ha->dfs_dir, vha, &qla2x00_dfs_tgt_port_database_fops);
   549	
   550		ha->dfs_fce = debugfs_create_file("fce", S_IRUSR, ha->dfs_dir, vha,
   551		    &dfs_fce_ops);
   552	
   553		ha->tgt.dfs_tgt_sess = debugfs_create_file("tgt_sess",
   554			S_IRUSR, ha->dfs_dir, vha, &qla2x00_dfs_tgt_sess_fops);
   555	
   556		if (IS_QLA27XX(ha) || IS_QLA83XX(ha) || IS_QLA28XX(ha)) {
   557			ha->tgt.dfs_naqp = debugfs_create_file("naqp",
 > 558			    0400, ha->dfs_dir, vha, &qla_dfs_naqp_ops);
   559			if (!ha->tgt.dfs_naqp) {
   560				ql_log(ql_log_warn, vha, 0xd011,
   561				       "Unable to create debugFS naqp node.\n");
   562				goto out;
   563			}
   564		}
   565		vha->dfs_rport_root = debugfs_create_dir("rports", ha->dfs_dir);
   566		if (!vha->dfs_rport_root) {
   567			ql_log(ql_log_warn, vha, 0xd012,
   568			       "Unable to create debugFS rports node.\n");
   569			goto out;
   570		}
   571	out:
   572		return 0;
   573	}
   574	

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

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

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

* Re: [PATCH v4 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs
  2020-11-12  7:07 ` [PATCH v4 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs Luo Jiaxing
@ 2020-11-14  5:12     ` kernel test robot
  2020-11-14  5:12     ` kernel test robot
  1 sibling, 0 replies; 17+ messages in thread
From: kernel test robot @ 2020-11-14  5:12 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-rc3 next-20201113]
[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-macro-DEFINE_SHOW_STORE_ATTRIBUTE-at-seq_file-c/20201112-150927
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/c5417f366b929124a8b8a6add9b86653da6935a8
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Luo-Jiaxing/Introduce-a-new-helper-macro-DEFINE_SHOW_STORE_ATTRIBUTE-at-seq_file-c/20201112-150927
        git checkout c5417f366b929124a8b8a6add9b86653da6935a8
        # 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: 45908 bytes --]

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

* Re: [PATCH v4 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs
@ 2020-11-14  5:12     ` kernel test robot
  0 siblings, 0 replies; 17+ messages in thread
From: kernel test robot @ 2020-11-14  5:12 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 2682 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-rc3 next-20201113]
[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-macro-DEFINE_SHOW_STORE_ATTRIBUTE-at-seq_file-c/20201112-150927
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/c5417f366b929124a8b8a6add9b86653da6935a8
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Luo-Jiaxing/Introduce-a-new-helper-macro-DEFINE_SHOW_STORE_ATTRIBUTE-at-seq_file-c/20201112-150927
        git checkout c5417f366b929124a8b8a6add9b86653da6935a8
        # 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(a)lists.01.org

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

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

* Re: [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c
  2020-11-12  7:07 [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Luo Jiaxing
                   ` (4 preceding siblings ...)
  2020-11-12  7:07 ` [PATCH v4 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs Luo Jiaxing
@ 2023-06-28 10:40 ` Andy Shevchenko
  2023-08-31 18:19 ` Andy Shevchenko
  6 siblings, 0 replies; 17+ messages in thread
From: Andy Shevchenko @ 2023-06-28 10:40 UTC (permalink / raw)
  To: Luo Jiaxing, Wojciech Ziemba
  Cc: akpm, viro, linux-kernel, martin.petersen, john.garry,
	himanshu.madhani, gregkh, uma.shankar, anshuman.gupta,
	animesh.manna, linux-usb, linux-scsi, linuxarm

On Thu, Nov 12, 2020 at 03:07:38PM +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.

Is it abandoned?
Besides kbuildbot complains, can you simply reduce the scope to one subsystem
and resend?

Let's say USB is nice one and it has no issues according to kbuildbot.

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c
  2020-11-12  7:07 [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Luo Jiaxing
                   ` (5 preceding siblings ...)
  2023-06-28 10:40 ` [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Andy Shevchenko
@ 2023-08-31 18:19 ` Andy Shevchenko
  2023-09-01  7:11   ` yangxingui
  6 siblings, 1 reply; 17+ messages in thread
From: Andy Shevchenko @ 2023-08-31 18:19 UTC (permalink / raw)
  To: Luo Jiaxing
  Cc: akpm, viro, linux-kernel, martin.petersen, john.garry,
	himanshu.madhani, felipe.balbi, gregkh, uma.shankar,
	anshuman.gupta, animesh.manna, linux-usb, linux-scsi, linuxarm

On Thu, Nov 12, 2020 at 03:07:38PM +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.

Are you going to pursue this one?

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c
  2023-08-31 18:19 ` Andy Shevchenko
@ 2023-09-01  7:11   ` yangxingui
  2023-09-01  8:54     ` Andy Shevchenko
  0 siblings, 1 reply; 17+ messages in thread
From: yangxingui @ 2023-09-01  7:11 UTC (permalink / raw)
  To: Andy Shevchenko, Luo Jiaxing
  Cc: akpm, viro, linux-kernel, martin.petersen, john.garry,
	himanshu.madhani, felipe.balbi, gregkh, uma.shankar,
	anshuman.gupta, animesh.manna, linux-usb, linux-scsi, linuxarm



On 2023/9/1 2:19, Andy Shevchenko wrote:
> On Thu, Nov 12, 2020 at 03:07:38PM +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.
> 
> Are you going to pursue this one?
Hi Andy

Jiaxing has left his job, and his email is invalid.

Thanks,
Xingui
> 

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

* Re: [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c
  2023-09-01  7:11   ` yangxingui
@ 2023-09-01  8:54     ` Andy Shevchenko
  2023-09-04  7:12       ` yangxingui
  0 siblings, 1 reply; 17+ messages in thread
From: Andy Shevchenko @ 2023-09-01  8:54 UTC (permalink / raw)
  To: yangxingui
  Cc: Luo Jiaxing, akpm, viro, linux-kernel, martin.petersen,
	john.garry, himanshu.madhani, felipe.balbi, gregkh, uma.shankar,
	anshuman.gupta, animesh.manna, linux-usb, linux-scsi, linuxarm

On Fri, Sep 01, 2023 at 03:11:38PM +0800, yangxingui wrote:
> On 2023/9/1 2:19, Andy Shevchenko wrote:
> > On Thu, Nov 12, 2020 at 03:07:38PM +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.
> > 
> > Are you going to pursue this one?
> Hi Andy
> 
> Jiaxing has left his job, and his email is invalid.

OK! Anybody else to continue this to be finished?

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c
  2023-09-01  8:54     ` Andy Shevchenko
@ 2023-09-04  7:12       ` yangxingui
  0 siblings, 0 replies; 17+ messages in thread
From: yangxingui @ 2023-09-04  7:12 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Luo Jiaxing, akpm, viro, linux-kernel, martin.petersen,
	john.garry, himanshu.madhani, felipe.balbi, gregkh, uma.shankar,
	anshuman.gupta, animesh.manna, linux-usb, linux-scsi, linuxarm



On 2023/9/1 16:54, Andy Shevchenko wrote:
> On Fri, Sep 01, 2023 at 03:11:38PM +0800, yangxingui wrote:
>> On 2023/9/1 2:19, Andy Shevchenko wrote:
>>> On Thu, Nov 12, 2020 at 03:07:38PM +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.
>>>
>>> Are you going to pursue this one?
>> Hi Andy
>>
>> Jiaxing has left his job, and his email is invalid.
> 
> OK! Anybody else to continue this to be finished?
I'll continue to do this for him. Thank you for your attention and 
advice. We'll apply it only to the scsi subsystem first.

Thanks.

Xingui
> 

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

end of thread, other threads:[~2023-09-04  7:12 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-12  7:07 [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Luo Jiaxing
2020-11-12  7:07 ` [PATCH v4 1/5] seq_file: Introduce DEFINE_SHOW_STORE_ATTRIBUTE() helper macro Luo Jiaxing
2020-11-12  7:07 ` [PATCH v4 2/5] scsi: hisi_sas: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs Luo Jiaxing
2020-11-12  7:07 ` [PATCH v4 3/5] scsi: qla2xxx: " Luo Jiaxing
2020-11-13 23:52   ` kernel test robot
2020-11-13 23:52     ` kernel test robot
2020-11-12  7:07 ` [PATCH v4 4/5] usb: dwc3: debugfs: Introduce DEFINE_SHOW_STORE_ATTRIBUTE Luo Jiaxing
2020-11-12  7:07 ` [PATCH v4 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs Luo Jiaxing
2020-11-13 11:26   ` kernel test robot
2020-11-13 11:26     ` kernel test robot
2020-11-14  5:12   ` kernel test robot
2020-11-14  5:12     ` kernel test robot
2023-06-28 10:40 ` [PATCH v4 0/5] Introduce a new helper macro DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c Andy Shevchenko
2023-08-31 18:19 ` Andy Shevchenko
2023-09-01  7:11   ` yangxingui
2023-09-01  8:54     ` Andy Shevchenko
2023-09-04  7:12       ` yangxingui

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.