diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-05-27 20:17:27 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-05-30 23:14:00 -0400 |
commit | b144ce2d37619e05afdb0a15676500d76a64b1be (patch) | |
tree | c896c3c2cb4bc8135afb9f5128b38f250695c545 | |
parent | 039ae58503f3349157a852c2cd5555a630f0bfaf (diff) |
mei: fix up uuid matching
A previous commit, c93b76b34b4d ("mei: bus: report also uuid in module
alias") caused a build error as I missed applying a needed patch to add
some macros to uapi/linux/uuid.h. Instead of those additional macros,
change the mei code to use the existing uuid structure directly.
Fixes: c93b76b34b4d
Cc: Tomas Winkler <tomas.winkler@intel.com>
Cc: Samuel Ortiz <sameo@linux.intel.com>
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/misc/mei/bus.c | 9 | ||||
-rw-r--r-- | drivers/nfc/mei_phy.h | 2 | ||||
-rw-r--r-- | include/linux/mod_devicetable.h | 2 | ||||
-rw-r--r-- | scripts/mod/file2alias.c | 7 |
4 files changed, 9 insertions, 11 deletions
diff --git a/drivers/misc/mei/bus.c b/drivers/misc/mei/bus.c index de8fd089a8a4..357b6ae4d207 100644 --- a/drivers/misc/mei/bus.c +++ b/drivers/misc/mei/bus.c | |||
@@ -30,11 +30,6 @@ | |||
30 | #define to_mei_cl_driver(d) container_of(d, struct mei_cl_driver, driver) | 30 | #define to_mei_cl_driver(d) container_of(d, struct mei_cl_driver, driver) |
31 | #define to_mei_cl_device(d) container_of(d, struct mei_cl_device, dev) | 31 | #define to_mei_cl_device(d) container_of(d, struct mei_cl_device, dev) |
32 | 32 | ||
33 | static inline uuid_le uuid_le_cast(const __u8 uuid[16]) | ||
34 | { | ||
35 | return *(uuid_le *)uuid; | ||
36 | } | ||
37 | |||
38 | static int mei_cl_device_match(struct device *dev, struct device_driver *drv) | 33 | static int mei_cl_device_match(struct device *dev, struct device_driver *drv) |
39 | { | 34 | { |
40 | struct mei_cl_device *device = to_mei_cl_device(dev); | 35 | struct mei_cl_device *device = to_mei_cl_device(dev); |
@@ -54,9 +49,9 @@ static int mei_cl_device_match(struct device *dev, struct device_driver *drv) | |||
54 | 49 | ||
55 | id = driver->id_table; | 50 | id = driver->id_table; |
56 | 51 | ||
57 | while (uuid_le_cmp(NULL_UUID_LE, uuid_le_cast(id->uuid))) { | 52 | while (uuid_le_cmp(NULL_UUID_LE, id->uuid)) { |
58 | 53 | ||
59 | if (!uuid_le_cmp(*uuid, uuid_le_cast(id->uuid))) { | 54 | if (!uuid_le_cmp(*uuid, id->uuid)) { |
60 | if (id->name[0]) { | 55 | if (id->name[0]) { |
61 | if (!strncmp(name, id->name, sizeof(id->name))) | 56 | if (!strncmp(name, id->name, sizeof(id->name))) |
62 | return 1; | 57 | return 1; |
diff --git a/drivers/nfc/mei_phy.h b/drivers/nfc/mei_phy.h index a51f8f2685cc..fbfa3e61738f 100644 --- a/drivers/nfc/mei_phy.h +++ b/drivers/nfc/mei_phy.h | |||
@@ -5,7 +5,7 @@ | |||
5 | #include <net/nfc/hci.h> | 5 | #include <net/nfc/hci.h> |
6 | #include <linux/uuid.h> | 6 | #include <linux/uuid.h> |
7 | 7 | ||
8 | #define MEI_NFC_UUID __UUID_LE(0x0bb17a78, 0x2a8e, 0x4c50, \ | 8 | #define MEI_NFC_UUID UUID_LE(0x0bb17a78, 0x2a8e, 0x4c50, \ |
9 | 0x94, 0xd4, 0x50, 0x26, 0x67, 0x23, 0x77, 0x5c) | 9 | 0x94, 0xd4, 0x50, 0x26, 0x67, 0x23, 0x77, 0x5c) |
10 | #define MEI_NFC_HEADER_SIZE 10 | 10 | #define MEI_NFC_HEADER_SIZE 10 |
11 | #define MEI_NFC_MAX_HCI_PAYLOAD 300 | 11 | #define MEI_NFC_MAX_HCI_PAYLOAD 300 |
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index 2d2b2b571d61..048c270822f9 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h | |||
@@ -614,7 +614,7 @@ struct ipack_device_id { | |||
614 | */ | 614 | */ |
615 | struct mei_cl_device_id { | 615 | struct mei_cl_device_id { |
616 | char name[MEI_CL_NAME_SIZE]; | 616 | char name[MEI_CL_NAME_SIZE]; |
617 | __u8 uuid[16]; | 617 | uuid_le uuid; |
618 | kernel_ulong_t driver_info; | 618 | kernel_ulong_t driver_info; |
619 | }; | 619 | }; |
620 | 620 | ||
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index 62c517f4b592..718b2a29bd43 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c | |||
@@ -34,6 +34,9 @@ typedef Elf64_Addr kernel_ulong_t; | |||
34 | typedef uint32_t __u32; | 34 | typedef uint32_t __u32; |
35 | typedef uint16_t __u16; | 35 | typedef uint16_t __u16; |
36 | typedef unsigned char __u8; | 36 | typedef unsigned char __u8; |
37 | typedef struct { | ||
38 | __u8 b[16]; | ||
39 | } uuid_le; | ||
37 | 40 | ||
38 | /* Big exception to the "don't include kernel headers into userspace, which | 41 | /* Big exception to the "don't include kernel headers into userspace, which |
39 | * even potentially has different endianness and word sizes, since | 42 | * even potentially has different endianness and word sizes, since |
@@ -131,13 +134,13 @@ static inline void add_wildcard(char *str) | |||
131 | strcat(str + len, "*"); | 134 | strcat(str + len, "*"); |
132 | } | 135 | } |
133 | 136 | ||
134 | static inline void add_uuid(char *str, __u8 uuid[16]) | 137 | static inline void add_uuid(char *str, uuid_le uuid) |
135 | { | 138 | { |
136 | int len = strlen(str); | 139 | int len = strlen(str); |
137 | int i; | 140 | int i; |
138 | 141 | ||
139 | for (i = 0; i < 16; i++) | 142 | for (i = 0; i < 16; i++) |
140 | sprintf(str + len + (i << 1), "%02x", uuid[i]); | 143 | sprintf(str + len + (i << 1), "%02x", uuid.b[i]); |
141 | } | 144 | } |
142 | 145 | ||
143 | /** | 146 | /** |