Re: Build regressions/improvements in v6.4-rc1

Raghavendra, Vignesh
2023-05-08T15:47:57Z

On 5/8/2023 8:49 PM, Pratyush Yadav wrote:
> On Mon, May 08 2023, Geert Uytterhoeven wrote:
>
>> On Mon, 8 May 2023, Geert Uytterhoeven wrote:
>>> Below is the list of build error/warning regressions/improvements in
>>> v6.4-rc1[1] compared to v6.3[2].
>>>
>>> Summarized:
>>> - build errors: +9/-16
>>> - build warnings: +1/-1439
>>>
>>> Happy fixing! ;-)
>>>
>>> Thanks to the linux-next team for providing the build service.
>>>
>>> [1] http://kisskb.ellerman.id.au/kisskb/branch/linus/head/ac9a78681b921877518763ba0e89202254349d1b/ (all 152 configs)
>>> [2] http://kisskb.ellerman.id.au/kisskb/branch/linus/head/457391b0380335d5e9a5babdec90ac53928b23b4/ (all 152 configs)
>>>
>>>
> [...]
>>
>>> + /kisskb/src/drivers/mtd/spi-nor/spansion.c: error: 'op' is used uninitialized [-Werror=uninitialized]: => 495:27, 364:27
>
> Hmm, I don't get why we get this warning. Line 495 is in
> s25fs256t_post_bfpt_fixup(). It declares 'op' and then it does
>
> op = (struct spi_mem_op)
> CYPRESS_NOR_RD_ANY_REG_OP(nor->params->addr_mode_nbytes,
> SPINOR_REG_CYPRESS_ARCFN, 1,
> nor->bouncebuf);
> ret = spi_nor_read_any_reg(nor, &op, nor->reg_proto);
>

Not all the fields of struct get initialized if you assign later on in
the function vs at the time of declaration... For example cmd.dtr isn't
explicitly set to any value here and may have garbage?
>
> which initializes 'op' before using it. Same with line 364 which is in
> the function cypress_nor_set_addr_mode_nbytes().
>
> Even the compiler warnings [0] don't seem to make much sense to me:
>
> /kisskb/src/drivers/mtd/spi-nor/spansion.c: In function 's25fs256t_post_bfpt_fixup':
> /kisskb/src/drivers/mtd/spi-nor/spansion.c:495:27: error: 'op' is used uninitialized [-Werror=uninitialized]
> 495 | struct spi_mem_op op;
> | ^~
> /kisskb/src/drivers/mtd/spi-nor/spansion.c:495:27: note: 'op' declared here
> 495 | struct spi_mem_op op;
> | ^~
>
> [0] http://kisskb.ellerman.id.au/kisskb/buildresult/14922057/
>
>>
>> um-x86_64-gcc12/um-allyesconfig
>>
> [...]
>