aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-05-27 20:17:27 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-05-30 23:14:00 -0400
commitb144ce2d37619e05afdb0a15676500d76a64b1be (patch)
treec896c3c2cb4bc8135afb9f5128b38f250695c545
parent039ae58503f3349157a852c2cd5555a630f0bfaf (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.c9
-rw-r--r--drivers/nfc/mei_phy.h2
-rw-r--r--include/linux/mod_devicetable.h2
-rw-r--r--scripts/mod/file2alias.c7
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
33static inline uuid_le uuid_le_cast(const __u8 uuid[16])
34{
35 return *(uuid_le *)uuid;
36}
37
38static int mei_cl_device_match(struct device *dev, struct device_driver *drv) 33static 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 */
615struct mei_cl_device_id { 615struct 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;
34typedef uint32_t __u32; 34typedef uint32_t __u32;
35typedef uint16_t __u16; 35typedef uint16_t __u16;
36typedef unsigned char __u8; 36typedef unsigned char __u8;
37typedef 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
134static inline void add_uuid(char *str, __u8 uuid[16]) 137static 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/**