On 11/22/21 5:15 PM, Joel Stanley wrote:
> On Mon, 22 Nov 2021 at 23:58, Guenter Roeck <li...@ro...> 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 <mp...@el...>
>> Cc: Stephen Rothwell <sf...@ca...>
>> Cc: Linus Torvalds <tor...@li...>
>> Signed-off-by: Guenter Roeck <li...@ro...>
>> ---
>> 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
>>
|