e10g.r.e10g_unall is only 1 bit so "if (e10g.r.e10g_unall & 0x80)" is always false. e10g is a union between an unsigned char and named bitfields. The intent here was to test the named bitfield by itself. We can change the previous tests as well. That improves the readability and it looks like it fixes a endian bug as well. Signed-off-by: Dan Carpenter <error27@xxxxxxxxx> --- I don't understand where __BIGENDIAN is defined. Only this driver references it. How does that work? diff --git a/drivers/scsi/bfa/bfa_ioc.c b/drivers/scsi/bfa/bfa_ioc.c index 052373b..090a19d 100644 --- a/drivers/scsi/bfa/bfa_ioc.c +++ b/drivers/scsi/bfa/bfa_ioc.c @@ -3589,11 +3589,11 @@ bfa_sfp_media_get(struct bfa_sfp_s *sfp) (xmtr_tech & SFP_XMTR_TECH_SA)) *media = BFA_SFP_MEDIA_SW; /* Check 10G Ethernet Compilance code */ - else if (e10g.b & 0x10) + else if (e10g.r.e10g_sr) *media = BFA_SFP_MEDIA_SW; - else if (e10g.b & 0x60) + else if (e10g.r.e10g_lr && e10g.r.e10g_lrm) *media = BFA_SFP_MEDIA_LW; - else if (e10g.r.e10g_unall & 0x80) + else if (e10g.r.e10g_unall) *media = BFA_SFP_MEDIA_UNKNOWN; else bfa_trc(sfp, 0); -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html