Re: [PATCH][next] xfs: Replace one-element arrays with flexible-array members

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 2/3/23 11:53, Kees Cook wrote:
On Thu, Feb 02, 2023 at 07:24:50PM -0600, Gustavo A. R. Silva wrote:
One-element arrays are deprecated, and we are replacing them with flexible
array members instead. So, replace one-element arrays with flexible-array
members in structures xfs_attr_leaf_name_local and
xfs_attr_leaf_name_remote.

The only binary differences reported after the changes are all like
these:

fs/xfs/libxfs/xfs_attr_leaf.o
_@@ -435,7 +435,7 @@
       3b8:      movzbl 0x2(%rbx),%eax
       3bc:      rol    $0x8,%bp
       3c0:      movzwl %bp,%ebp
-     3c3:      lea    0x2(%rax,%rbp,1),%ebx
+     3c3:      lea    0x3(%rax,%rbp,1),%ebx
       3c7:      call   3cc <xfs_attr_leaf_entsize+0x8c>
                         3c8: R_X86_64_PLT32     __tsan_func_exit-0x4
       3cc:      or     $0x3,%ebx
_@@ -454,7 +454,7 @@
       3ea:      movzbl 0x8(%rbx),%ebx
       3ee:      call   3f3 <xfs_attr_leaf_entsize+0xb3>
                         3ef: R_X86_64_PLT32     __tsan_func_exit-0x4
-     3f3:      add    $0xa,%ebx
+     3f3:      add    $0xb,%ebx
       3f6:      or     $0x3,%ebx
       3f9:      add    $0x1,%ebx
       3fc:      mov    %ebx,%eax

similar changes in fs/xfs/scrub/attr.o and fs/xfs/xfs.o object files.

I usually turn off the sanitizers for the A/B build comparisons to make

Oh yes! that's a good point. I'll see that they are turned off next time. :)

it easier to read the results. It looks like it _grew_ in size here,
though?

Yep; I'm sorry I got it wrong. :/ I had it right in the beginning, then after
reading the code once again just before sending out a version of this patch
with only the flex-array transformations, I noticed the entsize functions and
the "sizeof(struct-with-one-element-array) - 1" and I forgot about the padding,
removed the "- 1" and got a bit confused with my build-tests.

I'll send v2 with my original changes... the flex-array transformations, only.

--
Gustavo



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux