Thread (20 messages) 20 messages, 5 authors, 2016-04-07

Re: [PATCH v1 05/10] ACPI: switch to use generic UUID API

flat view

From: Dan Williams <hidden>
Date: 2016-02-17 17:49:44
Also in: dri-devel, linux-acpi, linux-efi, lkml, nvdimm

On Wed, Feb 17, 2016 at 4:17 AM, Andy Shevchenko
[off-list ref] wrote:
Instead of opencoding the existing library functions let's use them directly.

The conversion fixes a potential bug in int340x_thermal as well since we have
to use memcmp() on binary data.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/acpi/acpi_extlog.c                        |  8 +++---
 drivers/acpi/bus.c                                | 29 ++-----------------
 drivers/acpi/nfit.c                               | 34 +++++++++++------------
 drivers/acpi/nfit.h                               |  3 +-
 drivers/acpi/utils.c                              |  4 +--
 drivers/char/tpm/tpm_crb.c                        |  9 +++---
 drivers/char/tpm/tpm_ppi.c                        | 20 ++++++-------
 drivers/gpu/drm/i915/intel_acpi.c                 | 14 ++++------
 drivers/gpu/drm/nouveau/nouveau_acpi.c            | 20 ++++++-------
 drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.c    |  9 +++---
 drivers/hid/i2c-hid/i2c-hid.c                     |  9 +++---
 drivers/iommu/dmar.c                              | 11 ++++----
 drivers/pci/pci-acpi.c                            | 11 ++++----
 drivers/pci/pci-label.c                           |  4 +--
 drivers/thermal/int340x_thermal/int3400_thermal.c |  6 ++--
 drivers/usb/host/xhci-pci.c                       |  9 +++---
 include/acpi/acpi_bus.h                           | 10 ++++---
 include/linux/acpi.h                              |  2 +-
 include/linux/pci-acpi.h                          |  2 +-
 sound/soc/intel/skylake/skl-nhlt.c                |  7 +++--
 20 files changed, 92 insertions(+), 129 deletions(-)
[..]
quoted hunk ↗ jump to hunk
diff --git a/drivers/acpi/nfit.c b/drivers/acpi/nfit.c
index ad6d8c6..3beb99b 100644
--- a/drivers/acpi/nfit.c
+++ b/drivers/acpi/nfit.c
@@ -43,11 +43,11 @@ struct nfit_table_prev {
        struct list_head flushes;
 };

-static u8 nfit_uuid[NFIT_UUID_MAX][16];
+static uuid_le nfit_uuid[NFIT_UUID_MAX];

-const u8 *to_nfit_uuid(enum nfit_uuids id)
+const uuid_le *to_nfit_uuid(enum nfit_uuids id)
 {
-       return nfit_uuid[id];
+       return &nfit_uuid[id];
 }
 EXPORT_SYMBOL(to_nfit_uuid);
@@ -83,7 +83,7 @@ static int acpi_nfit_ctl(struct nvdimm_bus_descriptor *nd_desc,
        const char *cmd_name, * dimm_name;
        unsigned long dsm_mask;
        acpi_handle handle;
-       const u8 *uuid;
+       const uuid_le *uuid;
        u32 offset;
        int rc, i;
@@ -225,7 +225,7 @@ static int nfit_spa_type(struct acpi_nfit_system_address *spa)
        int i;

        for (i = 0; i < NFIT_UUID_MAX; i++)
-               if (memcmp(to_nfit_uuid(i), spa->range_guid, 16) == 0)
+               if (!uuid_le_cmp(*to_nfit_uuid(i), *(uuid_le *)spa->range_guid))
                        return i;
        return -1;
 }
