Skip to contentSkip to conversation

New: Misleading indentation in drivers/scsi/bfa/bfa_ioc.c: bfa_cb_sfp_state_query

Bug 98261 [email protected] 1 participant 1 message May 13, 2015 SCSI

lore
Share & tools
lore
#0 lore raw

https://bugzilla.kernel.org/show_bug.cgi?id=98261

            Bug ID: 98261
           Summary: Misleading indentation in drivers/scsi/bfa/bfa_ioc.c:
                    bfa_cb_sfp_state_query
           Product: SCSI Drivers
           Version: 2.5
    Kernel Version: 4.0.3
          Hardware: All
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Other
          Assignee: [email protected]
          Reporter: [email protected]
        Regression: No

In linux-4.0.3/drivers/scsi/bfa/bfa_ioc.c: bfa_cb_sfp_state_query, the indentation doesn't reflect the actual block structure:

  3659  static void
  3660  bfa_cb_sfp_state_query(struct bfa_sfp_s *sfp)
  3661  {

3662 bfa_trc(sfp, sfp->portspeed);
3663 if (sfp->media) {
3664 bfa_sfp_media_get(sfp);
3665 if (sfp->state_query_cbfn)
3666 sfp->state_query_cbfn(sfp->state_query_cbarg,
3667 sfp->status);
3668 sfp->media = NULL;
3669 }
3670
3671 if (sfp->portspeed) {
3672 sfp->status = bfa_sfp_speed_valid(sfp,
sfp->portspeed);
3673 if (sfp->state_query_cbfn)
3674
sfp->state_query_cbfn(sfp->state_query_cbarg,
3675 sfp->status);
3676 sfp->portspeed =
BFA_PORT_SPEED_UNKNOWN;
3677 }
3678
3679 sfp->state_query_lock = 0;
3680 sfp->state_query_cbfn = NULL;
3681 }

Note how the "if" at line 3665 does not have an opening brace. Lines 3666-3668 are indented as if guarded by it, but only lines 3666-3667 are. The closing brace at line 3669 looks from the indentation as if it relates to line 3665, but it actually relates to line 3663.

Hence although lines 3671 onwards are indented as if guarded by the "if" at line 3663, they are not.

There's also an issue at line 3676, which is indented as if guarded by the "if" at line 3673, but isn't.

Seen via an experimental new gcc warning I'm working on for gcc 6, -Wmisleading-indentation, using gcc r223098 adding -Werror=misleading-indentation" to KBUILD_CFLAGS in Makefile, where the experimental gcc emits these errors:

drivers/scsi/bfa/bfa_ioc.c: In function ‘bfa_cb_sfp_state_query’:
drivers/scsi/bfa/bfa_ioc.c:3668:4: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]

    sfp->media = NULL;
    ^

drivers/scsi/bfa/bfa_ioc.c:3665:3: note: ...this ‘if’ clause, but it is not
if (sfp->state_query_cbfn)
^
drivers/scsi/bfa/bfa_ioc.c:3676:5: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]

     sfp->portspeed = BFA_PORT_SPEED_UNKNOWN;
     ^
drivers/scsi/bfa/bfa_ioc.c:3673:4: note: ...this ‘if’ clause, but it is not
    if (sfp->state_query_cbfn)
    ^
Signature · 5 lines
You are receiving this mail because:
You are watching the assignee of the bug.--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html