From: Benjamin Romer Date: Thu, 23 Oct 2014 18:30:11 +0000 (-0400) Subject: staging: unisys: refactor ULTRA_check_channel_server() X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=10c5ef69482d77f80678c2aa102b38cc09b241b5;p=openwrt%2Fstaging%2Fblogic.git staging: unisys: refactor ULTRA_check_channel_server() Rename spar_check_channel_server() to spar_check_channel_server(), remove unused parameters fileName, lineNumber, and logCtx, update references to the function and remove unused parameters in macros that call it, and fix CamelCase names: typeGuid => typeuuid channelName => name expectedMinBytes => expected_min_bytes actualBytes => actual_bytes Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/unisys/common-spar/include/channels/channel.h b/drivers/staging/unisys/common-spar/include/channels/channel.h index 865d9a4883a3..6fb6e5b3ddaf 100644 --- a/drivers/staging/unisys/common-spar/include/channels/channel.h +++ b/drivers/staging/unisys/common-spar/include/channels/channel.h @@ -348,6 +348,26 @@ spar_check_channel_client(void __iomem *ch, return 1; } +/* Generic function useful for validating any type of channel when it is about + * to be initialized by the server of the channel. + * Note that is only needed for callers in the EFI environment, and + * is used to pass the EFI_DIAG_CAPTURE_PROTOCOL needed to log messages. + */ +static inline int spar_check_channel_server(uuid_le typeuuid, char *name, + u64 expected_min_bytes, + u64 actual_bytes) +{ + if (expected_min_bytes > 0) /* caller wants us to verify + * channel size */ + if (actual_bytes < expected_min_bytes) { + pr_err("Channel mismatch on channel=%s(%pUL) field=size expected=0x%-8.8llx actual=0x%-8.8llx\n", + name, &typeuuid, expected_min_bytes, + actual_bytes); + return 0; + } + return 1; +} + /* Given a file pathname (with '/' or '\' separating directory nodes), * returns a pointer to the beginning of a node within that pathname such * that the number of nodes from that pointer to the end of the string is diff --git a/drivers/staging/unisys/common-spar/include/channels/controlvmchannel.h b/drivers/staging/unisys/common-spar/include/channels/controlvmchannel.h index 9a7531f66fdb..ce601aecee65 100644 --- a/drivers/staging/unisys/common-spar/include/channels/controlvmchannel.h +++ b/drivers/staging/unisys/common-spar/include/channels/controlvmchannel.h @@ -52,6 +52,11 @@ static const uuid_le UltraControlvmChannelProtocolGuid = sizeof(ULTRA_CONTROLVM_CHANNEL_PROTOCOL), \ ULTRA_CONTROLVM_CHANNEL_PROTOCOL_VERSIONID, \ ULTRA_CONTROLVM_CHANNEL_PROTOCOL_SIGNATURE)) +#define ULTRA_CONTROLVM_CHANNEL_OK_SERVER(actualBytes) \ + (spar_check_channel_server(UltraControlvmChannelProtocolGuid, \ + "controlvm", \ + sizeof(ULTRA_CONTROLVM_CHANNEL_PROTOCOL), \ + actualBytes)) #define MY_DEVICE_INDEX 0 #define MAX_MACDATA_LEN 8 /* number of bytes for MAC address in config packet */ diff --git a/drivers/staging/unisys/common-spar/include/channels/diagchannel.h b/drivers/staging/unisys/common-spar/include/channels/diagchannel.h index 97451bab64d2..4132642aa05b 100644 --- a/drivers/staging/unisys/common-spar/include/channels/diagchannel.h +++ b/drivers/staging/unisys/common-spar/include/channels/diagchannel.h @@ -65,11 +65,11 @@ static const uuid_le UltraDiagChannelProtocolGuid = sizeof(ULTRA_DIAG_CHANNEL_PROTOCOL), \ ULTRA_DIAG_CHANNEL_PROTOCOL_VERSIONID, \ ULTRA_DIAG_CHANNEL_PROTOCOL_SIGNATURE)) -#define ULTRA_DIAG_CHANNEL_OK_SERVER(actualBytes, logCtx) \ - (ULTRA_check_channel_server(UltraDiagChannelProtocolGuid, \ - "diag", \ - sizeof(ULTRA_DIAG_CHANNEL_PROTOCOL), \ - actualBytes, __FILE__, __LINE__, logCtx)) +#define ULTRA_DIAG_CHANNEL_OK_SERVER(actualBytes) \ + (spar_check_channel_server(UltraDiagChannelProtocolGuid, \ + "diag", \ + sizeof(ULTRA_DIAG_CHANNEL_PROTOCOL), \ + actualBytes)) #define MAX_MODULE_NAME_SIZE 128 /* Maximum length of module name... */ #define MAX_ADDITIONAL_INFO_SIZE 256 /* Maximum length of any additional info * accompanying event... */ diff --git a/drivers/staging/unisys/common-spar/include/channels/iochannel.h b/drivers/staging/unisys/common-spar/include/channels/iochannel.h index f5fd542bb67f..b1f4a47b3d62 100644 --- a/drivers/staging/unisys/common-spar/include/channels/iochannel.h +++ b/drivers/staging/unisys/common-spar/include/channels/iochannel.h @@ -65,17 +65,26 @@ "vhba", MIN_IO_CHANNEL_SIZE, \ ULTRA_VHBA_CHANNEL_PROTOCOL_VERSIONID, \ ULTRA_VHBA_CHANNEL_PROTOCOL_SIGNATURE)) +#define ULTRA_VHBA_CHANNEL_OK_SERVER(actualBytes) \ + (spar_check_channel_server(spar_vhba_channel_protocol_uuid, \ + "vhba", MIN_IO_CHANNEL_SIZE, actualBytes)) #define SPAR_VNIC_CHANNEL_OK_CLIENT(pChannel, logCtx) \ (spar_check_channel_client(pChannel, spar_vnic_channel_protocol_uuid, \ "vnic", MIN_IO_CHANNEL_SIZE, \ ULTRA_VNIC_CHANNEL_PROTOCOL_VERSIONID, \ ULTRA_VNIC_CHANNEL_PROTOCOL_SIGNATURE)) +#define ULTRA_VNIC_CHANNEL_OK_SERVER(actualBytes) \ + (spar_check_channel_server(spar_vnic_channel_protocol_uuid, \ + "vnic", MIN_IO_CHANNEL_SIZE, actualBytes)) #define SPAR_VSWITCH_CHANNEL_OK_CLIENT(pChannel, logCtx) \ (spar_check_channel_client(pChannel, UltraVswitchChannelProtocolGuid, \ "vswitch", MIN_IO_CHANNEL_SIZE, \ ULTRA_VSWITCH_CHANNEL_PROTOCOL_VERSIONID, \ ULTRA_VSWITCH_CHANNEL_PROTOCOL_SIGNATURE)) - +#define ULTRA_VSWITCH_CHANNEL_OK_SERVER(actualBytes) \ + (spar_check_channel_server(UltraVswitchChannelProtocolGuid, \ + "vswitch", MIN_IO_CHANNEL_SIZE, \ + actualBytes)) /* * Everything necessary to handle SCSI & NIC traffic between Guest Partition and * IO Partition is defined below. */ diff --git a/drivers/staging/unisys/common-spar/include/channels/vbuschannel.h b/drivers/staging/unisys/common-spar/include/channels/vbuschannel.h index 7b32aa9fb90b..9329e2838fde 100644 --- a/drivers/staging/unisys/common-spar/include/channels/vbuschannel.h +++ b/drivers/staging/unisys/common-spar/include/channels/vbuschannel.h @@ -51,6 +51,12 @@ static const uuid_le UltraVbusChannelProtocolGuid = ULTRA_VBUS_CHANNEL_PROTOCOL_VERSIONID, \ ULTRA_VBUS_CHANNEL_PROTOCOL_SIGNATURE)) \ +#define ULTRA_VBUS_CHANNEL_OK_SERVER(actualBytes) \ + (spar_check_channel_server(UltraVbusChannelProtocolGuid, \ + "vbus", \ + sizeof(struct ultra_vbus_channel_protocol),\ + actualBytes)) + #pragma pack(push, 1) /* both GCC and VC now allow this pragma */ typedef struct _ULTRA_VBUS_HEADERINFO { u32 structBytes; /* size of this struct in bytes */