linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] nvdimm: constify device_type structures
@ 2017-01-24 19:24 Bhumika Goyal
  2017-01-24 19:58 ` Dan Williams
  2017-01-25  2:37 ` Joe Perches
  0 siblings, 2 replies; 9+ messages in thread
From: Bhumika Goyal @ 2017-01-24 19:24 UTC (permalink / raw)
  To: julia.lawall, dan.j.williams, linux-nvdimm, linux-kernel; +Cc: Bhumika Goyal

Declare device_type structure as const as it is only stored in the
type field of a device structure. This field is of type const, so add
const to declaration of device_type structure.

File size before:
  text	   data	    bss	    dec	    hex	filename
  19278	   3199	     16	  22493	   57dd	nvdimm/namespace_devs.o

File size after:
  text	   data	    bss	    dec	    hex	filename
  19929	   3160	     16	  23105	   5a41	nvdimm/namespace_devs.o

Signed-off-by: Bhumika Goyal <bhumirks@gmail.com>
---
 drivers/nvdimm/namespace_devs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/nvdimm/namespace_devs.c b/drivers/nvdimm/namespace_devs.c
index 6307088..b8c40b8 100644
--- a/drivers/nvdimm/namespace_devs.c
+++ b/drivers/nvdimm/namespace_devs.c
@@ -52,17 +52,17 @@ static void namespace_blk_release(struct device *dev)
 	kfree(nsblk);
 }
 
