2020-11-03 12:31:34

by Luo Jiaxing

[permalink] [raw]
Subject: [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c

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


2020-11-03 12:33:18

by Luo Jiaxing

[permalink] [raw]
Subject: [PATCH v3 3/5] scsi: qla2xxx: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs

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 <[email protected]>
---
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

2020-11-03 12:33:21

by Luo Jiaxing

[permalink] [raw]
Subject: [PATCH v3 4/5] usb: dwc3: debugfs: Introduce DEFINE_SHOW_STORE_ATTRIBUTE

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 <[email protected]>
Acked-by: Felipe Balbi <[email protected]>
---
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

2020-11-03 12:34:27

by Luo Jiaxing

[permalink] [raw]
Subject: [PATCH v3 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs

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 <[email protected]>
---
.../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

2020-11-03 13:37:52

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c

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 :(

2020-11-03 14:14:27

by Alan Stern

[permalink] [raw]
Subject: Re: [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c

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

2020-11-03 19:29:24

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH v3 5/5] drm/i915/display: Introduce DEFINE_SHOW_STORE_ATTRIBUTE for debugfs

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 <[email protected]>

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/[email protected]


Attachments:
(No filename) (2.62 kB)
.config.gz (44.83 kB)
Download all attachments

2020-11-05 11:07:21

by Luo Jiaxing

[permalink] [raw]
Subject: Re: [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c

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


>
>
> .
>

2020-11-05 11:10:23

by Luo Jiaxing

[permalink] [raw]
Subject: Re: [PATCH v3 0/5] Introduce a new helper marco DEFINE_SHOW_STORE_ATTRIBUTE at seq_file.c

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
>
> .
>