[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <43d67a2b-6e44-9349-e0b5-80d1f50ed000@csgroup.eu>
Date: Mon, 12 Oct 2020 13:02:58 +0200
From: Christophe Leroy <christophe.leroy@...roup.eu>
To: Qinglang Miao <miaoqinglang@...wei.com>,
Michael Ellerman <mpe@...erman.id.au>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Paul Mackerras <paulus@...ba.org>
Cc: linuxppc-dev@...ts.ozlabs.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH -next v2] powerpc/mm: ptdump: Convert to
DEFINE_SHOW_ATTRIBUTE
Hi,
Le 19/09/2020 à 03:29, Qinglang Miao a écrit :
> Use DEFINE_SHOW_ATTRIBUTE macro to simplify the code.
>
> Signed-off-by: Qinglang Miao <miaoqinglang@...wei.com>
> ---
> v2: based on linux-next(20200917), and can be applied to
> mainline cleanly now.
After the removal of powerpc 601, this patch needs to be rebased (as of linux-next 20201012)
I think now, bats_show_603() should simply be renamed bats_show()
Christophe
>
> arch/powerpc/mm/ptdump/bats.c | 24 +++++++-----------------
> arch/powerpc/mm/ptdump/hashpagetable.c | 12 +-----------
> arch/powerpc/mm/ptdump/ptdump.c | 13 +------------
> arch/powerpc/mm/ptdump/segment_regs.c | 12 +-----------
> 4 files changed, 10 insertions(+), 51 deletions(-)
>
> diff --git a/arch/powerpc/mm/ptdump/bats.c b/arch/powerpc/mm/ptdump/bats.c
> index e29b338d4..a24495e93 100644
> --- a/arch/powerpc/mm/ptdump/bats.c
> +++ b/arch/powerpc/mm/ptdump/bats.c
> @@ -56,7 +56,7 @@ static void bat_show_601(struct seq_file *m, int idx, u32 lower, u32 upper)
>
> #define BAT_SHOW_601(_m, _n, _l, _u) bat_show_601(_m, _n, mfspr(_l), mfspr(_u))
>
> -static int bats_show_601(struct seq_file *m, void *v)
> +static int bats_601_show(struct seq_file *m, void *v)
> {
> seq_puts(m, "---[ Block Address Translation ]---\n");
>
> @@ -113,7 +113,7 @@ static void bat_show_603(struct seq_file *m, int idx, u32 lower, u32 upper, bool
>
> #define BAT_SHOW_603(_m, _n, _l, _u, _d) bat_show_603(_m, _n, mfspr(_l), mfspr(_u), _d)
>
> -static int bats_show_603(struct seq_file *m, void *v)
> +static int bats_603_show(struct seq_file *m, void *v)
> {
> seq_puts(m, "---[ Instruction Block Address Translation ]---\n");
>
> @@ -144,25 +144,15 @@ static int bats_show_603(struct seq_file *m, void *v)
> return 0;
> }
>
> -static int bats_open(struct inode *inode, struct file *file)
> -{
> - if (IS_ENABLED(CONFIG_PPC_BOOK3S_601))
> - return single_open(file, bats_show_601, NULL);
> -
> - return single_open(file, bats_show_603, NULL);
> -}
> -
> -static const struct file_operations bats_fops = {
> - .open = bats_open,
> - .read = seq_read,
> - .llseek = seq_lseek,
> - .release = single_release,
> -};
> +DEFINE_SHOW_ATTRIBUTE(bats_601);
> +DEFINE_SHOW_ATTRIBUTE(bats_603);
>
> static int __init bats_init(void)
> {
> debugfs_create_file("block_address_translation", 0400,
> - powerpc_debugfs_root, NULL, &bats_fops);
> + powerpc_debugfs_root, NULL,
> + IS_ENABLED(CONFIG_PPC_BOOK3S_601) ?
> + &bats_601_fops : & bats_603_fops);
> return 0;
> }
> device_initcall(bats_init);
> diff --git a/arch/powerpc/mm/ptdump/hashpagetable.c b/arch/powerpc/mm/ptdump/hashpagetable.c
> index ad6df9a2e..c7f824d29 100644
> --- a/arch/powerpc/mm/ptdump/hashpagetable.c
> +++ b/arch/powerpc/mm/ptdump/hashpagetable.c
> @@ -526,17 +526,7 @@ static int ptdump_show(struct seq_file *m, void *v)
> return 0;
> }
>
> -static int ptdump_open(struct inode *inode, struct file *file)
> -{
> - return single_open(file, ptdump_show, NULL);
> -}
> -
> -static const struct file_operations ptdump_fops = {
> - .open = ptdump_open,
> - .read = seq_read,
> - .llseek = seq_lseek,
> - .release = single_release,
> -};
> +DEFINE_SHOW_ATTRIBUTE(ptdump);
>
> static int ptdump_init(void)
> {
> diff --git a/arch/powerpc/mm/ptdump/ptdump.c b/arch/powerpc/mm/ptdump/ptdump.c
> index aca354fb6..6bbf85ff2 100644
> --- a/arch/powerpc/mm/ptdump/ptdump.c
> +++ b/arch/powerpc/mm/ptdump/ptdump.c
> @@ -413,18 +413,7 @@ static int ptdump_show(struct seq_file *m, void *v)
> return 0;
> }
>
> -
> -static int ptdump_open(struct inode *inode, struct file *file)
> -{
> - return single_open(file, ptdump_show, NULL);
> -}
> -
> -static const struct file_operations ptdump_fops = {
> - .open = ptdump_open,
> - .read = seq_read,
> - .llseek = seq_lseek,
> - .release = single_release,
> -};
> +DEFINE_SHOW_ATTRIBUTE(ptdump);
>
> static void build_pgtable_complete_mask(void)
> {
> diff --git a/arch/powerpc/mm/ptdump/segment_regs.c b/arch/powerpc/mm/ptdump/segment_regs.c
> index dde2fe8de..9e870d44c 100644
> --- a/arch/powerpc/mm/ptdump/segment_regs.c
> +++ b/arch/powerpc/mm/ptdump/segment_regs.c
> @@ -41,17 +41,7 @@ static int sr_show(struct seq_file *m, void *v)
> return 0;
> }
>
> -static int sr_open(struct inode *inode, struct file *file)
> -{
> - return single_open(file, sr_show, NULL);
> -}
> -
> -static const struct file_operations sr_fops = {
> - .open = sr_open,
> - .read = seq_read,
> - .llseek = seq_lseek,
> - .release = single_release,
> -};
> +DEFINE_SHOW_ATTRIBUTE(sr);
>
> static int __init sr_init(void)
> {
>
Powered by blists - more mailing lists