summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJes Sorensen <Jes.Sorensen@redhat.com>2015-05-05 22:36:59 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-05-08 13:27:30 (GMT)
commit34b479ae19f318a74eae87bd8f4b96acb0d7a6ac (patch)
treeb3ba1ab370bb517a736c1005084ed96ae0e74b91
parent3b5bd6cca5b5d26cea73bfa2f078498a7f64957e (diff)
downloadlinux-34b479ae19f318a74eae87bd8f4b96acb0d7a6ac.tar.xz
staging: unisys: Eliminate visor_memregion_write()
visorchannel's signal code should call visorchannel_write() directly. This is more consistent and cleaner, and allows us to remove the last memregion call. Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/unisys/visorbus/visorchannel.c34
-rw-r--r--drivers/staging/unisys/visorutil/memregion.h2
-rw-r--r--drivers/staging/unisys/visorutil/memregion_direct.c12
3 files changed, 16 insertions, 32 deletions
diff --git a/drivers/staging/unisys/visorbus/visorchannel.c b/drivers/staging/unisys/visorbus/visorchannel.c
index 549128d..564d325 100644
--- a/drivers/staging/unisys/visorbus/visorchannel.c
+++ b/drivers/staging/unisys/visorbus/visorchannel.c
@@ -250,8 +250,8 @@ visorchannel_clear(struct visorchannel *channel, ulong offset, u8 ch,
if (nbytes < thisbytes)
thisbytes = nbytes;
- err = visor_memregion_write(&channel->memregion,
- offset + written, buf, thisbytes);
+ err = visorchannel_write(channel, offset + written,
+ buf, thisbytes);
if (err)
goto cleanup;
@@ -290,12 +290,12 @@ EXPORT_SYMBOL_GPL(visorchannel_get_header);
/** Write the contents of a specific field within a SIGNAL_QUEUE_HEADER back
* into host memory
*/
-#define SIG_WRITE_FIELD(channel, queue, sig_hdr, FIELD) \
- (visor_memregion_write(&channel->memregion, \
- SIG_QUEUE_OFFSET(&channel->chan_hdr, queue)+ \
- offsetof(struct signal_queue_header, FIELD),\
- &((sig_hdr)->FIELD), \
- sizeof((sig_hdr)->FIELD)) >= 0)
+#define SIG_WRITE_FIELD(channel, queue, sig_hdr, FIELD) \
+ (visorchannel_write(channel, \
+ SIG_QUEUE_OFFSET(&channel->chan_hdr, queue)+ \
+ offsetof(struct signal_queue_header, FIELD), \
+ &((sig_hdr)->FIELD), \
+ sizeof((sig_hdr)->FIELD)) >= 0)
static BOOL
sig_read_header(struct visorchannel *channel, u32 queue,
@@ -340,9 +340,8 @@ sig_write_data(struct visorchannel *channel, u32 queue,
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);
+ err = visorchannel_write(channel, signal_data_offset,
+ data, sig_hdr->signal_size);
if (err)
return FALSE;
@@ -403,13 +402,12 @@ signalinsert_inner(struct visorchannel *channel, u32 queue, void *msg)
sig_hdr.head = ((sig_hdr.head + 1) % sig_hdr.max_slots);
if (sig_hdr.head == sig_hdr.tail) {
sig_hdr.num_overflows++;
- visor_memregion_write(&channel->memregion,
- SIG_QUEUE_OFFSET(&channel->chan_hdr,
- queue) +
- offsetof(struct signal_queue_header,
- num_overflows),
- &(sig_hdr.num_overflows),
- sizeof(sig_hdr.num_overflows));
+ visorchannel_write(channel,
+ SIG_QUEUE_OFFSET(&channel->chan_hdr, queue) +
+ offsetof(struct signal_queue_header,
+ num_overflows),
+ &(sig_hdr.num_overflows),
+ sizeof(sig_hdr.num_overflows));
return FALSE;
}
diff --git a/drivers/staging/unisys/visorutil/memregion.h b/drivers/staging/unisys/visorutil/memregion.h
index 4122b48..62036cd 100644
--- a/drivers/staging/unisys/visorutil/memregion.h
+++ b/drivers/staging/unisys/visorutil/memregion.h
@@ -29,8 +29,6 @@ struct memregion {
void __iomem *mapped;
};
-int visor_memregion_write(struct memregion *memregion,
- ulong offset, void *src, ulong nbytes);
void memregion_dump(struct memregion *memregion, char *s,
ulong off, ulong len, struct seq_file *seq);
diff --git a/drivers/staging/unisys/visorutil/memregion_direct.c b/drivers/staging/unisys/visorutil/memregion_direct.c
index 17b1033..818f6a8 100644
--- a/drivers/staging/unisys/visorutil/memregion_direct.c
+++ b/drivers/staging/unisys/visorutil/memregion_direct.c
@@ -24,15 +24,3 @@
#include "memregion.h"
#define MYDRVNAME "memregion"
-
-int
-visor_memregion_write(struct memregion *memregion, ulong offset, void *src,
- ulong nbytes)
-{
- if (offset + nbytes > memregion->nbytes)
- return -EIO;
-
- memcpy_toio(memregion->mapped + offset, src, nbytes);
- return 0;
-}
-EXPORT_SYMBOL_GPL(visor_memregion_write);