Re: [bug report] drm/dp: annotate implicit fall throughs
On Fri, Aug 28, 2020 at 12:53:32PM +0300, Jani Nikula wrote: > On Tue, 25 Aug 2020, Dan Carpenter wrote: > > Hello Mathieu Malaterre, > > > > The patch e9c0c874711b: "drm/dp: annotate implicit fall throughs" > > from Jan 14, 2019, leads to the following static checker warning: > > > > drivers/gpu/drm/drm_dp_helper.c:495 drm_dp_downstream_max_bpc() > > warn: ignoring unreachable code. > > > > drivers/gpu/drm/drm_dp_helper.c > >467 int drm_dp_downstream_max_bpc(const u8 dpcd[DP_RECEIVER_CAP_SIZE], > >468const u8 port_cap[4]) > >469 { > >470 int type = port_cap[0] & DP_DS_PORT_TYPE_MASK; > >471 bool detailed_cap_info = dpcd[DP_DOWNSTREAMPORT_PRESENT] & > >472 DP_DETAILED_CAP_INFO_AVAILABLE; > >473 int bpc; > >474 > >475 if (!detailed_cap_info) > >476 return 0; > >477 > >478 switch (type) { > >479 case DP_DS_PORT_TYPE_VGA: > >480 case DP_DS_PORT_TYPE_DVI: > >481 case DP_DS_PORT_TYPE_HDMI: > >482 case DP_DS_PORT_TYPE_DP_DUALMODE: > >483 bpc = port_cap[2] & DP_DS_MAX_BPC_MASK; > > ^^ > > This is 0x3. > > > >484 > >485 switch (bpc) { > >486 case DP_DS_8BPC: > >487 return 8; > >488 case DP_DS_10BPC: > >489 return 10; > >490 case DP_DS_12BPC: > >491 return 12; > >492 case DP_DS_16BPC: > >493 return 16; > >494 } > >495 fallthrough; > > > > This fallthrough is impossible. Probably the way to work around the > > bogus warning is the change the fallthough to "return 0; /* impossible */" > > otherwise the fallthrough is sort of misleading... > > Won't that be unreachable as well? > > Maybe just add the default label to switch (bpc)? A default switch is going to be unreachable as well... But adding a return 0 is the older more traditional ways way of marking these so people and checkers are used to it. regards, dan carpenter ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [bug report] drm/dp: annotate implicit fall throughs
On Tue, 25 Aug 2020, Dan Carpenter wrote: > Hello Mathieu Malaterre, > > The patch e9c0c874711b: "drm/dp: annotate implicit fall throughs" > from Jan 14, 2019, leads to the following static checker warning: > > drivers/gpu/drm/drm_dp_helper.c:495 drm_dp_downstream_max_bpc() > warn: ignoring unreachable code. > > drivers/gpu/drm/drm_dp_helper.c >467 int drm_dp_downstream_max_bpc(const u8 dpcd[DP_RECEIVER_CAP_SIZE], >468const u8 port_cap[4]) >469 { >470 int type = port_cap[0] & DP_DS_PORT_TYPE_MASK; >471 bool detailed_cap_info = dpcd[DP_DOWNSTREAMPORT_PRESENT] & >472 DP_DETAILED_CAP_INFO_AVAILABLE; >473 int bpc; >474 >475 if (!detailed_cap_info) >476 return 0; >477 >478 switch (type) { >479 case DP_DS_PORT_TYPE_VGA: >480 case DP_DS_PORT_TYPE_DVI: >481 case DP_DS_PORT_TYPE_HDMI: >482 case DP_DS_PORT_TYPE_DP_DUALMODE: >483 bpc = port_cap[2] & DP_DS_MAX_BPC_MASK; > ^^ > This is 0x3. > >484 >485 switch (bpc) { >486 case DP_DS_8BPC: >487 return 8; >488 case DP_DS_10BPC: >489 return 10; >490 case DP_DS_12BPC: >491 return 12; >492 case DP_DS_16BPC: >493 return 16; >494 } >495 fallthrough; > > This fallthrough is impossible. Probably the way to work around the > bogus warning is the change the fallthough to "return 0; /* impossible */" > otherwise the fallthrough is sort of misleading... Won't that be unreachable as well? Maybe just add the default label to switch (bpc)? BR, Jani. > >496 default: >497 return 0; >498 } >499 } > > regards, > dan carpenter > ___ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Jani Nikula, Intel Open Source Graphics Center ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[bug report] drm/dp: annotate implicit fall throughs
Hello Mathieu Malaterre, The patch e9c0c874711b: "drm/dp: annotate implicit fall throughs" from Jan 14, 2019, leads to the following static checker warning: drivers/gpu/drm/drm_dp_helper.c:495 drm_dp_downstream_max_bpc() warn: ignoring unreachable code. drivers/gpu/drm/drm_dp_helper.c 467 int drm_dp_downstream_max_bpc(const u8 dpcd[DP_RECEIVER_CAP_SIZE], 468const u8 port_cap[4]) 469 { 470 int type = port_cap[0] & DP_DS_PORT_TYPE_MASK; 471 bool detailed_cap_info = dpcd[DP_DOWNSTREAMPORT_PRESENT] & 472 DP_DETAILED_CAP_INFO_AVAILABLE; 473 int bpc; 474 475 if (!detailed_cap_info) 476 return 0; 477 478 switch (type) { 479 case DP_DS_PORT_TYPE_VGA: 480 case DP_DS_PORT_TYPE_DVI: 481 case DP_DS_PORT_TYPE_HDMI: 482 case DP_DS_PORT_TYPE_DP_DUALMODE: 483 bpc = port_cap[2] & DP_DS_MAX_BPC_MASK; ^^ This is 0x3. 484 485 switch (bpc) { 486 case DP_DS_8BPC: 487 return 8; 488 case DP_DS_10BPC: 489 return 10; 490 case DP_DS_12BPC: 491 return 12; 492 case DP_DS_16BPC: 493 return 16; 494 } 495 fallthrough; This fallthrough is impossible. Probably the way to work around the bogus warning is the change the fallthough to "return 0; /* impossible */" otherwise the fallthrough is sort of misleading... 496 default: 497 return 0; 498 } 499 } regards, dan carpenter ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel