Re: linux-next: build failure after merge of the cifs tree

From: Steve French
Date: Wed Jul 19 2023 - 20:48:01 EST


Winston had an updated version of the patch - just replaced it with
his updated one which does a cast to (char *)

ses->local_nls = load_nls((char *)ctx->local_nls->charset);

But as he noted in an earlier email thread:
> Perhaps I should make a change to load_nls() to take a const char *
> instead of char *? If this make sense, I'll do it soon.

which is probably cleaner

On Wed, Jul 19, 2023 at 7:35 PM Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> Hi all,
>
> After merging the cifs tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
>
> fs/smb/client/connect.c: In function 'cifs_get_smb_ses':
> fs/smb/client/connect.c:2293:49: error: passing argument 1 of 'load_nls' discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
> 2293 | ses->local_nls = load_nls(ctx->local_nls->charset);
> | ~~~~~~~~~~~~~~^~~~~~~~~
> In file included from fs/smb/client/cifsproto.h:10,
> from fs/smb/client/connect.c:37:
> include/linux/nls.h:50:35: note: expected 'char *' but argument is of type 'const char *'
> 50 | extern struct nls_table *load_nls(char *);
> | ^~~~~~
>
> Caused by commit
>
> 46055407cd4a ("cifs: fix charset issue in reconnection")
>
> I have used the cifs tree from next-20230719 for today.
>
> It looks as though the parameter to load_nls could be made const safely
> as it is just passed to try_then_request_module() passes it to
> __request_module() which just passes it to vsnprintf() to construct the
> module name. There does not appear to be any maintainer for fs/nls ...
> --
> Cheers,
> Stephen Rothwell



--
Thanks,

Steve