2020-07-07 20:04:31

by Gustavo A. R. Silva

[permalink] [raw]
Subject: [PATCH][next] ACPICA: Use fallthrough pseudo-keyword

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 <[email protected]>
---
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':



2020-07-08 11:03:09

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH][next] ACPICA: Use fallthrough pseudo-keyword

On Tue, Jul 7, 2020 at 10:01 PM Gustavo A. R. Silva
<[email protected]> 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 <[email protected]>

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':
>
>

2020-07-08 14:18:31

by Moore, Robert

[permalink] [raw]
Subject: RE: [PATCH][next] ACPICA: Use fallthrough pseudo-keyword

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 <[email protected]>
Sent: Wednesday, July 08, 2020 3:59 AM
To: Gustavo A. R. Silva <[email protected]>
Cc: Moore, Robert <[email protected]>; Kaneda, Erik <[email protected]>; Wysocki, Rafael J <[email protected]>; Len Brown <[email protected]>; ACPI Devel Maling List <[email protected]>; open list:ACPI COMPONENT ARCHITECTURE (ACPICA) <[email protected]>; Linux Kernel Mailing List <[email protected]>
Subject: Re: [PATCH][next] ACPICA: Use fallthrough pseudo-keyword

On Tue, Jul 7, 2020 at 10:01 PM Gustavo A. R. Silva <[email protected]> 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 <[email protected]>

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':
>
>

2020-07-27 22:42:10

by Gustavo A. R. Silva

[permalink] [raw]
Subject: Re: [PATCH][next] ACPICA: Use fallthrough pseudo-keyword

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 <[email protected]>
> Sent: Wednesday, July 08, 2020 3:59 AM
> To: Gustavo A. R. Silva <[email protected]>
> Cc: Moore, Robert <[email protected]>; Kaneda, Erik <[email protected]>; Wysocki, Rafael J <[email protected]>; Len Brown <[email protected]>; ACPI Devel Maling List <[email protected]>; open list:ACPI COMPONENT ARCHITECTURE (ACPICA) <[email protected]>; Linux Kernel Mailing List <[email protected]>
> Subject: Re: [PATCH][next] ACPICA: Use fallthrough pseudo-keyword
>
> On Tue, Jul 7, 2020 at 10:01 PM Gustavo A. R. Silva <[email protected]> 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 <[email protected]>
>
> 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':
>>
>>

2020-07-28 02:25:12

by Joe Perches

[permalink] [raw]
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.


2020-07-28 15:12:03

by Moore, Robert

[permalink] [raw]
Subject: RE: [PATCH][next] ACPICA: Use fallthrough pseudo-keyword

Yes, but:

include/linux/compiler_attributes.h

This file is linux-specific and cannot be used with ACPICA.
Bob


-----Original Message-----
From: Joe Perches <[email protected]>
Sent: Monday, July 27, 2020 7:22 PM
To: Gustavo A. R. Silva <[email protected]>; Moore, Robert <[email protected]>; Rafael J. Wysocki <[email protected]>; Gustavo A. R. Silva <[email protected]>
Cc: Kaneda, Erik <[email protected]>; Wysocki, Rafael J <[email protected]>; Len Brown <[email protected]>; ACPI Devel Maling List <[email protected]>; open list:ACPI COMPONENT ARCHITECTURE (ACPICA) <[email protected]>; Linux Kernel Mailing List <[email protected]>
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.


2020-10-15 02:21:51

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH][next] ACPICA: Use fallthrough pseudo-keyword

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.



2020-10-15 07:08:10

by Moore, Robert

[permalink] [raw]
Subject: RE: [PATCH][next] ACPICA: Use fallthrough pseudo-keyword

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 <[email protected]>
Sent: Monday, July 27, 2020 7:22 PM
To: Gustavo A. R. Silva <[email protected]>; Moore, Robert <[email protected]>; Rafael J. Wysocki <[email protected]>; Gustavo A. R. Silva <[email protected]>
Cc: Kaneda, Erik <[email protected]>; Wysocki, Rafael J <[email protected]>; Len Brown <[email protected]>; ACPI Devel Maling List <[email protected]>; open list:ACPI COMPONENT ARCHITECTURE (ACPICA) <[email protected]>; Linux Kernel Mailing List <[email protected]>
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.