Re: [PATCH] staging: axis-fifo: initialize timeouts in probe only

From: Khadija Kamran
Date: Thu Mar 16 2023 - 07:42:13 EST


On Wed, Mar 15, 2023 at 08:06:56AM -0700, Nathan Chancellor wrote:
> Hi Khadija,
>
> On Wed, Mar 15, 2023 at 07:22:39PM +0500, Khadija Kamran wrote:
> > On Wed, Mar 15, 2023 at 02:34:31PM +0100, Fabio M. De Francesco wrote:
> > > Aside from what I said and asked for with the other message of this same
> > > thread, please take note that you can build a specific module if you prefer
> > > not to re-build the whole kernel and other modules at the same time.
> > >
> > > I'm pretty sure that the instructions to do so are in the OutreachyFirstPatch
> > > tutorial.
> > >
> > > If they are not there, please let us know.
> > >
> > > Fabio
> >
> > Hey Fabio!
> >
> > In the Outreachy FirstPatchTutorial under the 'Compiling only part of
> > the kernel' section there are ways to compile only some part of the
> > kernel.
> >
> > I have tried using "make W=1 drivers/staging/axis-fifo/" and it says
> > 'nothing to be done for'.
>
> Is CONFIG_XIL_AXIS_FIFO enabled in your configuration?
>
> > Should I start with the steps to reproduce? :'(
>
> I did see a report of this same warning occurring with GCC but the
> report I commented on cane from clang/LLVM; using that toolchain may
> make it easier for you to reproduce this issue. The robot's reproduction
> instructions are fine but I think doing it manually is actually simpler.
>
> Ubuntu 22.04 should have a pretty modern version of clang/LLVM, which
> you can install via 'sudo apt install clang lld llvm'.
> https://apt.llvm.org is another resource.
>
> First, we will grab the configuration that was provided in the report:
>
> $ wget -O .config https://download.01.org/0day-ci/archive/20230314/202303141159.6wN9HNP9-lkp@xxxxxxxxx/config
>
> Next, we want to make sure the configuration is synced, since we are
> technically changing compilers:
>
> $ make -j"$(nproc)" ARCH=arm64 LLVM=1 olddefconfig
>
> Finally, you should be able to build that object file and see the
> warning:
>
> $ make -j"$(nproc)" ARCH=arm64 LLVM=1 drivers/staging/axis-fifo/
> ...
> drivers/staging/axis-fifo/axis-fifo.c:817:18: warning: implicit conversion from 'long' to 'int' changes value from 9223372036854775807 to -1 [-Wconstant-conversion]
> read_timeout = MAX_SCHEDULE_TIMEOUT;
> ~ ^~~~~~~~~~~~~~~~~~~~
> ./include/linux/sched.h:296:31: note: expanded from macro 'MAX_SCHEDULE_TIMEOUT'
> #define MAX_SCHEDULE_TIMEOUT LONG_MAX
> ^~~~~~~~
> ./include/vdso/limits.h:11:19: note: expanded from macro 'LONG_MAX'
> #define LONG_MAX ((long)(~0UL >> 1))
> ^~~~~~~~~~~~~~~~~
> drivers/staging/axis-fifo/axis-fifo.c:822:19: warning: implicit conversion from 'long' to 'int' changes value from 9223372036854775807 to -1 [-Wconstant-conversion]
> write_timeout = MAX_SCHEDULE_TIMEOUT;
> ~ ^~~~~~~~~~~~~~~~~~~~
> ./include/linux/sched.h:296:31: note: expanded from macro 'MAX_SCHEDULE_TIMEOUT'
> #define MAX_SCHEDULE_TIMEOUT LONG_MAX
> ^~~~~~~~
> ./include/vdso/limits.h:11:19: note: expanded from macro 'LONG_MAX'
> #define LONG_MAX ((long)(~0UL >> 1))
> ^~~~~~~~~~~~~~~~~
> 2 warnings generated.
>
> Just repeat the last step as you investigate. If you have any further
> issues or questions, please let me know. For the record, I am not
> associated with Outreachy (I am one of the maintainers of clang/LLVM
> support in the kernel), so if I have messed something up or overstepped
> some boundary, I do apologize.
>
> Cheers,
> Nathan

Hi Nathan!

Sorry about the last email where I said that this is not working. I was
working in the wrong branch, my bad.

This works! And it has helped me remove the warnings too. I have
replaced int datatype with long and the two warnings that were showing
are no longer there.

I am working on [PATCH v5] and I will submit it in no time.

This was great help. :)

Thank you!
Regards,
Khadija