-static struct device_type namespace_io_device_type = {
+static const struct device_type namespace_io_device_type = {
 	.name = "nd_namespace_io",
 	.release = namespace_io_release,
 };
 
-static struct device_type namespace_pmem_device_type = {
+static const struct device_type namespace_pmem_device_type = {
 	.name = "nd_namespace_pmem",
 	.release = namespace_pmem_release,
 };
 
-static struct device_type namespace_blk_device_type = {
+static const struct device_type namespace_blk_device_type = {
 	.name = "nd_namespace_blk",
 	.release = namespace_blk_release,
 };
-- 
2.7.4

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

* Re: [PATCH] nvdimm: constify device_type structures
  2017-01-24 19:24 [PATCH] nvdimm: constify device_type structures Bhumika Goyal
@ 2017-01-24 19:58 ` Dan Williams
  2017-01-25  2:37 ` Joe Perches
  1 sibling, 0 replies; 9+ messages in thread
From: Dan Williams @ 2017-01-24 19:58 UTC (permalink / raw)
  To: Bhumika Goyal; +Cc: Julia Lawall, linux-nvdimm@lists.01.org, linux-kernel

On Tue, Jan 24, 2017 at 11:24 AM, Bhumika Goyal <bhumirks@gmail.com> wrote:
> Declare device_type structure as const as it is only stored in the
> type field of a device structure. This field is of type const, so add
> const to declaration of device_type structure.
>
> File size before:
>   text     data     bss     dec     hex filename
>   19278    3199      16   22493    57dd nvdimm/namespace_devs.o
>
> File size after:
>   text     data     bss     dec     hex filename
>   19929    3160      16   23105    5a41 nvdimm/namespace_devs.o
>
> Signed-off-by: Bhumika Goyal <bhumirks@gmail.com>

Looks good to me, thanks, applied for 4.11.

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

* Re: [PATCH] nvdimm: constify device_type structures
  2017-01-24 19:24 [PATCH] nvdimm: constify device_type structures Bhumika Goyal
  2017-01-24 19:58 ` Dan Williams
@ 2017-01-25  2:37 ` Joe Perches
  2017-01-25  2:40   ` Dan Williams
  1 sibling, 1 reply; 9+ messages in thread
From: Joe Perches @ 2017-01-25  2:37 UTC (permalink / raw)
  To: Bhumika Goyal, julia.lawall, dan.j.williams, linux-nvdimm, linux-kernel

On Wed, 2017-01-25 at 00:54 +0530, Bhumika Goyal wrote:
> Declare device_type structure as const as it is only stored in the
> type field of a device structure. This field is of type const, so add
> const to declaration of device_type structure.
> 
> File size before:
>   text	   data	    bss	    dec	    hex	filename
>   19278	   3199	     16	  22493	   57dd	nvdimm/namespace_devs.o
> 
> File size after:
>   text	   data	    bss	    dec	    hex	filename
>   19929	   3160	     16	  23105	   5a41	nvdimm/namespace_devs.o

Fine, but are you sure about the sizes?

It seems odd the text went up 651 bytes
while the data went down just 39 bytes.

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

* Re: [PATCH] nvdimm: constify device_type structures
  2017-01-25  2:37 ` Joe Perches
@ 2017-01-25  2:40   ` Dan Williams
  2017-01-25  2:49     ` Joe Perches
  0 siblings, 1 reply; 9+ messages in thread
From: Dan Williams @ 2017-01-25  2:40 UTC (permalink / raw)
  To: Joe Perches
  Cc: Bhumika Goyal, Julia Lawall, linux-nvdimm@lists.01.org, linux-kernel

On Tue, Jan 24, 2017 at 6:37 PM, Joe Perches <joe@perches.com> wrote:
> On Wed, 2017-01-25 at 00:54 +0530, Bhumika Goyal wrote:
>> Declare device_type structure as const as it is only stored in the
>> type field of a device structure. This field is of type const, so add
>> const to declaration of device_type structure.
>>
>> File size before:
>>   text           data     bss     dec     hex filename
>>   19278          3199      16   22493    57dd nvdimm/namespace_devs.o
>>
>> File size after:
>>   text           data     bss     dec     hex filename
>>   19929          3160      16   23105    5a41 nvdimm/namespace_devs.o
>
> Fine, but are you sure about the sizes?
>
> It seems odd the text went up 651 bytes
> while the data went down just 39 bytes.
>

Right, the size data wasn't why I applied it. It was the general rule
of "make function pointer data read-only whenever possible to
eliminate a kernel attack vector".  Bhumika, you might want to mention
this as the motivating reason to apply the patch if you do more of
these changes.

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

* Re: [PATCH] nvdimm: constify device_type structures
  2017-01-25  2:40   ` Dan Williams
@ 2017-01-25  2:49     ` Joe Perches
  2017-01-25  6:49       ` Julia Lawall
  0 siblings, 1 reply; 9+ messages in thread
From: Joe Perches @ 2017-01-25  2:49 UTC (permalink / raw)
  To: Dan Williams
  Cc: Bhumika Goyal, Julia Lawall, linux-nvdimm@lists.01.org, linux-kernel

On Tue, 2017-01-24 at 18:40 -0800, Dan Williams wrote:
> On Tue, Jan 24, 2017 at 6:37 PM, Joe Perches <joe@perches.com> wrote:
> > On Wed, 2017-01-25 at 00:54 +0530, Bhumika Goyal wrote:
> > > Declare device_type structure as const as it is only stored in the
> > > type field of a device structure. This field is of type const, so add
> > > const to declaration of device_type structure.
> > > 
> > > File size before:
> > >   text           data     bss     dec     hex filename
> > >   19278          3199      16   22493    57dd nvdimm/namespace_devs.o
> > > 
> > > File size after:
> > >   text           data     bss     dec     hex filename
> > >   19929          3160      16   23105    5a41 nvdimm/namespace_devs.o
> > 
> > Fine, but are you sure about the sizes?
> > 
> > It seems odd the text went up 651 bytes
> > while the data went down just 39 bytes.
> > 
> 
> Right, the size data wasn't why I applied it. It was the general rule
> of "make function pointer data read-only whenever possible to
> eliminate a kernel attack vector".

Exactly the correct reason it's a fine patch and one
that should be applied.

> Bhumika, you might want to mention
> this as the motivating reason to apply the patch if you do more of
> these changes.

Regardless, the object sizes are still odd.

The config should be mentioned because actually,
the commonly compiles sizes reported are not correct.

with an x86-64 defconfig I get:

$ size drivers/nvdimm/namespace_devs.o*
   text	   data	    bss	    dec	    hex	filename
  14615	    519	     16	  15150	   3b2e	drivers/nvdimm/namespace_devs.o.new
  14439	    695	     16	  15150	   3b2e	drivers/nvdimm/namespace_devs.o.old

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

* Re: [PATCH] nvdimm: constify device_type structures
  2017-01-25  2:49     ` Joe Perches
@ 2017-01-25  6:49       ` Julia Lawall
  2017-01-25 16:01         ` Joe Perches
  0 siblings, 1 reply; 9+ messages in thread
From: Julia Lawall @ 2017-01-25  6:49 UTC (permalink / raw)
  To: Joe Perches
  Cc: Dan Williams, Bhumika Goyal, linux-nvdimm@lists.01.org, linux-kernel

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



On Tue, 24 Jan 2017, Joe Perches wrote:

> On Tue, 2017-01-24 at 18:40 -0800, Dan Williams wrote:
> > On Tue, Jan 24, 2017 at 6:37 PM, Joe Perches <joe@perches.com> wrote:
> > > On Wed, 2017-01-25 at 00:54 +0530, Bhumika Goyal wrote:
> > > > Declare device_type structure as const as it is only stored in the
> > > > type field of a device structure. This field is of type const, so add
> > > > const to declaration of device_type structure.
> > > >
> > > > File size before:
> > > >   text           data     bss     dec     hex filename
> > > >   19278          3199      16   22493    57dd nvdimm/namespace_devs.o
> > > >
> > > > File size after:
> > > >   text           data     bss     dec     hex filename
> > > >   19929          3160      16   23105    5a41 nvdimm/namespace_devs.o
> > >
> > > Fine, but are you sure about the sizes?
> > >
> > > It seems odd the text went up 651 bytes
> > > while the data went down just 39 bytes.
> > >
> >
> > Right, the size data wasn't why I applied it. It was the general rule
> > of "make function pointer data read-only whenever possible to
> > eliminate a kernel attack vector".
>
> Exactly the correct reason it's a fine patch and one
> that should be applied.
>
> > Bhumika, you might want to mention
> > this as the motivating reason to apply the patch if you do more of
> > these changes.
>
> Regardless, the object sizes are still odd.
>
> The config should be mentioned because actually,
> the commonly compiles sizes reported are not correct.
>
> with an x86-64 defconfig I get:
>
> $ size drivers/nvdimm/namespace_devs.o*
>    text	   data	    bss	    dec	    hex	filename
>   14615	    519	     16	  15150	   3b2e	drivers/nvdimm/namespace_devs.o.new
>   14439	    695	     16	  15150	   3b2e	drivers/nvdimm/namespace_devs.o.old

What does the data column actually represent?  I tried size on the .o file
generated from:

commit a65f0161f4d69d6738d4821e649448312cd818e2
Author: Stephen Rothwell <sfr@canb.auug.org.au>
Date:   Tue Jan 17 15:22:28 2017 +1100

with CONFIG_X86_64=y and I get:

   text	   data	    bss	    dec	    hex	filename
  19726	   3480	     16	  23222	   5ab6	drivers/nvdimm/namespace_devs.o

but when I run objdump -sh drivers/nvdimm/namespace_devs.o, I find a .data
segment of size 1008 and a .data.unlikely segment of size 8, which don't
match up with the results of size.

julia

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

* Re: [PATCH] nvdimm: constify device_type structures
  2017-01-25  6:49       ` Julia Lawall
@ 2017-01-25 16:01         ` Joe Perches
  2017-01-25 16:04           ` Julia Lawall
  2017-01-25 16:16           ` Bhumika Goyal
  0 siblings, 2 replies; 9+ messages in thread
From: Joe Perches @ 2017-01-25 16:01 UTC (permalink / raw)
  To: Julia Lawall
  Cc: Dan Williams, Bhumika Goyal, linux-nvdimm@lists.01.org, linux-kernel

On Wed, 2017-01-25 at 07:49 +0100, Julia Lawall wrote:
> What does the data column actually represent?  I tried size on the .o file
> generated from:
> 
> commit a65f0161f4d69d6738d4821e649448312cd818e2
> Author: Stephen Rothwell <sfr@canb.auug.org.au>
> Date:   Tue Jan 17 15:22:28 2017 +1100
> 
> with CONFIG_X86_64=y and I get:
> 
>    text	   data	    bss	    dec	    hex	filename
>   19726	   3480	     16	  23222	   5ab6	drivers/nvdimm/namespace_devs.o
> 
> but when I run objdump -sh drivers/nvdimm/namespace_devs.o, I find a .data
> segment of size 1008 and a .data.unlikely segment of size 8, which don't
> match up with the results of size.

Likely you have dynamic_debug enabled and you
need to include these additional sections:

	__jump_table
	__verbose

If user_mode_linux is enabled, add sections:

	.fini_array
	.init_array

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

* Re: [PATCH] nvdimm: constify device_type structures
  2017-01-25 16:01         ` Joe Perches
@ 2017-01-25 16:04           ` Julia Lawall
  2017-01-25 16:16           ` Bhumika Goyal
  1 sibling, 0 replies; 9+ messages in thread
From: Julia Lawall @ 2017-01-25 16:04 UTC (permalink / raw)
  To: Joe Perches
  Cc: Dan Williams, Bhumika Goyal, linux-nvdimm@lists.01.org, linux-kernel



On Wed, 25 Jan 2017, Joe Perches wrote:

> On Wed, 2017-01-25 at 07:49 +0100, Julia Lawall wrote:
> > What does the data column actually represent?  I tried size on the .o file
> > generated from:
> >
> > commit a65f0161f4d69d6738d4821e649448312cd818e2
> > Author: Stephen Rothwell <sfr@canb.auug.org.au>
> > Date:   Tue Jan 17 15:22:28 2017 +1100
> >
> > with CONFIG_X86_64=y and I get:
> >
> >    text	   data	    bss	    dec	    hex	filename
> >   19726	   3480	     16	  23222	   5ab6	drivers/nvdimm/namespace_devs.o
> >
> > but when I run objdump -sh drivers/nvdimm/namespace_devs.o, I find a .data
> > segment of size 1008 and a .data.unlikely segment of size 8, which don't
> > match up with the results of size.
>
> Likely you have dynamic_debug enabled and you
> need to include these additional sections:
>
> 	__jump_table
> 	__verbose
>
> If user_mode_linux is enabled, add sections:
>
> 	.fini_array
> 	.init_array

Ah, thanks for the explanations.

julia

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

* Re: [PATCH] nvdimm: constify device_type structures
  2017-01-25 16:01         ` Joe Perches
  2017-01-25 16:04           ` Julia Lawall
@ 2017-01-25 16:16           ` Bhumika Goyal
  1 sibling, 0 replies; 9+ messages in thread
From: Bhumika Goyal @ 2017-01-25 16:16 UTC (permalink / raw)
  To: Joe Perches
  Cc: Julia Lawall, Dan Williams, linux-nvdimm@lists.01.org, linux-kernel

On Wed, Jan 25, 2017 at 9:31 PM, Joe Perches <joe@perches.com> wrote:
> On Wed, 2017-01-25 at 07:49 +0100, Julia Lawall wrote:
>> What does the data column actually represent?  I tried size on the .o file
>> generated from:
>>
>> commit a65f0161f4d69d6738d4821e649448312cd818e2
>> Author: Stephen Rothwell <sfr@canb.auug.org.au>
>> Date:   Tue Jan 17 15:22:28 2017 +1100
>>
>> with CONFIG_X86_64=y and I get:
>>
>>    text          data     bss     dec     hex filename
>>   19726          3480      16   23222    5ab6 drivers/nvdimm/namespace_devs.o
>>
>> but when I run objdump -sh drivers/nvdimm/namespace_devs.o, I find a .data
>> segment of size 1008 and a .data.unlikely segment of size 8, which don't
>> match up with the results of size.
>
> Likely you have dynamic_debug enabled and you
> need to include these additional sections:
>
>         __jump_table
>         __verbose
>
> If user_mode_linux is enabled, add sections:
>
>         .fini_array
>         .init_array
>

Thanks for the explanation. I also compiled the patch for x86-64 but
couldn't find what went wrong but this solved the problem.

Thanks,
Bhumika

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

end of thread, other threads:[~2017-01-25 16:16 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-24 19:24 [PATCH] nvdimm: constify device_type structures Bhumika Goyal
2017-01-24 19:58 ` Dan Williams
2017-01-25  2:37 ` Joe Perches
2017-01-25  2:40   ` Dan Williams
2017-01-25  2:49     ` Joe Perches
2017-01-25  6:49       ` Julia Lawall
2017-01-25 16:01         ` Joe Perches
2017-01-25 16:04           ` Julia Lawall
2017-01-25 16:16           ` Bhumika Goyal

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