summaryrefslogtreecommitdiffstats
path: root/drivers/staging/unisys/visorbus
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/unisys/visorbus')
-rw-r--r--drivers/staging/unisys/visorbus/controlvmchannel.h16
-rw-r--r--drivers/staging/unisys/visorbus/vbuschannel.h8
-rw-r--r--drivers/staging/unisys/visorbus/visorbus_main.c44
-rw-r--r--drivers/staging/unisys/visorbus/visorbus_private.h6
-rw-r--r--drivers/staging/unisys/visorbus/visorchannel.c46
-rw-r--r--drivers/staging/unisys/visorbus/visorchipset.c33
6 files changed, 77 insertions, 76 deletions
diff --git a/drivers/staging/unisys/visorbus/controlvmchannel.h b/drivers/staging/unisys/visorbus/controlvmchannel.h
index 96ac574ef1e7..ee2121238654 100644
--- a/drivers/staging/unisys/visorbus/controlvmchannel.h
+++ b/drivers/staging/unisys/visorbus/controlvmchannel.h
@@ -20,9 +20,9 @@
#include "channel.h"
/* {2B3C2D10-7EF5-4ad8-B966-3448B7386B3D} */
-#define VISOR_CONTROLVM_CHANNEL_UUID \
- UUID_LE(0x2b3c2d10, 0x7ef5, 0x4ad8, \
- 0xb9, 0x66, 0x34, 0x48, 0xb7, 0x38, 0x6b, 0x3d)
+#define VISOR_CONTROLVM_CHANNEL_GUID \
+ GUID_INIT(0x2b3c2d10, 0x7ef5, 0x4ad8, \
+ 0xb9, 0x66, 0x34, 0x48, 0xb7, 0x38, 0x6b, 0x3d)
#define CONTROLVM_MESSAGE_MAX 64
@@ -261,8 +261,8 @@ struct controlvm_packet_device_create {
u32 dev_no;
u64 channel_addr;
u64 channel_bytes;
- uuid_le data_type_uuid;
- uuid_le dev_inst_uuid;
+ guid_t data_type_guid;
+ guid_t dev_inst_guid;
struct irq_info intr;
} __packed;
@@ -372,8 +372,8 @@ struct controlvm_message_packet {
u32 dev_count;
u64 channel_addr;
u64 channel_bytes;
- uuid_le bus_data_type_uuid;
- uuid_le bus_inst_uuid;
+ guid_t bus_data_type_guid;
+ guid_t bus_inst_guid;
} __packed create_bus;
struct {
u32 bus_no;
@@ -591,7 +591,7 @@ struct visor_controlvm_parameters_header {
u32 client_length;
u32 name_offset;
u32 name_length;
- uuid_le id;
+ guid_t id;
u32 revision;
/* Natural alignment */
u32 reserved;
diff --git a/drivers/staging/unisys/visorbus/vbuschannel.h b/drivers/staging/unisys/visorbus/vbuschannel.h
index 2c820e21f1b7..61e38bd87373 100644
--- a/drivers/staging/unisys/visorbus/vbuschannel.h
+++ b/drivers/staging/unisys/visorbus/vbuschannel.h
@@ -30,9 +30,9 @@
#include "channel.h"
/* {193b331b-c58f-11da-95a9-00e08161165f} */
-#define VISOR_VBUS_CHANNEL_UUID \
- UUID_LE(0x193b331b, 0xc58f, 0x11da, \
- 0x95, 0xa9, 0x0, 0xe0, 0x81, 0x61, 0x16, 0x5f)
+#define VISOR_VBUS_CHANNEL_GUID \
+ GUID_INIT(0x193b331b, 0xc58f, 0x11da, \
+ 0x95, 0xa9, 0x0, 0xe0, 0x81, 0x61, 0x16, 0x5f)
/*
* Must increment this whenever you insert or delete fields within this channel
@@ -43,8 +43,6 @@
*/
#define VISOR_VBUS_CHANNEL_VERSIONID 1
-static const uuid_le visor_vbus_channel_uuid = VISOR_VBUS_CHANNEL_UUID;
-
/* struct visor_vbus_deviceinfo
* @devtype: Short string identifying the device type.
* @drvname: Driver .sys file name.
diff --git a/drivers/staging/unisys/visorbus/visorbus_main.c b/drivers/staging/unisys/visorbus/visorbus_main.c
index ff80ab248a35..e89cee0a0a7c 100644
--- a/drivers/staging/unisys/visorbus/visorbus_main.c
+++ b/drivers/staging/unisys/visorbus/visorbus_main.c
@@ -21,6 +21,8 @@
#include "visorbus.h"
#include "visorbus_private.h"
+static const guid_t visor_vbus_channel_guid = VISOR_VBUS_CHANNEL_GUID;
+
/* Display string that is guaranteed to be no longer the 99 characters */
#define LINESIZE 99
#define POLLJIFFIES_NORMALCHANNEL 10
@@ -38,11 +40,11 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct visor_device *vdev;
- uuid_le guid;
+ const guid_t *guid;
vdev = to_visor_device(dev);
- guid = visorchannel_get_uuid(vdev->visorchannel);
- return sprintf(buf, "visorbus:%pUl\n", &guid);
+ guid = visorchannel_get_guid(vdev->visorchannel);
+ return sprintf(buf, "visorbus:%pUl\n", guid);
}
static DEVICE_ATTR_RO(modalias);
@@ -78,18 +80,18 @@ static LIST_HEAD(list_all_device_instances);
* is used to pass the EFI_DIAG_CAPTURE_PROTOCOL needed to log messages.
*/
int visor_check_channel(struct channel_header *ch,
- uuid_le expected_uuid,
+ const guid_t *expected_guid,
char *chname,
u64 expected_min_bytes,
u32 expected_version,
u64 expected_signature)
{
- if (uuid_le_cmp(expected_uuid, NULL_UUID_LE) != 0) {
+ if (!guid_is_null(expected_guid)) {
/* caller wants us to verify type GUID */
- if (uuid_le_cmp(ch->chtype, expected_uuid) != 0) {
+ if (!guid_equal(&ch->chtype, expected_guid)) {
pr_err("Channel mismatch on channel=%s(%pUL) field=type expected=%pUL actual=%pUL\n",
- chname, &expected_uuid,
- &expected_uuid, &ch->chtype);
+ chname, expected_guid,
+ expected_guid, &ch->chtype);
return 0;
}
}
@@ -97,7 +99,7 @@ int visor_check_channel(struct channel_header *ch,
if (expected_min_bytes > 0) {
if (ch->size < expected_min_bytes) {
pr_err("Channel mismatch on channel=%s(%pUL) field=size expected=0x%-8.8Lx actual=0x%-8.8Lx\n",
- chname, &expected_uuid,
+ chname, expected_guid,
(unsigned long long)expected_min_bytes,
ch->size);
return 0;
@@ -107,7 +109,7 @@ int visor_check_channel(struct channel_header *ch,
if (expected_version > 0) {
if (ch->version_id != expected_version) {
pr_err("Channel mismatch on channel=%s(%pUL) field=version expected=0x%-8.8lx actual=0x%-8.8x\n",
- chname, &expected_uuid,
+ chname, expected_guid,
(unsigned long)expected_version,
ch->version_id);
return 0;
@@ -117,7 +119,7 @@ int visor_check_channel(struct channel_header *ch,
if (expected_signature > 0) {
if (ch->signature != expected_signature) {
pr_err("Channel mismatch on channel=%s(%pUL) field=signature expected=0x%-8.8Lx actual=0x%-8.8Lx\n",
- chname, &expected_uuid,
+ chname, expected_guid,
expected_signature, ch->signature);
return 0;
}
@@ -129,12 +131,12 @@ EXPORT_SYMBOL_GPL(visor_check_channel);
static int visorbus_uevent(struct device *xdev, struct kobj_uevent_env *env)
{
struct visor_device *dev;
- uuid_le guid;
+ const guid_t *guid;
dev = to_visor_device(xdev);
- guid = visorchannel_get_uuid(dev->visorchannel);
+ guid = visorchannel_get_guid(dev->visorchannel);
- return add_uevent_var(env, "MODALIAS=visorbus:%pUl", &guid);
+ return add_uevent_var(env, "MODALIAS=visorbus:%pUl", guid);
}
/*
@@ -148,23 +150,21 @@ static int visorbus_uevent(struct device *xdev, struct kobj_uevent_env *env)
*/
static int visorbus_match(struct device *xdev, struct device_driver *xdrv)
{
- uuid_le channel_type;
+ const guid_t *channel_type;
int i;
struct visor_device *dev;
struct visor_driver *drv;
dev = to_visor_device(xdev);
- channel_type = visorchannel_get_uuid(dev->visorchannel);
+ channel_type = visorchannel_get_guid(dev->visorchannel);
drv = to_visor_driver(xdrv);
if (!drv->channel_types)
return 0;
for (i = 0;
- (uuid_le_cmp(drv->channel_types[i].guid, NULL_UUID_LE) != 0) ||
- (drv->channel_types[i].name);
+ !guid_is_null(&drv->channel_types[i].guid) || drv->channel_types[i].name;
i++)
- if (uuid_le_cmp(drv->channel_types[i].guid,
- channel_type) == 0)
+ if (guid_equal(&drv->channel_types[i].guid, channel_type))
return i + 1;
return 0;
@@ -330,7 +330,7 @@ static ssize_t partition_guid_show(struct device *dev,
{
struct visor_device *vdev = to_visor_device(dev);
- return sprintf(buf, "{%pUb}\n", &vdev->partition_uuid);
+ return sprintf(buf, "{%pUb}\n", &vdev->partition_guid);
}
static DEVICE_ATTR_RO(partition_guid);
@@ -729,7 +729,7 @@ static int get_vbus_header_info(struct visorchannel *chan,
int err;
if (!visor_check_channel(visorchannel_get_header(chan),
- visor_vbus_channel_uuid,
+ &visor_vbus_channel_guid,
"vbus",
sizeof(struct visor_vbus_channel),
VISOR_VBUS_CHANNEL_VERSIONID,
diff --git a/drivers/staging/unisys/visorbus/visorbus_private.h b/drivers/staging/unisys/visorbus/visorbus_private.h
index 7ccf7565eb2c..d91c5b5f263d 100644
--- a/drivers/staging/unisys/visorbus/visorbus_private.h
+++ b/drivers/staging/unisys/visorbus/visorbus_private.h
@@ -44,10 +44,10 @@ void visorbus_exit(void);
struct visorchannel *visorchannel_create(u64 physaddr,
unsigned long channel_bytes,
- gfp_t gfp, uuid_le guid);
+ gfp_t gfp, const guid_t *guid);
struct visorchannel *visorchannel_create_with_lock(u64 physaddr,
unsigned long channel_bytes,
- gfp_t gfp, uuid_le guid);
+ gfp_t gfp, const guid_t *guid);
void visorchannel_destroy(struct visorchannel *channel);
int visorchannel_read(struct visorchannel *channel, ulong offset,
void *dest, ulong nbytes);
@@ -60,6 +60,6 @@ char *visorchannel_zoneid(struct visorchannel *channel, char *s);
u64 visorchannel_get_clientpartition(struct visorchannel *channel);
int visorchannel_set_clientpartition(struct visorchannel *channel,
u64 partition_handle);
-char *visorchannel_uuid_id(uuid_le *guid, char *s);
+char *visorchannel_guid_id(const guid_t *guid, char *s);
void *visorchannel_get_header(struct visorchannel *channel);
#endif
diff --git a/drivers/staging/unisys/visorbus/visorchannel.c b/drivers/staging/unisys/visorbus/visorchannel.c
index c7eea655a86e..0b20b0efc7ff 100644
--- a/drivers/staging/unisys/visorbus/visorchannel.c
+++ b/drivers/staging/unisys/visorbus/visorchannel.c
@@ -29,10 +29,10 @@
#define VISOR_DRV_NAME "visorchannel"
#define VISOR_CONSOLEVIDEO_CHANNEL_GUID \
- UUID_LE(0x3cd6e705, 0xd6a2, 0x4aa5, \
- 0xad, 0x5c, 0x7b, 0x8, 0x88, 0x9d, 0xff, 0xe2)
+ GUID_INIT(0x3cd6e705, 0xd6a2, 0x4aa5, \
+ 0xad, 0x5c, 0x7b, 0x8, 0x88, 0x9d, 0xff, 0xe2)
-static const uuid_le visor_video_guid = VISOR_CONSOLEVIDEO_CHANNEL_GUID;
+static const guid_t visor_video_guid = VISOR_CONSOLEVIDEO_CHANNEL_GUID;
struct visorchannel {
u64 physaddr;
@@ -40,7 +40,7 @@ struct visorchannel {
void *mapped;
bool requested;
struct channel_header chan_hdr;
- uuid_le guid;
+ guid_t guid;
/*
* channel creator knows if more than one
* thread will be inserting or removing
@@ -50,8 +50,8 @@ struct visorchannel {
spinlock_t insert_lock;
/* protect tail writes in chan_hdr */
spinlock_t remove_lock;
- uuid_le type;
- uuid_le inst;
+ guid_t type;
+ guid_t inst;
};
void visorchannel_destroy(struct visorchannel *channel)
@@ -76,7 +76,7 @@ ulong visorchannel_get_nbytes(struct visorchannel *channel)
return channel->nbytes;
}
-char *visorchannel_uuid_id(uuid_le *guid, char *s)
+char *visorchannel_guid_id(const guid_t *guid, char *s)
{
sprintf(s, "%pUL", guid);
return s;
@@ -84,12 +84,12 @@ char *visorchannel_uuid_id(uuid_le *guid, char *s)
char *visorchannel_id(struct visorchannel *channel, char *s)
{
- return visorchannel_uuid_id(&channel->guid, s);
+ return visorchannel_guid_id(&channel->guid, s);
}
char *visorchannel_zoneid(struct visorchannel *channel, char *s)
{
- return visorchannel_uuid_id(&channel->chan_hdr.zone_uuid, s);
+ return visorchannel_guid_id(&channel->chan_hdr.zone_guid, s);
}
u64 visorchannel_get_clientpartition(struct visorchannel *channel)
@@ -105,16 +105,16 @@ int visorchannel_set_clientpartition(struct visorchannel *channel,
}
/**
- * visorchannel_get_uuid() - queries the UUID of the designated channel
+ * visorchannel_get_guid() - queries the GUID of the designated channel
* @channel: the channel to query
*
- * Return: the UUID of the provided channel
+ * Return: the GUID of the provided channel
*/
-uuid_le visorchannel_get_uuid(struct visorchannel *channel)
+const guid_t *visorchannel_get_guid(struct visorchannel *channel)
{
- return channel->guid;
+ return &channel->guid;
}
-EXPORT_SYMBOL_GPL(visorchannel_get_uuid);
+EXPORT_SYMBOL_GPL(visorchannel_get_guid);
int visorchannel_read(struct visorchannel *channel, ulong offset, void *dest,
ulong nbytes)
@@ -365,7 +365,7 @@ static int signalinsert_inner(struct visorchannel *channel, u32 queue,
* back-end), in which case the actual channel size will be
* read from the channel header in memory
* @gfp: gfp_t to use when allocating memory for the data struct
- * @guid: uuid that identifies channel type; this may 0 if the channel
+ * @guid: GUID that identifies channel type; this may 0 if the channel
* has already been initialized in memory (which is true for all
* channels provided to guest environments by the s-Par
* back-end), in which case the actual channel guid will be
@@ -380,7 +380,7 @@ static int signalinsert_inner(struct visorchannel *channel, u32 queue,
static struct visorchannel *visorchannel_create_guts(
u64 physaddr,
unsigned long channel_bytes,
- gfp_t gfp, uuid_le guid,
+ gfp_t gfp, const guid_t *guid,
bool needs_lock)
{
struct visorchannel *channel;
@@ -406,7 +406,7 @@ static struct visorchannel *visorchannel_create_guts(
* release later on.
*/
channel->requested = request_mem_region(physaddr, size, VISOR_DRV_NAME);
- if (!channel->requested && uuid_le_cmp(guid, visor_video_guid))
+ if (!channel->requested && !guid_equal(guid, &visor_video_guid))
/* we only care about errors if this is not the video channel */
goto err_destroy_channel;
@@ -427,8 +427,8 @@ static struct visorchannel *visorchannel_create_guts(
/* we had better be a CLIENT of this channel */
if (channel_bytes == 0)
channel_bytes = (ulong)channel->chan_hdr.size;
- if (uuid_le_cmp(guid, NULL_UUID_LE) == 0)
- guid = channel->chan_hdr.chtype;
+ if (guid_is_null(guid))
+ guid = &channel->chan_hdr.chtype;
memunmap(channel->mapped);
if (channel->requested)
@@ -436,7 +436,7 @@ static struct visorchannel *visorchannel_create_guts(
channel->mapped = NULL;
channel->requested = request_mem_region(channel->physaddr,
channel_bytes, VISOR_DRV_NAME);
- if (!channel->requested && uuid_le_cmp(guid, visor_video_guid))
+ if (!channel->requested && !guid_equal(guid, &visor_video_guid))
/* we only care about errors if this is not the video channel */
goto err_destroy_channel;
@@ -448,7 +448,7 @@ static struct visorchannel *visorchannel_create_guts(
}
channel->nbytes = channel_bytes;
- channel->guid = guid;
+ guid_copy(&channel->guid, guid);
return channel;
err_destroy_channel:
@@ -458,7 +458,7 @@ err_destroy_channel:
struct visorchannel *visorchannel_create(u64 physaddr,
unsigned long channel_bytes,
- gfp_t gfp, uuid_le guid)
+ gfp_t gfp, const guid_t *guid)
{
return visorchannel_create_guts(physaddr, channel_bytes, gfp, guid,
false);
@@ -466,7 +466,7 @@ struct visorchannel *visorchannel_create(u64 physaddr,
struct visorchannel *visorchannel_create_with_lock(u64 physaddr,
unsigned long channel_bytes,
- gfp_t gfp, uuid_le guid)
+ gfp_t gfp, const guid_t *guid)
{
return visorchannel_create_guts(physaddr, channel_bytes, gfp, guid,
true);
diff --git a/drivers/staging/unisys/visorbus/visorchipset.c b/drivers/staging/unisys/visorbus/visorchipset.c
index 12def210345a..8dbde1071cf3 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -22,6 +22,10 @@
#include "visorbus_private.h"
#include "vmcallinterface.h"
+static const guid_t visor_vhba_channel_guid = VISOR_VHBA_CHANNEL_GUID;
+static const guid_t visor_siovm_guid = VISOR_SIOVM_GUID;
+static const guid_t visor_controlvm_channel_guid = VISOR_CONTROLVM_CHANNEL_GUID;
+
#define POLLJIFFIES_CONTROLVMCHANNEL_FAST 1
#define POLLJIFFIES_CONTROLVMCHANNEL_SLOW 100
@@ -267,13 +271,12 @@ static ssize_t remaining_steps_store(struct device *dev,
}
static DEVICE_ATTR_RW(remaining_steps);
-static uuid_le
-parser_id_get(struct parser_context *ctx)
+static const guid_t *parser_id_get(struct parser_context *ctx)
{
struct visor_controlvm_parameters_header *phdr = NULL;
phdr = (struct visor_controlvm_parameters_header *)(ctx->data);
- return phdr->id;
+ return &phdr->id;
}
static void parser_done(struct parser_context *ctx)
@@ -588,7 +591,7 @@ visorbus_create(struct controlvm_message *inmsg)
bus_info->chipset_bus_no = bus_no;
bus_info->chipset_dev_no = BUS_ROOT_DEVICE;
- if (uuid_le_cmp(cmd->create_bus.bus_inst_uuid, visor_siovm_uuid) == 0) {
+ if (guid_equal(&cmd->create_bus.bus_inst_guid, &visor_siovm_guid)) {
err = save_crash_message(inmsg, CRASH_BUS);
if (err)
goto err_free_bus_info;
@@ -610,7 +613,7 @@ visorbus_create(struct controlvm_message *inmsg)
visorchannel = visorchannel_create(cmd->create_bus.channel_addr,
cmd->create_bus.channel_bytes,
GFP_KERNEL,
- cmd->create_bus.bus_data_type_uuid);
+ &cmd->create_bus.bus_data_type_guid);
if (!visorchannel) {
err = -ENOMEM;
goto err_free_pending_msg;
@@ -715,7 +718,9 @@ visorbus_configure(struct controlvm_message *inmsg,
goto err_respond;
if (parser_ctx) {
- bus_info->partition_uuid = parser_id_get(parser_ctx);
+ const guid_t *partition_guid = parser_id_get(parser_ctx);
+
+ guid_copy(&bus_info->partition_guid, partition_guid);
bus_info->name = parser_name_get(parser_ctx);
}
@@ -773,7 +778,7 @@ visorbus_device_create(struct controlvm_message *inmsg)
dev_info->chipset_bus_no = bus_no;
dev_info->chipset_dev_no = dev_no;
- dev_info->inst = cmd->create_device.dev_inst_uuid;
+ guid_copy(&dev_info->inst, &cmd->create_device.dev_inst_guid);
/* not sure where the best place to set the 'parent' */
dev_info->device.parent = &bus_info->device;
@@ -782,7 +787,7 @@ visorbus_device_create(struct controlvm_message *inmsg)
visorchannel_create_with_lock(cmd->create_device.channel_addr,
cmd->create_device.channel_bytes,
GFP_KERNEL,
- cmd->create_device.data_type_uuid);
+ &cmd->create_device.data_type_guid);
if (!visorchannel) {
dev_err(&chipset_dev->acpi_device->dev,
"failed to create visorchannel: %d/%d\n",
@@ -791,9 +796,8 @@ visorbus_device_create(struct controlvm_message *inmsg)
goto err_free_dev_info;
}
dev_info->visorchannel = visorchannel;
- dev_info->channel_type_guid = cmd->create_device.data_type_uuid;
- if (uuid_le_cmp(cmd->create_device.data_type_uuid,
- visor_vhba_channel_uuid) == 0) {
+ guid_copy(&dev_info->channel_type_guid, &cmd->create_device.data_type_guid);
+ if (guid_equal(&cmd->create_device.data_type_guid, &visor_vhba_channel_guid)) {
err = save_crash_message(inmsg, CRASH_DEV);
if (err)
goto err_destroy_visorchannel;
@@ -1787,7 +1791,6 @@ visorchipset_init(struct acpi_device *acpi_device)
{
int err = -ENODEV;
u64 addr;
- uuid_le uuid = VISOR_CONTROLVM_CHANNEL_UUID;
struct visorchannel *controlvm_channel;
chipset_dev = kzalloc(sizeof(*chipset_dev), GFP_KERNEL);
@@ -1801,8 +1804,8 @@ visorchipset_init(struct acpi_device *acpi_device)
acpi_device->driver_data = chipset_dev;
chipset_dev->acpi_device = acpi_device;
chipset_dev->poll_jiffies = POLLJIFFIES_CONTROLVMCHANNEL_FAST;
- controlvm_channel = visorchannel_create_with_lock(addr,
- 0, GFP_KERNEL, uuid);
+ controlvm_channel = visorchannel_create_with_lock(addr, 0, GFP_KERNEL,
+ &visor_controlvm_channel_guid);
if (!controlvm_channel)
goto error_free_chipset_dev;
@@ -1814,7 +1817,7 @@ visorchipset_init(struct acpi_device *acpi_device)
goto error_destroy_channel;
if (!visor_check_channel(visorchannel_get_header(controlvm_channel),
- VISOR_CONTROLVM_CHANNEL_UUID,
+ &visor_controlvm_channel_guid,
"controlvm",
sizeof(struct visor_controlvm_channel),
VISOR_CONTROLVM_CHANNEL_VERSIONID,