[U-Boot] [PATCH 052/080] cfi_flash: Reduce the scope of some variables

Mario Six mario.six at gdsys.cc
Wed Oct 4 06:23:01 UTC 2017


Hi Masahiro,

On Fri, Sep 29, 2017 at 7:10 PM, Masahiro Yamada
<yamada.masahiro at socionext.com> wrote:
> 2017-09-29 21:52 GMT+09:00 Mario Six <mario.six at gdsys.cc>:
>> Signed-off-by: Mario Six <mario.six at gdsys.cc>
>> ---
>>  drivers/mtd/cfi_flash.c | 26 ++++++++++++++------------
>>  1 file changed, 14 insertions(+), 12 deletions(-)
>>
>> diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
>> index c47ba416b9..c597c621ca 100644
>> --- a/drivers/mtd/cfi_flash.c
>> +++ b/drivers/mtd/cfi_flash.c
>> @@ -179,10 +179,10 @@ __maybe_weak u64 flash_read64(void *addr)
>>  static flash_info_t *flash_get_info(ulong base)
>>  {
>>         int i;
>> -       flash_info_t *info;
>>
>>         for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; i++) {
>> -               info = &flash_info[i];
>> +               flash_info_t *info = &flash_info[i];
>> +
>>                 if (info->size && info->start[0] <= base &&
>>                     base <= info->start[0] + info->size - 1)
>>                         return info;
>> @@ -222,8 +222,6 @@ static inline void flash_unmap(flash_info_t *info, flash_sect_t sect,
>>  static void flash_make_cmd(flash_info_t *info, u32 cmd, void *cmdbuf)
>>  {
>>         int i;
>> -       int cword_offset;
>> -       int cp_offset;
>>  #if defined(__LITTLE_ENDIAN) || defined(CONFIG_SYS_WRITE_SWAPPED_DATA)
>>         u32 cmd_le = cpu_to_le32(cmd);
>>  #endif
>> @@ -231,9 +229,10 @@ static void flash_make_cmd(flash_info_t *info, u32 cmd, void *cmdbuf)
>>         uchar *cp = (uchar *) cmdbuf;
>>
>>         for (i = info->portwidth; i > 0; i--) {
>> -               cword_offset = (info->portwidth - i) % info->chipwidth;
>> +               int cword_offset = (info->portwidth - i) % info->chipwidth;
>> +               int cp_offset = info->portwidth - i;
>>  #if defined(__LITTLE_ENDIAN) || defined(CONFIG_SYS_WRITE_SWAPPED_DATA)
>> -               cp_offset = info->portwidth - i;
>> +
>>                 val = *((uchar *)&cmd_le + cword_offset);
>>  #else
>>                 cp_offset = i - 1;
>> @@ -2053,16 +2052,10 @@ static void flash_fixup_num(flash_info_t *info, struct cfi_qry *qry)
>>  ulong flash_get_size(phys_addr_t base, int banknum)
>>  {
>>         flash_info_t *info = &flash_info[banknum];
>> -       int i, j;
>>         flash_sect_t sect_cnt;
>>         phys_addr_t sector;
>> -       unsigned long tmp;
>> -       int size_ratio;
>>         uchar num_erase_regions;
>> -       int erase_region_size;
>> -       int erase_region_count;
>>         struct cfi_qry qry;
>> -       unsigned long max_size;
>>
>>         memset(&qry, 0, sizeof(qry));
>>
>> @@ -2075,6 +2068,11 @@ ulong flash_get_size(phys_addr_t base, int banknum)
>>         info->start[0] = (ulong)map_physmem(base, info->portwidth, MAP_NOCACHE);
>>
>>         if (flash_detect_cfi(info, &qry)) {
>> +               int i;
>> +               int size_ratio;
>> +               unsigned long max_size;
>> +               unsigned long tmp;
>> +
>>                 info->vendor = le16_to_cpu(get_unaligned(&qry.p_id));
>>                 info->ext_addr = le16_to_cpu(get_unaligned(&qry.p_adr));
>>                 num_erase_regions = qry.num_erase_regions;
>> @@ -2159,6 +2157,10 @@ ulong flash_get_size(phys_addr_t base, int banknum)
>>                 sect_cnt = 0;
>>                 sector = base;
>>                 for (i = 0; i < num_erase_regions; i++) {
>> +                       int j;
>> +                       int erase_region_size;
>> +                       int erase_region_count;
>> +
>>                         if (i > NUM_ERASE_REGIONS) {
>>                                 printf("%d erase regions found, only %d used\n",
>>                                         num_erase_regions, NUM_ERASE_REGIONS);
>> --
>
>
>
> Are these changes necessary?
>
> Looks like your personal preference to me.
>

Well, scope reduction of variables is a relatively common refactoring method
(see, for example, chapter 10.4 of Code Complete, Second Edition). Also, the
relatively commonly used CppCheck linter automatically finds these instances
very often, which is how I found them.

But no, it is not strictly necessary; I can drop these patches for v2.

Best regards,

Mario


More information about the U-Boot mailing list