Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp760214pxf; Thu, 25 Mar 2021 13:27:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxRnareqLtKLQvdRpjqoUbqm4SLF158MQct9NEqIhqzHH7FvgBaNXZEh2UDFZtk0FC4vlH/ X-Received: by 2002:a17:907:7785:: with SMTP id ky5mr11205757ejc.133.1616704041667; Thu, 25 Mar 2021 13:27:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616704041; cv=none; d=google.com; s=arc-20160816; b=frEQpEeTSQbhw8UGW9O5Q82w7viNmQ2draeK5ltAWyhvt7QEzRGJ2IOkFbC00TbsSP E71lEs54/YMLWa2Eo1XnARda4dJg5tajvxlF4Idf5ezVT2Da0L9wZ/p5kkzgw6CVpew+ t3sKP1cAbMJcQoFaKc5kCDpuEgx2mkN/n8ii5mZTl7dRnEOJ0zYP3Zqci6fxr9ZPLWrr dWOO+HJVgnWkU7+H07Qci6SctaPeY30ILnNuEyM6943Xsck3Bvr3KNt/N5wZlZi096JP drMagkseOmhkwkigt16xKhD2T95UVKYFpXHX1nQWWWrywMi1S6kZDbjb7WNPFmaMg55V rgMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-language:content-transfer-encoding :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=LppD/SjMkqjDj0YcUWQH207k5VvHrfBLDIWrq4mkh6g=; b=BB2vVAXh7wkZXh7ICuCp1XQ6w5VKLB3au60ocQYnxUTDjZHl2qAW+74Xjmy7ARf138 Hmk161C/IKeJuzXyAouSBv+uGGFcu7pOsvcPjvYAhXqmW5ViCGFf9AH9zaGhRndCQ2bw ksCJx0ezwtCTW9MOkSpMXIageA5gx/MI81craf+DIYeG1NxlHymRpygz0+FxECPWzVwp tcsn1CD2m9S60yn1EerG7AQmNHQzjnaUssEUKPAS7C0NlPYnQ+4j9beWVVmK1En6qQFG alwwC58ZZXu+uswv2OckHOhfERI/24/zlHEFwhW3hlsC+LPGsv7KHzI2vYHv7amFy8OJ O36Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id du4si4980329ejc.94.2021.03.25.13.26.53; Thu, 25 Mar 2021 13:27:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229977AbhCYU0T (ORCPT + 99 others); Thu, 25 Mar 2021 16:26:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44130 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229930AbhCYU0N (ORCPT ); Thu, 25 Mar 2021 16:26:13 -0400 Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AF0B5C06174A; Thu, 25 Mar 2021 13:26:12 -0700 (PDT) Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: shreeya) with ESMTPSA id 407901F4684B Subject: Re: [PATCH v4 5/5] fs: unicode: Add utf8 module and a unicode layer To: Eric Biggers Cc: tytso@mit.edu, adilger.kernel@dilger.ca, jaegeuk@kernel.org, chao@kernel.org, krisman@collabora.com, drosen@google.com, yuchao0@huawei.com, linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-fsdevel@vger.kernel.org, kernel@collabora.com, andre.almeida@collabora.com References: <20210325000811.1379641-1-shreeya.patel@collabora.com> <20210325000811.1379641-6-shreeya.patel@collabora.com> From: Shreeya Patel Message-ID: <2db48ab8-1297-e044-dcec-6c8b8875fdb0@collabora.com> Date: Fri, 26 Mar 2021 01:56:00 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org On 26/03/21 1:10 am, Eric Biggers wrote: > On Thu, Mar 25, 2021 at 05:38:11AM +0530, Shreeya Patel wrote: >> Also, indirect calls using function pointers are easily exploitable by >> speculative execution attacks, hence use static_call() in unicode.h and >> unicode-core.c files inorder to prevent these attacks by making direct >> calls and also to improve the performance of function pointers. > I don't think you need to worry about avoiding indirect calls to prevent > speculative execution attacks. That's what the mitigations like Retpoline are > for. Instead my concern was just that indirect calls are *slow*, especially > when those mitigations are enabled. Some of the casefolding operations are > called a lot (e.g., repeatedly during path resolution), and it would be > desirable to avoid adding more overhead there. > >> diff --git a/fs/unicode/Kconfig b/fs/unicode/Kconfig >> index 2c27b9a5cd6c..2961b0206b4d 100644 >> --- a/fs/unicode/Kconfig >> +++ b/fs/unicode/Kconfig >> @@ -8,7 +8,16 @@ config UNICODE >> Say Y here to enable UTF-8 NFD normalization and NFD+CF casefolding >> support. >> >> +# UTF-8 encoding can be compiled as a module using UNICODE_UTF8 option. >> +# Having UTF-8 encoding as a module will avoid carrying large >> +# database table present in utf8data.h_shipped into the kernel >> +# by being able to load it only when it is required by the filesystem. >> +config UNICODE_UTF8 >> + tristate "UTF-8 module" >> + depends on UNICODE >> + default m >> + > The help for UNICODE still says that it enables UTF-8 support. But now there is > a separate option that people will need to remember to enable. > > Please document each of these options properly. > > Perhaps EXT4_FS and F2FS_FS just should select UNICODE_UTF8 if UNICODE, so that > UNICODE_UTF8 doesn't have to be a user-selectable symbol? It is not a user-selectable symbol. It depends on UNICODE and if someone enables it, by default UNICODE_UTF8 will be enabled as a module. >> +DEFINE_STATIC_CALL(validate, unicode_validate_static_call); >> +EXPORT_STATIC_CALL(validate); > Global symbols can't have generic names like "validate". Please add an > appropriate prefix like "unicode_". > > Also, the thing called "unicode_validate_static_call" isn't actually a static > call as the name suggests, but rather the default function used by the static > call. It should be called something like unicode_validate_default. > > Likewise for all the others. Thanks for your reviews, I'll make the change suggested by you in v5. > > - Eric >