[Linux-kernel-mentees] [PATCH v2 2/3] lspci: Remove unnecessary !verbose check in show_range()

Bjorn Helgaas bjorn.helgaas at gmail.com
Thu May 16 12:58:37 UTC 2019


On Sat, May 11, 2019 at 6:05 PM Kelsey Skunberg
<skunberg.kelsey at gmail.com> wrote:
>
> Remove 'if (!verbose)' code in show_range() due to not being called.
> show_range() will only be called when verbose is true. Additional call
> to check for verbosity within show_range() is dead code.
>
> !verbose was used so nothing would print if the range behind a bridge
> had a base > limit and verbose == false. Since show_range() will not be
> called when verbose == false, not printing bridge information is
> still accomplished.
>
> Signed-off-by: Kelsey Skunberg <skunberg.kelsey at gmail.com>
> ---
>  lspci.c | 12 +++---------
>  1 file changed, 3 insertions(+), 9 deletions(-)
>
> diff --git a/lspci.c b/lspci.c
> index 937c6e4..419f386 100644
> --- a/lspci.c
> +++ b/lspci.c
> @@ -376,17 +376,11 @@ show_size(u64 x)
>  static void
>  show_range(char *prefix, u64 base, u64 limit, int is_64bit)
>  {
> -  if (base > limit)
> +  if (base > limit || verbose < 3)
>      {
> -      if (!verbose)
> -       return;
> -      else if (verbose < 3)
> -       {
> -         printf("%s: None\n", prefix);
> -         return;
> -       }

I don't think this works quite right.  The resulting code is:

  if (base > limit || verbose < 3) {
    printf("%s: None\n", prefix);
    return;
  }

but that means we print "None" when the window is *enabled* (base <=
limit) and verbose < 3.  We should print the window in that case.

> +      printf("%s: None\n", prefix);
> +      return;
>      }
> -
>    printf("%s: ", prefix);
>    if (is_64bit)
>      printf("%016" PCI_U64_FMT_X "-%016" PCI_U64_FMT_X, base, limit);
> --
> 2.20.1
>


More information about the Linux-kernel-mentees mailing list