@@ -829,7 +829,7 @@ static int acpi_nfit_add_dimm(struct acpi_nfit_desc *acpi_desc,
 {
        struct acpi_device *adev, *adev_dimm;
        struct device *dev = acpi_desc->dev;
-       const u8 *uuid = to_nfit_uuid(NFIT_DEV_DIMM);
+       const uuid_le *uuid = to_nfit_uuid(NFIT_DEV_DIMM);
        int i;

        nfit_mem->dsm_mask = acpi_desc->dimm_dsm_force_en;
@@ -909,7 +909,7 @@ static int acpi_nfit_register_dimms(struct acpi_nfit_desc *acpi_desc)
 static void acpi_nfit_init_dsms(struct acpi_nfit_desc *acpi_desc)
 {
        struct nvdimm_bus_descriptor *nd_desc = &acpi_desc->nd_desc;
-       const u8 *uuid = to_nfit_uuid(NFIT_DEV_BUS);
+       const uuid_le *uuid = to_nfit_uuid(NFIT_DEV_BUS);
        struct acpi_device *adev;
        int i;
@@ -2079,16 +2079,16 @@ static __init int nfit_init(void)
        BUILD_BUG_ON(sizeof(struct acpi_nfit_control_region) != 80);
        BUILD_BUG_ON(sizeof(struct acpi_nfit_data_region) != 40);

-       acpi_str_to_uuid(UUID_VOLATILE_MEMORY, nfit_uuid[NFIT_SPA_VOLATILE]);
-       acpi_str_to_uuid(UUID_PERSISTENT_MEMORY, nfit_uuid[NFIT_SPA_PM]);
-       acpi_str_to_uuid(UUID_CONTROL_REGION, nfit_uuid[NFIT_SPA_DCR]);
-       acpi_str_to_uuid(UUID_DATA_REGION, nfit_uuid[NFIT_SPA_BDW]);
-       acpi_str_to_uuid(UUID_VOLATILE_VIRTUAL_DISK, nfit_uuid[NFIT_SPA_VDISK]);
-       acpi_str_to_uuid(UUID_VOLATILE_VIRTUAL_CD, nfit_uuid[NFIT_SPA_VCD]);
-       acpi_str_to_uuid(UUID_PERSISTENT_VIRTUAL_DISK, nfit_uuid[NFIT_SPA_PDISK]);
-       acpi_str_to_uuid(UUID_PERSISTENT_VIRTUAL_CD, nfit_uuid[NFIT_SPA_PCD]);
-       acpi_str_to_uuid(UUID_NFIT_BUS, nfit_uuid[NFIT_DEV_BUS]);
-       acpi_str_to_uuid(UUID_NFIT_DIMM, nfit_uuid[NFIT_DEV_DIMM]);
+       uuid_le_to_bin(UUID_VOLATILE_MEMORY, &nfit_uuid[NFIT_SPA_VOLATILE]);
+       uuid_le_to_bin(UUID_PERSISTENT_MEMORY, &nfit_uuid[NFIT_SPA_PM]);
+       uuid_le_to_bin(UUID_CONTROL_REGION, &nfit_uuid[NFIT_SPA_DCR]);
+       uuid_le_to_bin(UUID_DATA_REGION, &nfit_uuid[NFIT_SPA_BDW]);
+       uuid_le_to_bin(UUID_VOLATILE_VIRTUAL_DISK, &nfit_uuid[NFIT_SPA_VDISK]);
+       uuid_le_to_bin(UUID_VOLATILE_VIRTUAL_CD, &nfit_uuid[NFIT_SPA_VCD]);
+       uuid_le_to_bin(UUID_PERSISTENT_VIRTUAL_DISK, &nfit_uuid[NFIT_SPA_PDISK]);
+       uuid_le_to_bin(UUID_PERSISTENT_VIRTUAL_CD, &nfit_uuid[NFIT_SPA_PCD]);
+       uuid_le_to_bin(UUID_NFIT_BUS, &nfit_uuid[NFIT_DEV_BUS]);
+       uuid_le_to_bin(UUID_NFIT_DIMM, &nfit_uuid[NFIT_DEV_DIMM]);
I don't see the benefit of this change.  For the NFIT driver we went
through a fire drill trying to make sure the ACPI spec format of a
UUID matched the Linux interpretation, and this change makes that
harder to determine.  ACPI drivers should use ACPICA uuid helper
routines in my opinion.
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help