diff options
author | Jes Sorensen <Jes.Sorensen@redhat.com> | 2015-05-05 18:36:59 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-05-08 15:27:30 +0200 |
commit | 34b479ae19f318a74eae87bd8f4b96acb0d7a6ac (patch) | |
tree | b3ba1ab370bb517a736c1005084ed96ae0e74b91 /drivers/staging | |
parent | 3b5bd6cca5b5d26cea73bfa2f078498a7f64957e (diff) |
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>
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/unisys/visorbus/visorchannel.c | 34 | ||||
-rw-r--r-- | drivers/staging/unisys/visorutil/memregion.h | 2 | ||||
-rw-r--r-- | drivers/staging/unisys/visorutil/memregion_direct.c | 12 |
3 files changed, 16 insertions, 32 deletions
diff --git a/drivers/staging/unisys/visorbus/visorchannel.c b/drivers/staging/unisys/visorbus/visorchannel.c index 549128d29892..564d32521a4b 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 4122b48f6707..62036cd6153d 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 17b1033a8826..818f6a8b54c5 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); |