dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [bug report] drm/dp: annotate implicit fall throughs
@ 2020-08-25 11:27 Dan Carpenter
  2020-08-28  9:53 ` Jani Nikula
  0 siblings, 1 reply; 3+ messages in thread
From: Dan Carpenter @ 2020-08-25 11:27 UTC (permalink / raw)
  To: malat; +Cc: dri-devel

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],
   468                                const 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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [bug report] drm/dp: annotate implicit fall throughs
  2020-08-25 11:27 [bug report] drm/dp: annotate implicit fall throughs Dan Carpenter
@ 2020-08-28  9:53 ` Jani Nikula
  2020-08-31  9:06   ` Dan Carpenter
  0 siblings, 1 reply; 3+ messages in thread
From: Jani Nikula @ 2020-08-28  9:53 UTC (permalink / raw)
  To: Dan Carpenter, malat; +Cc: dri-devel

On Tue, 25 Aug 2020, Dan Carpenter <dan.carpenter@oracle.com> 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],
>    468                                const 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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [bug report] drm/dp: annotate implicit fall throughs
  2020-08-28  9:53 ` Jani Nikula
@ 2020-08-31  9:06   ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2020-08-31  9:06 UTC (permalink / raw)
  To: Jani Nikula; +Cc: malat, dri-devel

On Fri, Aug 28, 2020 at 12:53:32PM +0300, Jani Nikula wrote:
> On Tue, 25 Aug 2020, Dan Carpenter <dan.carpenter@oracle.com> 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],
> >    468                                const 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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-08-31  9:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-08-25 11:27 [bug report] drm/dp: annotate implicit fall throughs Dan Carpenter
2020-08-28  9:53 ` Jani Nikula
2020-08-31  9:06   ` Dan Carpenter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).