Message ID | 20200707200716.GA4920@embeddedor (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | [next] ACPICA: Use fallthrough pseudo-keyword | expand |
On Tue, Jul 7, 2020 at 10:01 PM Gustavo A. R. Silva <gustavoars@kernel.org> 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@kernel.org> I need to talk to Erik and Bob about this one. > --- > drivers/acpi/acpica/dscontrol.c | 2 +- > drivers/acpi/acpica/dswexec.c | 3 +-- > drivers/acpi/acpica/dswload.c | 2 +- > drivers/acpi/acpica/dswload2.c | 4 +--- > drivers/acpi/acpica/exfldio.c | 2 +- > drivers/acpi/acpica/exresop.c | 4 ++-- > drivers/acpi/acpica/exstore.c | 4 ++-- > drivers/acpi/acpica/hwgpe.c | 3 +-- > drivers/acpi/acpica/utdelete.c | 3 +-- > drivers/acpi/acpica/utprint.c | 2 +- > 10 files changed, 12 insertions(+), 17 deletions(-) > > diff --git a/drivers/acpi/acpica/dscontrol.c b/drivers/acpi/acpica/dscontrol.c > index 4b5b6e859f62..134d53380663 100644 > --- a/drivers/acpi/acpica/dscontrol.c > +++ b/drivers/acpi/acpica/dscontrol.c > @@ -62,7 +62,7 @@ acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state, > } > } > > - /*lint -fallthrough */ > + fallthrough; > > case AML_IF_OP: > /* > diff --git a/drivers/acpi/acpica/dswexec.c b/drivers/acpi/acpica/dswexec.c > index 1d4f8c81028c..41f6cb61778a 100644 > --- a/drivers/acpi/acpica/dswexec.c > +++ b/drivers/acpi/acpica/dswexec.c > @@ -598,8 +598,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state) > break; > } > > - /* Fall through */ > - /*lint -fallthrough */ > + fallthrough; > > case AML_INT_EVAL_SUBTREE_OP: > > diff --git a/drivers/acpi/acpica/dswload.c b/drivers/acpi/acpica/dswload.c > index 27069325b6de..1d8789869dda 100644 > --- a/drivers/acpi/acpica/dswload.c > +++ b/drivers/acpi/acpica/dswload.c > @@ -224,7 +224,7 @@ acpi_ds_load1_begin_op(struct acpi_walk_state *walk_state, > break; > } > > - /*lint -fallthrough */ > + fallthrough; > > default: > > diff --git a/drivers/acpi/acpica/dswload2.c b/drivers/acpi/acpica/dswload2.c > index edadbe146506..de367e8e4cf4 100644 > --- a/drivers/acpi/acpica/dswload2.c > +++ b/drivers/acpi/acpica/dswload2.c > @@ -213,9 +213,7 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state, > parse_flags & ACPI_PARSE_MODULE_LEVEL)) { > break; > } > - > - /*lint -fallthrough */ > - > + fallthrough; > default: > > /* All other types are an error */ > diff --git a/drivers/acpi/acpica/exfldio.c b/drivers/acpi/acpica/exfldio.c > index ade35ff1c7ba..677ba3ab1482 100644 > --- a/drivers/acpi/acpica/exfldio.c > +++ b/drivers/acpi/acpica/exfldio.c > @@ -434,7 +434,7 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc, > * region_field case and write the datum to the Operation Region > */ > > - /*lint -fallthrough */ > + fallthrough; > > case ACPI_TYPE_LOCAL_REGION_FIELD: > /* > diff --git a/drivers/acpi/acpica/exresop.c b/drivers/acpi/acpica/exresop.c > index 4d1b22971d58..7c8676adcf43 100644 > --- a/drivers/acpi/acpica/exresop.c > +++ b/drivers/acpi/acpica/exresop.c > @@ -198,7 +198,7 @@ acpi_ex_resolve_operands(u16 opcode, > > target_op = AML_DEBUG_OP; > > - /*lint -fallthrough */ > + fallthrough; > > case ACPI_REFCLASS_ARG: > case ACPI_REFCLASS_LOCAL: > @@ -264,7 +264,7 @@ acpi_ex_resolve_operands(u16 opcode, > * Else not a string - fall through to the normal Reference > * case below > */ > - /*lint -fallthrough */ > + fallthrough; > > case ARGI_REFERENCE: /* References: */ > case ARGI_INTEGER_REF: > diff --git a/drivers/acpi/acpica/exstore.c b/drivers/acpi/acpica/exstore.c > index 3adc0a29d890..fcf8dff56c5b 100644 > --- a/drivers/acpi/acpica/exstore.c > +++ b/drivers/acpi/acpica/exstore.c > @@ -96,7 +96,7 @@ acpi_ex_store(union acpi_operand_object *source_desc, > return_ACPI_STATUS(AE_OK); > } > > - /*lint -fallthrough */ > + fallthrough; > > default: > > @@ -422,7 +422,7 @@ acpi_ex_store_object_to_node(union acpi_operand_object *source_desc, > break; > } > > - /* Fallthrough */ > + fallthrough; > > case ACPI_TYPE_DEVICE: > case ACPI_TYPE_EVENT: > diff --git a/drivers/acpi/acpica/hwgpe.c b/drivers/acpi/acpica/hwgpe.c > index 49c46d4dd070..19d574f64c78 100644 > --- a/drivers/acpi/acpica/hwgpe.c > +++ b/drivers/acpi/acpica/hwgpe.c > @@ -95,8 +95,7 @@ acpi_hw_low_set_gpe(struct acpi_gpe_event_info *gpe_event_info, u32 action) > if (!(register_bit & gpe_register_info->enable_mask)) { > return (AE_BAD_PARAMETER); > } > - > - /*lint -fallthrough */ > + fallthrough; > > case ACPI_GPE_ENABLE: > > diff --git a/drivers/acpi/acpica/utdelete.c b/drivers/acpi/acpica/utdelete.c > index c365faf4e6cd..6db09eb9d257 100644 > --- a/drivers/acpi/acpica/utdelete.c > +++ b/drivers/acpi/acpica/utdelete.c > @@ -111,8 +111,7 @@ static void acpi_ut_delete_internal_obj(union acpi_operand_object *object) > (void)acpi_ev_delete_gpe_block(object->device. > gpe_block); > } > - > - /*lint -fallthrough */ > + fallthrough; > > case ACPI_TYPE_PROCESSOR: > case ACPI_TYPE_THERMAL: > diff --git a/drivers/acpi/acpica/utprint.c b/drivers/acpi/acpica/utprint.c > index 681c11f4af4e..f7e43baf5ff2 100644 > --- a/drivers/acpi/acpica/utprint.c > +++ b/drivers/acpi/acpica/utprint.c > @@ -475,7 +475,7 @@ int vsnprintf(char *string, acpi_size size, const char *format, va_list args) > case 'X': > > type |= ACPI_FORMAT_UPPER; > - /* FALLTHROUGH */ > + fallthrough; > > case 'x': > >
It looks like this attribute is not supported by msvc 2017 (and perhaps other compilers) -- it is apparently a GCC extension -- meaning that it cannot be used in the ACPICA compiler-independent code. Bob -----Original Message----- From: Rafael J. Wysocki <rafael@kernel.org> Sent: Wednesday, July 08, 2020 3:59 AM To: Gustavo A. R. Silva <gustavoars@kernel.org> Cc: Moore, Robert <robert.moore@intel.com>; Kaneda, Erik <erik.kaneda@intel.com>; Wysocki, Rafael J <rafael.j.wysocki@intel.com>; Len Brown <lenb@kernel.org>; ACPI Devel Maling List <linux-acpi@vger.kernel.org>; open list:ACPI COMPONENT ARCHITECTURE (ACPICA) <devel@acpica.org>; Linux Kernel Mailing List <linux-kernel@vger.kernel.org> Subject: Re: [PATCH][next] ACPICA: Use fallthrough pseudo-keyword On Tue, Jul 7, 2020 at 10:01 PM Gustavo A. R. Silva <gustavoars@kernel.org> 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?highlig > ht=fallthrough#implicit-switch-case-fall-through > > Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> I need to talk to Erik and Bob about this one. > --- > drivers/acpi/acpica/dscontrol.c | 2 +- > drivers/acpi/acpica/dswexec.c | 3 +-- > drivers/acpi/acpica/dswload.c | 2 +- > drivers/acpi/acpica/dswload2.c | 4 +--- > drivers/acpi/acpica/exfldio.c | 2 +- > drivers/acpi/acpica/exresop.c | 4 ++-- > drivers/acpi/acpica/exstore.c | 4 ++-- > drivers/acpi/acpica/hwgpe.c | 3 +-- > drivers/acpi/acpica/utdelete.c | 3 +-- > drivers/acpi/acpica/utprint.c | 2 +- > 10 files changed, 12 insertions(+), 17 deletions(-) > > diff --git a/drivers/acpi/acpica/dscontrol.c > b/drivers/acpi/acpica/dscontrol.c index 4b5b6e859f62..134d53380663 > 100644 > --- a/drivers/acpi/acpica/dscontrol.c > +++ b/drivers/acpi/acpica/dscontrol.c > @@ -62,7 +62,7 @@ acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state, > } > } > > - /*lint -fallthrough */ > + fallthrough; > > case AML_IF_OP: > /* > diff --git a/drivers/acpi/acpica/dswexec.c > b/drivers/acpi/acpica/dswexec.c index 1d4f8c81028c..41f6cb61778a > 100644 > --- a/drivers/acpi/acpica/dswexec.c > +++ b/drivers/acpi/acpica/dswexec.c > @@ -598,8 +598,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state) > break; > } > > - /* Fall through */ > - /*lint -fallthrough */ > + fallthrough; > > case AML_INT_EVAL_SUBTREE_OP: > > diff --git a/drivers/acpi/acpica/dswload.c > b/drivers/acpi/acpica/dswload.c index 27069325b6de..1d8789869dda > 100644 > --- a/drivers/acpi/acpica/dswload.c > +++ b/drivers/acpi/acpica/dswload.c > @@ -224,7 +224,7 @@ acpi_ds_load1_begin_op(struct acpi_walk_state *walk_state, > break; > } > > - /*lint -fallthrough */ > + fallthrough; > > default: > > diff --git a/drivers/acpi/acpica/dswload2.c > b/drivers/acpi/acpica/dswload2.c index edadbe146506..de367e8e4cf4 > 100644 > --- a/drivers/acpi/acpica/dswload2.c > +++ b/drivers/acpi/acpica/dswload2.c > @@ -213,9 +213,7 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state, > parse_flags & ACPI_PARSE_MODULE_LEVEL)) { > break; > } > - > - /*lint -fallthrough */ > - > + fallthrough; > default: > > /* All other types are an error */ diff --git > a/drivers/acpi/acpica/exfldio.c b/drivers/acpi/acpica/exfldio.c index > ade35ff1c7ba..677ba3ab1482 100644 > --- a/drivers/acpi/acpica/exfldio.c > +++ b/drivers/acpi/acpica/exfldio.c > @@ -434,7 +434,7 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc, > * region_field case and write the datum to the Operation Region > */ > > - /*lint -fallthrough */ > + fallthrough; > > case ACPI_TYPE_LOCAL_REGION_FIELD: > /* > diff --git a/drivers/acpi/acpica/exresop.c > b/drivers/acpi/acpica/exresop.c index 4d1b22971d58..7c8676adcf43 > 100644 > --- a/drivers/acpi/acpica/exresop.c > +++ b/drivers/acpi/acpica/exresop.c > @@ -198,7 +198,7 @@ acpi_ex_resolve_operands(u16 opcode, > > target_op = AML_DEBUG_OP; > > - /*lint -fallthrough */ > + fallthrough; > > case ACPI_REFCLASS_ARG: > case ACPI_REFCLASS_LOCAL: > @@ -264,7 +264,7 @@ acpi_ex_resolve_operands(u16 opcode, > * Else not a string - fall through to the normal Reference > * case below > */ > - /*lint -fallthrough */ > + fallthrough; > > case ARGI_REFERENCE: /* References: */ > case ARGI_INTEGER_REF: > diff --git a/drivers/acpi/acpica/exstore.c > b/drivers/acpi/acpica/exstore.c index 3adc0a29d890..fcf8dff56c5b > 100644 > --- a/drivers/acpi/acpica/exstore.c > +++ b/drivers/acpi/acpica/exstore.c > @@ -96,7 +96,7 @@ acpi_ex_store(union acpi_operand_object *source_desc, > return_ACPI_STATUS(AE_OK); > } > > - /*lint -fallthrough */ > + fallthrough; > > default: > > @@ -422,7 +422,7 @@ acpi_ex_store_object_to_node(union acpi_operand_object *source_desc, > break; > } > > - /* Fallthrough */ > + fallthrough; > > case ACPI_TYPE_DEVICE: > case ACPI_TYPE_EVENT: > diff --git a/drivers/acpi/acpica/hwgpe.c b/drivers/acpi/acpica/hwgpe.c > index 49c46d4dd070..19d574f64c78 100644 > --- a/drivers/acpi/acpica/hwgpe.c > +++ b/drivers/acpi/acpica/hwgpe.c > @@ -95,8 +95,7 @@ acpi_hw_low_set_gpe(struct acpi_gpe_event_info *gpe_event_info, u32 action) > if (!(register_bit & gpe_register_info->enable_mask)) { > return (AE_BAD_PARAMETER); > } > - > - /*lint -fallthrough */ > + fallthrough; > > case ACPI_GPE_ENABLE: > > diff --git a/drivers/acpi/acpica/utdelete.c > b/drivers/acpi/acpica/utdelete.c index c365faf4e6cd..6db09eb9d257 > 100644 > --- a/drivers/acpi/acpica/utdelete.c > +++ b/drivers/acpi/acpica/utdelete.c > @@ -111,8 +111,7 @@ static void acpi_ut_delete_internal_obj(union acpi_operand_object *object) > (void)acpi_ev_delete_gpe_block(object->device. > gpe_block); > } > - > - /*lint -fallthrough */ > + fallthrough; > > case ACPI_TYPE_PROCESSOR: > case ACPI_TYPE_THERMAL: > diff --git a/drivers/acpi/acpica/utprint.c > b/drivers/acpi/acpica/utprint.c index 681c11f4af4e..f7e43baf5ff2 > 100644 > --- a/drivers/acpi/acpica/utprint.c > +++ b/drivers/acpi/acpica/utprint.c > @@ -475,7 +475,7 @@ int vsnprintf(char *string, acpi_size size, const char *format, va_list args) > case 'X': > > type |= ACPI_FORMAT_UPPER; > - /* FALLTHROUGH */ > + fallthrough; > > case 'x': > >
Hi, This is a macro pseudo-keyword, which expands to /* fallthrough */ for compilers that don't support the attribute __fallthrough__. See: include/linux/compiler_attributes.h:213: 213 #if __has_attribute(__fallthrough__) 214 # define fallthrough __attribute__((__fallthrough__)) 215 #else 216 # define fallthrough do {} while (0) /* fallthrough */ 217 #endif So, any compiler (older or new) will be fine with it. Thanks -- Gustavo On 7/8/20 09:17, Moore, Robert wrote: > It looks like this attribute is not supported by msvc 2017 (and perhaps other compilers) -- it is apparently a GCC extension -- meaning that it cannot be used in the ACPICA compiler-independent code. > > Bob > > > -----Original Message----- > From: Rafael J. Wysocki <rafael@kernel.org> > Sent: Wednesday, July 08, 2020 3:59 AM > To: Gustavo A. R. Silva <gustavoars@kernel.org> > Cc: Moore, Robert <robert.moore@intel.com>; Kaneda, Erik <erik.kaneda@intel.com>; Wysocki, Rafael J <rafael.j.wysocki@intel.com>; Len Brown <lenb@kernel.org>; ACPI Devel Maling List <linux-acpi@vger.kernel.org>; open list:ACPI COMPONENT ARCHITECTURE (ACPICA) <devel@acpica.org>; Linux Kernel Mailing List <linux-kernel@vger.kernel.org> > Subject: Re: [PATCH][next] ACPICA: Use fallthrough pseudo-keyword > > On Tue, Jul 7, 2020 at 10:01 PM Gustavo A. R. Silva <gustavoars@kernel.org> 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?highlig >> ht=fallthrough#implicit-switch-case-fall-through >> >> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> > > I need to talk to Erik and Bob about this one. > >> --- >> drivers/acpi/acpica/dscontrol.c | 2 +- >> drivers/acpi/acpica/dswexec.c | 3 +-- >> drivers/acpi/acpica/dswload.c | 2 +- >> drivers/acpi/acpica/dswload2.c | 4 +--- >> drivers/acpi/acpica/exfldio.c | 2 +- >> drivers/acpi/acpica/exresop.c | 4 ++-- >> drivers/acpi/acpica/exstore.c | 4 ++-- >> drivers/acpi/acpica/hwgpe.c | 3 +-- >> drivers/acpi/acpica/utdelete.c | 3 +-- >> drivers/acpi/acpica/utprint.c | 2 +- >> 10 files changed, 12 insertions(+), 17 deletions(-) >> >> diff --git a/drivers/acpi/acpica/dscontrol.c >> b/drivers/acpi/acpica/dscontrol.c index 4b5b6e859f62..134d53380663 >> 100644 >> --- a/drivers/acpi/acpica/dscontrol.c >> +++ b/drivers/acpi/acpica/dscontrol.c >> @@ -62,7 +62,7 @@ acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state, >> } >> } >> >> - /*lint -fallthrough */ >> + fallthrough; >> >> case AML_IF_OP: >> /* >> diff --git a/drivers/acpi/acpica/dswexec.c >> b/drivers/acpi/acpica/dswexec.c index 1d4f8c81028c..41f6cb61778a >> 100644 >> --- a/drivers/acpi/acpica/dswexec.c >> +++ b/drivers/acpi/acpica/dswexec.c >> @@ -598,8 +598,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state) >> break; >> } >> >> - /* Fall through */ >> - /*lint -fallthrough */ >> + fallthrough; >> >> case AML_INT_EVAL_SUBTREE_OP: >> >> diff --git a/drivers/acpi/acpica/dswload.c >> b/drivers/acpi/acpica/dswload.c index 27069325b6de..1d8789869dda >> 100644 >> --- a/drivers/acpi/acpica/dswload.c >> +++ b/drivers/acpi/acpica/dswload.c >> @@ -224,7 +224,7 @@ acpi_ds_load1_begin_op(struct acpi_walk_state *walk_state, >> break; >> } >> >> - /*lint -fallthrough */ >> + fallthrough; >> >> default: >> >> diff --git a/drivers/acpi/acpica/dswload2.c >> b/drivers/acpi/acpica/dswload2.c index edadbe146506..de367e8e4cf4 >> 100644 >> --- a/drivers/acpi/acpica/dswload2.c >> +++ b/drivers/acpi/acpica/dswload2.c >> @@ -213,9 +213,7 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state, >> parse_flags & ACPI_PARSE_MODULE_LEVEL)) { >> break; >> } >> - >> - /*lint -fallthrough */ >> - >> + fallthrough; >> default: >> >> /* All other types are an error */ diff --git >> a/drivers/acpi/acpica/exfldio.c b/drivers/acpi/acpica/exfldio.c index >> ade35ff1c7ba..677ba3ab1482 100644 >> --- a/drivers/acpi/acpica/exfldio.c >> +++ b/drivers/acpi/acpica/exfldio.c >> @@ -434,7 +434,7 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc, >> * region_field case and write the datum to the Operation Region >> */ >> >> - /*lint -fallthrough */ >> + fallthrough; >> >> case ACPI_TYPE_LOCAL_REGION_FIELD: >> /* >> diff --git a/drivers/acpi/acpica/exresop.c >> b/drivers/acpi/acpica/exresop.c index 4d1b22971d58..7c8676adcf43 >> 100644 >> --- a/drivers/acpi/acpica/exresop.c >> +++ b/drivers/acpi/acpica/exresop.c >> @@ -198,7 +198,7 @@ acpi_ex_resolve_operands(u16 opcode, >> >> target_op = AML_DEBUG_OP; >> >> - /*lint -fallthrough */ >> + fallthrough; >> >> case ACPI_REFCLASS_ARG: >> case ACPI_REFCLASS_LOCAL: >> @@ -264,7 +264,7 @@ acpi_ex_resolve_operands(u16 opcode, >> * Else not a string - fall through to the normal Reference >> * case below >> */ >> - /*lint -fallthrough */ >> + fallthrough; >> >> case ARGI_REFERENCE: /* References: */ >> case ARGI_INTEGER_REF: >> diff --git a/drivers/acpi/acpica/exstore.c >> b/drivers/acpi/acpica/exstore.c index 3adc0a29d890..fcf8dff56c5b >> 100644 >> --- a/drivers/acpi/acpica/exstore.c >> +++ b/drivers/acpi/acpica/exstore.c >> @@ -96,7 +96,7 @@ acpi_ex_store(union acpi_operand_object *source_desc, >> return_ACPI_STATUS(AE_OK); >> } >> >> - /*lint -fallthrough */ >> + fallthrough; >> >> default: >> >> @@ -422,7 +422,7 @@ acpi_ex_store_object_to_node(union acpi_operand_object *source_desc, >> break; >> } >> >> - /* Fallthrough */ >> + fallthrough; >> >> case ACPI_TYPE_DEVICE: >> case ACPI_TYPE_EVENT: >> diff --git a/drivers/acpi/acpica/hwgpe.c b/drivers/acpi/acpica/hwgpe.c >> index 49c46d4dd070..19d574f64c78 100644 >> --- a/drivers/acpi/acpica/hwgpe.c >> +++ b/drivers/acpi/acpica/hwgpe.c >> @@ -95,8 +95,7 @@ acpi_hw_low_set_gpe(struct acpi_gpe_event_info *gpe_event_info, u32 action) >> if (!(register_bit & gpe_register_info->enable_mask)) { >> return (AE_BAD_PARAMETER); >> } >> - >> - /*lint -fallthrough */ >> + fallthrough; >> >> case ACPI_GPE_ENABLE: >> >> diff --git a/drivers/acpi/acpica/utdelete.c >> b/drivers/acpi/acpica/utdelete.c index c365faf4e6cd..6db09eb9d257 >> 100644 >> --- a/drivers/acpi/acpica/utdelete.c >> +++ b/drivers/acpi/acpica/utdelete.c >> @@ -111,8 +111,7 @@ static void acpi_ut_delete_internal_obj(union acpi_operand_object *object) >> (void)acpi_ev_delete_gpe_block(object->device. >> gpe_block); >> } >> - >> - /*lint -fallthrough */ >> + fallthrough; >> >> case ACPI_TYPE_PROCESSOR: >> case ACPI_TYPE_THERMAL: >> diff --git a/drivers/acpi/acpica/utprint.c >> b/drivers/acpi/acpica/utprint.c index 681c11f4af4e..f7e43baf5ff2 >> 100644 >> --- a/drivers/acpi/acpica/utprint.c >> +++ b/drivers/acpi/acpica/utprint.c >> @@ -475,7 +475,7 @@ int vsnprintf(char *string, acpi_size size, const char *format, va_list args) >> case 'X': >> >> type |= ACPI_FORMAT_UPPER; >> - /* FALLTHROUGH */ >> + fallthrough; >> >> case 'x': >> >>
On Mon, 2020-07-27 at 17:23 -0500, Gustavo A. R. Silva wrote: > Hi, > > > This is a macro pseudo-keyword, which expands to /* fallthrough */ > for compilers that don't support the attribute __fallthrough__. See: Not really. It expands to do {} while (0) for compilers that do not support the __fallthrough__ attribute. The /* fallthrough */ after that is for the human reader and is stripped before compilation. > include/linux/compiler_attributes.h:213: > 213 #if __has_attribute(__fallthrough__) > 214 # define fallthrough __attribute__((__fallthrough__)) > 215 #else > 216 # define fallthrough do {} while (0) /* fallthrough */ > 217 #endif > > So, any compiler (older or new) will be fine with it. But old compilers should not emit warnings for these uses.
Yes, but: include/linux/compiler_attributes.h This file is linux-specific and cannot be used with ACPICA. Bob -----Original Message----- From: Joe Perches <joe@perches.com> Sent: Monday, July 27, 2020 7:22 PM To: Gustavo A. R. Silva <gustavo@embeddedor.com>; Moore, Robert <robert.moore@intel.com>; Rafael J. Wysocki <rafael@kernel.org>; Gustavo A. R. Silva <gustavoars@kernel.org> Cc: Kaneda, Erik <erik.kaneda@intel.com>; Wysocki, Rafael J <rafael.j.wysocki@intel.com>; Len Brown <lenb@kernel.org>; ACPI Devel Maling List <linux-acpi@vger.kernel.org>; open list:ACPI COMPONENT ARCHITECTURE (ACPICA) <devel@acpica.org>; Linux Kernel Mailing List <linux-kernel@vger.kernel.org> Subject: Re: [PATCH][next] ACPICA: Use fallthrough pseudo-keyword On Mon, 2020-07-27 at 17:23 -0500, Gustavo A. R. Silva wrote: > Hi, > > > This is a macro pseudo-keyword, which expands to /* fallthrough */ for > compilers that don't support the attribute __fallthrough__. See: Not really. It expands to do {} while (0) for compilers that do not support the __fallthrough__ attribute. The /* fallthrough */ after that is for the human reader and is stripped before compilation. > include/linux/compiler_attributes.h:213: > 213 #if __has_attribute(__fallthrough__) > 214 # define fallthrough __attribute__((__fallthrough__)) > 215 #else > 216 # define fallthrough do {} while (0) /* fallthrough */ > 217 #endif > > So, any compiler (older or new) will be fine with it. But old compilers should not emit warnings for these uses.
I'm afraid that the macro does not compile under MSVC: warning C4067: unexpected tokens following preprocessor directive - expected a newline (compiling source file ..\..\source\tools\acpiexec\aetests.c) It looks like "__has_attribute" is not supported. -----Original Message----- From: Joe Perches <joe@perches.com> Sent: Monday, July 27, 2020 7:22 PM To: Gustavo A. R. Silva <gustavo@embeddedor.com>; Moore, Robert <robert.moore@intel.com>; Rafael J. Wysocki <rafael@kernel.org>; Gustavo A. R. Silva <gustavoars@kernel.org> Cc: Kaneda, Erik <erik.kaneda@intel.com>; Wysocki, Rafael J <rafael.j.wysocki@intel.com>; Len Brown <lenb@kernel.org>; ACPI Devel Maling List <linux-acpi@vger.kernel.org>; open list:ACPI COMPONENT ARCHITECTURE (ACPICA) <devel@acpica.org>; Linux Kernel Mailing List <linux-kernel@vger.kernel.org> Subject: Re: [PATCH][next] ACPICA: Use fallthrough pseudo-keyword On Mon, 2020-07-27 at 17:23 -0500, Gustavo A. R. Silva wrote: > Hi, > > > This is a macro pseudo-keyword, which expands to /* fallthrough */ for > compilers that don't support the attribute __fallthrough__. See: Not really. It expands to do {} while (0) for compilers that do not support the __fallthrough__ attribute. The /* fallthrough */ after that is for the human reader and is stripped before compilation. > include/linux/compiler_attributes.h:213: > 213 #if __has_attribute(__fallthrough__) > 214 # define fallthrough __attribute__((__fallthrough__)) > 215 #else > 216 # define fallthrough do {} while (0) /* fallthrough */ > 217 #endif > > So, any compiler (older or new) will be fine with it. But old compilers should not emit warnings for these uses.
On Wed, 2020-10-14 at 20:48 +0000, Moore, Robert wrote: > I'm afraid that the macro does not compile under MSVC: > > warning C4067: unexpected tokens following preprocessor directive - expected a newline (compiling source file ..\..\source\tools\acpiexec\aetests.c) > > It looks like "__has_attribute" is not supported. It looks more like compiler.h/compiler_types.h/compiler_attributes.h doesn't support msvc.
diff --git a/drivers/acpi/acpica/dscontrol.c b/drivers/acpi/acpica/dscontrol.c index 4b5b6e859f62..134d53380663 100644 --- a/drivers/acpi/acpica/dscontrol.c +++ b/drivers/acpi/acpica/dscontrol.c @@ -62,7 +62,7 @@ acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state, } } - /*lint -fallthrough */ + fallthrough; case AML_IF_OP: /* diff --git a/drivers/acpi/acpica/dswexec.c b/drivers/acpi/acpica/dswexec.c index 1d4f8c81028c..41f6cb61778a 100644 --- a/drivers/acpi/acpica/dswexec.c +++ b/drivers/acpi/acpica/dswexec.c @@ -598,8 +598,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state) break; } - /* Fall through */ - /*lint -fallthrough */ + fallthrough; case AML_INT_EVAL_SUBTREE_OP: diff --git a/drivers/acpi/acpica/dswload.c b/drivers/acpi/acpica/dswload.c index 27069325b6de..1d8789869dda 100644 --- a/drivers/acpi/acpica/dswload.c +++ b/drivers/acpi/acpica/dswload.c @@ -224,7 +224,7 @@ acpi_ds_load1_begin_op(struct acpi_walk_state *walk_state, break; } - /*lint -fallthrough */ + fallthrough; default: diff --git a/drivers/acpi/acpica/dswload2.c b/drivers/acpi/acpica/dswload2.c index edadbe146506..de367e8e4cf4 100644 --- a/drivers/acpi/acpica/dswload2.c +++ b/drivers/acpi/acpica/dswload2.c @@ -213,9 +213,7 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state, parse_flags & ACPI_PARSE_MODULE_LEVEL)) { break; } - - /*lint -fallthrough */ - + fallthrough; default: /* All other types are an error */ diff --git a/drivers/acpi/acpica/exfldio.c b/drivers/acpi/acpica/exfldio.c index ade35ff1c7ba..677ba3ab1482 100644 --- a/drivers/acpi/acpica/exfldio.c +++ b/drivers/acpi/acpica/exfldio.c @@ -434,7 +434,7 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc, * region_field case and write the datum to the Operation Region */ - /*lint -fallthrough */ + fallthrough; case ACPI_TYPE_LOCAL_REGION_FIELD: /* diff --git a/drivers/acpi/acpica/exresop.c b/drivers/acpi/acpica/exresop.c index 4d1b22971d58..7c8676adcf43 100644 --- a/drivers/acpi/acpica/exresop.c +++ b/drivers/acpi/acpica/exresop.c @@ -198,7 +198,7 @@ acpi_ex_resolve_operands(u16 opcode, target_op = AML_DEBUG_OP; - /*lint -fallthrough */ + fallthrough; case ACPI_REFCLASS_ARG: case ACPI_REFCLASS_LOCAL: @@ -264,7 +264,7 @@ acpi_ex_resolve_operands(u16 opcode, * Else not a string - fall through to the normal Reference * case below */ - /*lint -fallthrough */ + fallthrough; case ARGI_REFERENCE: /* References: */ case ARGI_INTEGER_REF: diff --git a/drivers/acpi/acpica/exstore.c b/drivers/acpi/acpica/exstore.c index 3adc0a29d890..fcf8dff56c5b 100644 --- a/drivers/acpi/acpica/exstore.c +++ b/drivers/acpi/acpica/exstore.c @@ -96,7 +96,7 @@ acpi_ex_store(union acpi_operand_object *source_desc, return_ACPI_STATUS(AE_OK); } - /*lint -fallthrough */ + fallthrough; default: @@ -422,7 +422,7 @@ acpi_ex_store_object_to_node(union acpi_operand_object *source_desc, break; } - /* Fallthrough */ + fallthrough; case ACPI_TYPE_DEVICE: case ACPI_TYPE_EVENT: diff --git a/drivers/acpi/acpica/hwgpe.c b/drivers/acpi/acpica/hwgpe.c index 49c46d4dd070..19d574f64c78 100644 --- a/drivers/acpi/acpica/hwgpe.c +++ b/drivers/acpi/acpica/hwgpe.c @@ -95,8 +95,7 @@ acpi_hw_low_set_gpe(struct acpi_gpe_event_info *gpe_event_info, u32 action) if (!(register_bit & gpe_register_info->enable_mask)) { return (AE_BAD_PARAMETER); } - - /*lint -fallthrough */ + fallthrough; case ACPI_GPE_ENABLE: diff --git a/drivers/acpi/acpica/utdelete.c b/drivers/acpi/acpica/utdelete.c index c365faf4e6cd..6db09eb9d257 100644 --- a/drivers/acpi/acpica/utdelete.c +++ b/drivers/acpi/acpica/utdelete.c @@ -111,8 +111,7 @@ static void acpi_ut_delete_internal_obj(union acpi_operand_object *object) (void)acpi_ev_delete_gpe_block(object->device. gpe_block); } - - /*lint -fallthrough */ + fallthrough; case ACPI_TYPE_PROCESSOR: case ACPI_TYPE_THERMAL: diff --git a/drivers/acpi/acpica/utprint.c b/drivers/acpi/acpica/utprint.c index 681c11f4af4e..f7e43baf5ff2 100644 --- a/drivers/acpi/acpica/utprint.c +++ b/drivers/acpi/acpica/utprint.c @@ -475,7 +475,7 @@ int vsnprintf(char *string, acpi_size size, const char *format, va_list args) case 'X': type |= ACPI_FORMAT_UPPER; - /* FALLTHROUGH */ + fallthrough; case 'x':
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@kernel.org> --- drivers/acpi/acpica/dscontrol.c | 2 +- drivers/acpi/acpica/dswexec.c | 3 +-- drivers/acpi/acpica/dswload.c | 2 +- drivers/acpi/acpica/dswload2.c | 4 +--- drivers/acpi/acpica/exfldio.c | 2 +- drivers/acpi/acpica/exresop.c | 4 ++-- drivers/acpi/acpica/exstore.c | 4 ++-- drivers/acpi/acpica/hwgpe.c | 3 +-- drivers/acpi/acpica/utdelete.c | 3 +-- drivers/acpi/acpica/utprint.c | 2 +- 10 files changed, 12 insertions(+), 17 deletions(-)