[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] xen/ACPI: Remove the acpi_string type


  • To: Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Fri, 14 Jul 2023 14:04:11 +0100
  • Authentication-results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <George.Dunlap@xxxxxxxxxxxxx>, Jan Beulich <JBeulich@xxxxxxxx>, "Stefano Stabellini" <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Julien Grall <julien@xxxxxxx>, Roberto Bagnara <roberto.bagnara@xxxxxxxxxxx>, "Nicola Vetrini" <nicola.vetrini@xxxxxxxxxxx>
  • Delivery-date: Fri, 14 Jul 2023 13:04:27 +0000
  • Ironport-data: A9a23:8u7o1KhrUxc/wDq+rBn2Ine2X161gBAKZh0ujC45NGQN5FlHY01je htvWG+BO/zZMGDwc9Bwbo/g8h8Ov5fRxoJjTQtvq31jEykb9cadCdqndUqhZCn6wu8v7q5Ex 55HNoSfdpBcolv0/ErF3m3J9CEkvU2wbuOgTrWCYmYpHlUMpB4J0XpLg/Q+jpNjne+3CgaMv cKai8DEMRqu1iUc3lg8sspvkzsx+qyr0N8klgZmP6sT4waCzyB94K83fsldEVOpGuG4IcbiL wrz5OnR1n/U+R4rFuSknt7TGqHdauePVeQmoiM+t5mK2nCulARrukoIHKN0hXNsoyeIh7hMJ OBl7vRcf+uL0prkw4zxWzEAe8130DYvFLXveRBTuuTLp6HKnueFL1yDwyjaMKVBktubD12i+ tQadAEyfgufgt62mreEQdBQqth9D8nkadZ3VnFIlVk1DN4jSJHHBa7L+cVZzHE7gcUm8fT2P pRDL2A1NVKZPkMJYw1MYH49tL7Aan3XWjtUsl+K44Ew5HDe1ldZ27nxKtvFPNeNQK25m27B/ zyYojqmXEly2Nq3lWeirV+vguTzgHnZB5wSBYaDqPNguQjGroAUIEJPDgbqyRWjsWauVtQaJ 0EK9y4Gqakp6FftXtT7Rwe/onOPolgbQdU4O88Q5RyJy6HUyx2EHWVCRTlEAPQ9r9M/TzEu0 l6PnvvqCCZpvbnTTmiSnp+LqRuiNC5TKnUNDQcGUA8E7t/LsIw1yBXVQb5LCqm/g8fpHnf6y j+MpTI3r78OgtUG0ar99lfC6xqqp5POSgdz+AjLRGOj7ytzeYG+aoqnr1Pc6J59wJ2xFwfb+ iJewo7Hsb5IVMvW/MCQfAkTNLP11smVKyHZvV41GqYqzgiB5yCAfY8FtVmSO3xV3tY4lS7BO RGD6FgLvM8LYxNGfocsPdvvVp1CIbzIUI28C6uKNocmjo1ZLlfvwc14WaKHM4kBemAImLp3B 5qUeN3E4Z0yWfU+l2reqwvwPNYWKsECKYD7H8qTI+yPi+b2WZJsYe5t3KGyRu449riYhw7e7 sxSMcCHoz0GDr2vOHaMqdFPcw1aRZTeOXwQg5YMHgJkClM2cFzN9teLme9xE2Cbt/k9ehj0E oGVBRYDlQuXaYzvIgSWcHFzAI4Drr4mxU/XyRcEZA7ys1B6ONbH0UvqX8dvFVXR3LA5nKEco jhsU5noP8mjvRyaoGlBNcam/N0KmdbCrVvmAhdJqQMXJ/ZILzElMPe+Fucz3EHi1haKiPY=
  • Ironport-hdrordr: A9a23:+0KnRKA5EIWAV6zlHej7sceALOsnbusQ8zAXPo5KOHtom7+j5q WTdZMgpGXJYVcqKQodcL+7WZVof0msv6KdjbNhRItKGTOWwFdBwulZnP3fKxOJIVy3ygd279 YVT0BGYOeARGSTZ67BkUKF+q8bsa66GcOT5ds2rU0CcegwUdAU0+4RMG/yeScaKGZ76IICZe ehD4h81lydkFssH4mG7xI+Lor+TrPw5fbbiFI9dn0aAMjnt0La1FZ0eyLorCs2Ynd02L8nx2 DOjgz+4cyYwoGG4y6Z7Xba66JckMCJ8Ko8OOW8zvINIjHbkQqwYp99MofyzQwdkaWU8V4vps PHpQwtVv4DlE/5TyWOuBPo7RPr1i0j3X/k1Daj8AfenfA=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Typedef-ing a naked pointer like this an anti-pattern which is best avoided.
