Skip to content

Commit

Permalink
staging: unisys: Eliminate visor_memregion_write()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jes Sorensen authored and Greg Kroah-Hartman committed May 8, 2015
1 parent 3b5bd6c commit 34b479a
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 32 deletions.
34 changes: 16 additions & 18 deletions drivers/staging/unisys/visorbus/visorchannel.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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;

Expand Down Expand Up @@ -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;
}

Expand Down
2 changes: 0 additions & 2 deletions drivers/staging/unisys/visorutil/memregion.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
12 changes: 0 additions & 12 deletions drivers/staging/unisys/visorutil/memregion_direct.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

0 comments on commit 34b479a

Please sign in to comment.