On Thursday, August 01, 2013 03:06:25 PM Tang Chen wrote:
> The macro INVALID_TABLE() is defined like this:
> 
>  #define INVALID_TABLE(x, path, name)                                    \
>          { pr_err("ACPI OVERRIDE: " x " [%s%s]\n", path, name); continue; }
> 
> And it is used like this:
> 
>       for (...) {
>               ...
>               if (...)
>                       INVALID_TABLE()
>               ...
>       }
> 
> The "continue" in the macro makes the code hard to understand.
> Change it to the style like other macros:
> 
>  #define INVALID_TABLE(x, path, name)                                    \
>          do { pr_err("ACPI OVERRIDE: " x " [%s%s]\n", path, name); } while (0)
> 
> So after this patch, this macro should be used like this:
> 
>       for (...) {
>               ...
>               if (...) {
>                       INVALID_TABLE()
>                       continue;
>               }
>               ...
>       }
> 
> Add the "continue" wherever the macro is called.
> (For now, it is only called in acpi_initrd_override().)
> 
> The idea is from Yinghai Lu <ying...@kernel.org>.
> 
> Signed-off-by: Tang Chen <tangc...@cn.fujitsu.com>
> Signed-off-by: Yinghai Lu <ying...@kernel.org>
> Acked-by: Tejun Heo <t...@kernel.org>
> Reviewed-by: Zhang Yanfei <zhangyan...@cn.fujitsu.com>

Acked-by: Rafael J. Wysocki <rafael.j.wyso...@intel.com>

> ---
>  drivers/acpi/osl.c |   18 +++++++++++++-----
>  1 files changed, 13 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> index e721863..91d9f54 100644
> --- a/drivers/acpi/osl.c
> +++ b/drivers/acpi/osl.c
> @@ -565,7 +565,7 @@ static const char * const table_sigs[] = {
>  
>  /* Non-fatal errors: Affected tables/files are ignored */
>  #define INVALID_TABLE(x, path, name)                                 \
> -     { pr_err("ACPI OVERRIDE: " x " [%s%s]\n", path, name); continue; }
> +     do { pr_err("ACPI OVERRIDE: " x " [%s%s]\n", path, name); } while (0)
>  
>  #define ACPI_HEADER_SIZE sizeof(struct acpi_table_header)
>  
> @@ -593,9 +593,11 @@ void __init acpi_initrd_override(void *data, size_t size)
>               data += offset;
>               size -= offset;
>  
> -             if (file.size < sizeof(struct acpi_table_header))
> +             if (file.size < sizeof(struct acpi_table_header)) {
>                       INVALID_TABLE("Table smaller than ACPI header",
>                                     cpio_path, file.name);
> +                     continue;
> +             }
>  
>               table = file.data;
>  
> @@ -603,15 +605,21 @@ void __init acpi_initrd_override(void *data, size_t 
> size)
>                       if (!memcmp(table->signature, table_sigs[sig], 4))
>                               break;
>  
> -             if (!table_sigs[sig])
> +             if (!table_sigs[sig]) {
>                       INVALID_TABLE("Unknown signature",
>                                     cpio_path, file.name);
> -             if (file.size != table->length)
> +                     continue;
> +             }
> +             if (file.size != table->length) {
>                       INVALID_TABLE("File length does not match table length",
>                                     cpio_path, file.name);
> -             if (acpi_table_checksum(file.data, table->length))
> +                     continue;
> +             }
> +             if (acpi_table_checksum(file.data, table->length)) {
>                       INVALID_TABLE("Bad table checksum",
>                                     cpio_path, file.name);
> +                     continue;
> +             }
>  
>               pr_info("%4.4s ACPI table found in initrd [%s%s][0x%x]\n",
>                       table->signature, cpio_path, file.name, table->length);
> 
-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to