lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 22 Nov 2021 18:09:15 -0800
From:   Guenter Roeck <linux@...ck-us.net>
To:     Joel Stanley <joel@....id.au>
Cc:     Anton Altaparmakov <anton@...era.com>,
        linux-ntfs-dev@...ts.sourceforge.net,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Michael Ellerman <mpe@...erman.id.au>,
        Stephen Rothwell <sfr@...b.auug.org.au>,
        Linus Torvalds <torvalds@...ux-foundation.org>
Subject: Re: [PATCH v2] fs: ntfs: Disable NTFS_RW for PPC

On 11/22/21 5:15 PM, Joel Stanley wrote:
> On Mon, 22 Nov 2021 at 23:58, Guenter Roeck <linux@...ck-us.net> wrote:
>>
>> NTFS_RW code allocates page size dependent arrays on the stack. This
>> results in build failures if the page size is 64k, which is now the
>> default for PPC.
> 
> It became the default for PPC_BOOK3S_64, which doesn't include all of
> PPC, in f22969a66041 ("powerpc/64s: Default to 64K pages for 64 bit
> book3s").
> 
> You might want to add a mention of this commit in your commit message.
> 
>>
>> fs/ntfs/aops.c: In function 'ntfs_write_mst_block':
>> fs/ntfs/aops.c:1311:1: error:
>>          the frame size of 2240 bytes is larger than 2048 bytes
>>
>> Increasing the maximum frame size for PPC just to silence this error does
>> not really help. It would have to be set to a really large value for 256k
>> pages. Such a large frame size could potentially result in stack overruns
>> in this code and elsewhere and is therefore not desirable. Disable NTFS_RW
>> for PPC instead.
>>
>> Cc: Michael Ellerman <mpe@...erman.id.au>
>> Cc: Stephen Rothwell <sfr@...b.auug.org.au>
>> Cc: Linus Torvalds <torvalds@...ux-foundation.org>
>> Signed-off-by: Guenter Roeck <linux@...ck-us.net>
>> ---
>> v2: Introduce new configuration flag DISABLE_NTFS_RW and use it to disable NTFS_RW
>>      for PPC
>>
>>   fs/ntfs/Kconfig | 5 +++++
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/fs/ntfs/Kconfig b/fs/ntfs/Kconfig
>> index 1667a7e590d8..324224febb6a 100644
>> --- a/fs/ntfs/Kconfig
>> +++ b/fs/ntfs/Kconfig
>> @@ -49,8 +49,13 @@ config NTFS_DEBUG
>>            When reporting bugs, please try to have available a full dump of
>>            debugging messages while the misbehaviour was occurring.
>>
>> +config DISABLE_NTFS_RW
>> +       bool
>> +       default y if PPC
> 
> PPC_64K_PAGES would be more accurate.
> 
> I think arm64 was seeing a similar build error, so you could include
> ARM64_64K_PAGES as well?
> 
Yes, you are correct.

fs/ntfs/aops.c: In function 'ntfs_write_mst_block':
fs/ntfs/aops.c:1311:1: error: the frame size of 2608 bytes is larger than 2048 bytes

Ok, I'll do that. And, digging for it, I see

config VMXNET3
         tristate "VMware VMXNET3 ethernet driver"
         depends on PCI && INET
         depends on !(PAGE_SIZE_64KB || ARM64_64K_PAGES || \
                      IA64_PAGE_SIZE_64KB || PARISC_PAGE_SIZE_64KB || \
                      PPC_64K_PAGES)

That adds hexagon, ia64, mips, parisc, and sh to the list of affected architectures.
Plus, of course, there is PAGE_SIZE_256KB and PPC_256K_PAGES.

So we are looking for something like

config DISABLE_NTFS_RW
	bool
	default y if PAGE_SIZE_256KB || PPC_256K_PAGES || \
		PAGE_SIZE_64KB || ARM64_64K_PAGES || IA64_PAGE_SIZE_64KB || \
		PARISC_PAGE_SIZE_64KB || PPC_64K_PAGES

Anything else ?

Guenter


>> +
>>   config NTFS_RW
>>          bool "NTFS write support"
>> +       depends on !DISABLE_NTFS_RW
>>          depends on NTFS_FS
>>          help
>>            This enables the partial, but safe, write support in the NTFS driver.
>> --
>> 2.33.0
>>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