Furthermore, it's bad to pass a string literate in a mutable type.  Delete the
type entirely, and replace it with a plain 'const char *'.

This highlights two futher bugs.  acpi_get_table() already had a mismatch in
types between it's declaration and definition, and we have declarations for
acpi_get_handle() and acpi_get_table_header() but no definition at all (nor
any callers).

This fixes violations of MISRA Rule 7.4:

  A string literal shall not be assigned to an object unless the object's type
  is "pointer to const-qualified char".

and of Rule 8.3:

  All declarations of an object or function shall use the same names and type
  qualifiers.

and of Rule 8.6:

  An identifier with external linkage shall have exactly one external
  definition.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
CC: George Dunlap <George.Dunlap@xxxxxxxxxxxxx>
CC: Jan Beulich <JBeulich@xxxxxxxx>
CC: Stefano Stabellini <sstabellini@xxxxxxxxxx>
CC: Wei Liu <wl@xxxxxxx>
CC: Julien Grall <julien@xxxxxxx>
CC: Roberto Bagnara <roberto.bagnara@xxxxxxxxxxx>
CC: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>

Roberto/Nicola: Please double check my choice of rules here, and point out any
others that I may have missed.
---
 xen/drivers/acpi/tables/tbxface.c |  4 ++--
 xen/include/acpi/acpixf.h         | 13 ++-----------
 xen/include/acpi/actypes.h        |  1 -
 3 files changed, 4 insertions(+), 14 deletions(-)

diff --git a/xen/drivers/acpi/tables/tbxface.c 
b/xen/drivers/acpi/tables/tbxface.c
index 21b2e5eae1c7..204d66caea48 100644
--- a/xen/drivers/acpi/tables/tbxface.c
+++ b/xen/drivers/acpi/tables/tbxface.c
@@ -164,7 +164,7 @@ acpi_initialize_tables(struct acpi_table_desc * 
initial_table_array,
  *
  *****************************************************************************/
 acpi_status __init
-acpi_get_table(char *signature,
+acpi_get_table(const char *signature,
               acpi_native_uint instance, struct acpi_table_header **out_table)
 {
        acpi_native_uint i;
@@ -220,7 +220,7 @@ acpi_get_table(char *signature,
  *
  *****************************************************************************/
 acpi_status __init
-acpi_get_table_phys(acpi_string signature, acpi_native_uint instance,
+acpi_get_table_phys(const char *signature, acpi_native_uint instance,
                     acpi_physical_address *addr, acpi_native_uint *len)
 {
        acpi_native_uint i, j;
diff --git a/xen/include/acpi/acpixf.h b/xen/include/acpi/acpixf.h
index ba74908f0478..8b70154b8f96 100644
--- a/xen/include/acpi/acpixf.h
+++ b/xen/include/acpi/acpixf.h
@@ -69,25 +69,16 @@ acpi_status acpi_load_tables(void);
 acpi_status acpi_load_table(struct acpi_table_header *table_ptr);
 
 acpi_status
-acpi_get_table_header(acpi_string signature,
-                     acpi_native_uint instance,
-                     struct acpi_table_header *out_table_header);
-
-acpi_status
-acpi_get_table(acpi_string signature,
+acpi_get_table(const char *signature,
               acpi_native_uint instance, struct acpi_table_header **out_table);
 
 acpi_status
-acpi_get_table_phys(acpi_string signature, acpi_native_uint instance,
+acpi_get_table_phys(const char *signature, acpi_native_uint instance,
                     acpi_physical_address *addr, acpi_native_uint *len);
 /*
  * Namespace and name interfaces
  */
 acpi_status
-acpi_get_handle(acpi_handle parent,
-               acpi_string pathname, acpi_handle * ret_handle);
-
-acpi_status
 acpi_debug_trace(char *name, u32 debug_level, u32 debug_layer, u32 flags);
 
 acpi_status
diff --git a/xen/include/acpi/actypes.h b/xen/include/acpi/actypes.h
index f3e95abc3ab3..7023863d0349 100644
--- a/xen/include/acpi/actypes.h
+++ b/xen/include/acpi/actypes.h
@@ -281,7 +281,6 @@ typedef acpi_native_uint acpi_size;
  */
 typedef u32 acpi_status;       /* All ACPI Exceptions */
 typedef u32 acpi_name;         /* 4-byte ACPI name */
-typedef char *acpi_string;     /* Null terminated ASCII string */
 typedef void *acpi_handle;     /* Actually a ptr to a NS Node */
 
 struct uint64_struct {
-- 
2.30.2




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.