summaryrefslogtreecommitdiffstats
path: root/drivers/staging/unisys/visorbus/visorchannel.c
diff options
context:
space:
mode:
authorPrarit Bhargava2015-05-06 00:36:19 +0200
committerGreg Kroah-Hartman2015-05-08 15:26:01 +0200
commita4ed0ba9afd39b41066c4ead12a2e4e731daee4a (patch)
tree9abfc833dea06c863a470793b734a4b1b8baedff /drivers/staging/unisys/visorbus/visorchannel.c
parentstaging: unisys: visorchannel some general function cleanups (diff)
downloadkernel-qcow2-linux-a4ed0ba9afd39b41066c4ead12a2e4e731daee4a.tar.gz
kernel-qcow2-linux-a4ed0ba9afd39b41066c4ead12a2e4e731daee4a.tar.xz
kernel-qcow2-linux-a4ed0ba9afd39b41066c4ead12a2e4e731daee4a.zip
staging: unisys: fix sig_read_data and sig_read_data functions
The sig_read_data() and sig_write_data() functions are involved in 2 steps of calls. They really don't need to be and this makes for much simpler code. Signed-off-by: Prarit Bhargava <prarit@redhat.com> Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/unisys/visorbus/visorchannel.c')
-rw-r--r--drivers/staging/unisys/visorbus/visorchannel.c46
1 files changed, 21 insertions, 25 deletions
diff --git a/drivers/staging/unisys/visorbus/visorchannel.c b/drivers/staging/unisys/visorbus/visorchannel.c
index 30bedcc72415..d7ddc3af4638 100644
--- a/drivers/staging/unisys/visorbus/visorchannel.c
+++ b/drivers/staging/unisys/visorbus/visorchannel.c
@@ -318,42 +318,38 @@ sig_read_header(struct visorchannel *channel, u32 queue,
return TRUE;
}
-static BOOL
-sig_do_data(struct visorchannel *channel, u32 queue,
- struct signal_queue_header *sig_hdr, u32 slot, void *data,
- BOOL is_write)
+static inline BOOL
+sig_read_data(struct visorchannel *channel, u32 queue,
+ struct signal_queue_header *sig_hdr, u32 slot, void *data)
{
int err;
int signal_data_offset = SIG_DATA_OFFSET(&channel->chan_hdr, queue,
sig_hdr, slot);
- if (is_write) {
- err = visor_memregion_write(channel->memregion,
- signal_data_offset,
- data, sig_hdr->signal_size);
- if (err)
- return FALSE;
- } else {
- err = visor_memregion_read(channel->memregion,
- signal_data_offset,
- data, sig_hdr->signal_size);
- if (err)
- return FALSE;
- }
- return TRUE;
-}
-static inline BOOL
-sig_read_data(struct visorchannel *channel, u32 queue,
- struct signal_queue_header *sig_hdr, u32 slot, void *data)
-{
- return sig_do_data(channel, queue, sig_hdr, slot, data, FALSE);
+ err = visor_memregion_read(channel->memregion,
+ signal_data_offset,
+ data, sig_hdr->signal_size);
+ if (err)
+ return FALSE;
+
+ return TRUE;
}
static inline BOOL
sig_write_data(struct visorchannel *channel, u32 queue,
struct signal_queue_header *sig_hdr, u32 slot, void *data)
{
- return sig_do_data(channel, queue, sig_hdr, slot, data, TRUE);
+ int err;
+ int signal_data_offset = SIG_DATA_OFFSET(&channel->chan_hdr, queue,
+ sig_hdr, slot);
+
+ err = visor_memregion_write(channel->memregion,
+ signal_data_offset,
+ data, sig_hdr->signal_size);
+ if (err)
+ return FALSE;
+
+ return TRUE;
}
static BOOL