Re: [PATCH][next] fbdev: Use fallthrough pseudo-keyword

From: Joe Perches
Date: Mon Aug 03 2020 - 15:52:48 EST


On Mon, 2020-08-03 at 21:41 +0200, Sam Ravnborg wrote:
> On Tue, Jul 07, 2020 at 04:05:39PM -0500, Gustavo A. R. Silva wrote:
> > Replace the existing /* fall through */ comments and its variants with
> > the new pseudo-keyword macro fallthrough[1]. Also, remove unnecessary
> > fall-through markings when it is the case.
> >
> > [1] https://www.kernel.org/doc/html/latest/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through
> >
> > Signed-off-by: Gustavo A. R. Silva <gustavoars@xxxxxxxxxx>
>
> Thanks.
>
> Fixed indent in arcfb.c while applying.
> Applied to drm-misc-next and it will appear in 5.10

Perhaps better would be to fix all the switch / case
brace uses so that it looks more typical kernel style.

> > diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c
> > index 6f7838979f0a..ae3d8e8b8d33 100644
> > --- a/drivers/video/fbdev/arcfb.c
> > +++ b/drivers/video/fbdev/arcfb.c
> > @@ -419,7 +419,7 @@ static int arcfb_ioctl(struct fb_info *info,
> > schedule();
> > finish_wait(&arcfb_waitq, &wait);
> > }
> > - /* fall through */
> > + fallthrough;
> >
> > case FBIO_GETCONTROL2:
> > {

---
drivers/video/fbdev/arcfb.c | 52 ++++++++++++++++++++++-----------------------
1 file changed, 25 insertions(+), 27 deletions(-)

diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c
index 6f7838979f0a..4419655e3e58 100644
--- a/drivers/video/fbdev/arcfb.c
+++ b/drivers/video/fbdev/arcfb.c
@@ -403,35 +403,33 @@ static int arcfb_ioctl(struct fb_info *info,
unsigned long flags;

switch (cmd) {
- case FBIO_WAITEVENT:
- {
- DEFINE_WAIT(wait);
- /* illegal to wait on arc if no irq will occur */
- if (!par->irq)
- return -EINVAL;
-
- /* wait until the Arc has generated an interrupt
- * which will wake us up */
- spin_lock_irqsave(&par->lock, flags);
- prepare_to_wait(&arcfb_waitq, &wait,
- TASK_INTERRUPTIBLE);
- spin_unlock_irqrestore(&par->lock, flags);
- schedule();
- finish_wait(&arcfb_waitq, &wait);
- }
- /* fall through */
+ case FBIO_WAITEVENT: {
+ DEFINE_WAIT(wait);
+ /* illegal to wait on arc if no irq will occur */
+ if (!par->irq)
+ return -EINVAL;

- case FBIO_GETCONTROL2:
- {
- unsigned char ctl2;
+ /* wait until the Arc has generated an interrupt
+ * which will wake us up */
+ spin_lock_irqsave(&par->lock, flags);
+ prepare_to_wait(&arcfb_waitq, &wait, TASK_INTERRUPTIBLE);
+ spin_unlock_irqrestore(&par->lock, flags);
+ schedule();
+ finish_wait(&arcfb_waitq, &wait);
+ fallthrough;
+ }

- ctl2 = ks108_readb_ctl2(info->par);
- if (copy_to_user(argp, &ctl2, sizeof(ctl2)))
- return -EFAULT;
- return 0;
- }
- default:
- return -EINVAL;
+ case FBIO_GETCONTROL2: {
+ unsigned char ctl2;
+
+ ctl2 = ks108_readb_ctl2(info->par);
+ if (copy_to_user(argp, &ctl2, sizeof(ctl2)))
+ return -EFAULT;
+ return 0;
+ }
+
+ default:
+ return -EINVAL;
}
}