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>
This commit is contained in:
parent
69141bb8eb
commit
a4ed0ba9af
1 changed files with 22 additions and 26 deletions
|
@ -318,42 +318,38 @@ sig_read_header(struct visorchannel *channel, u32 queue,
|
||||||
return TRUE;
|
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)
|
|
||||||
{
|
|
||||||
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
|
static inline BOOL
|
||||||
sig_read_data(struct visorchannel *channel, u32 queue,
|
sig_read_data(struct visorchannel *channel, u32 queue,
|
||||||
struct signal_queue_header *sig_hdr, u32 slot, void *data)
|
struct signal_queue_header *sig_hdr, u32 slot, void *data)
|
||||||
{
|
{
|
||||||
return sig_do_data(channel, queue, sig_hdr, slot, data, FALSE);
|
int err;
|
||||||
|
int signal_data_offset = SIG_DATA_OFFSET(&channel->chan_hdr, queue,
|
||||||
|
sig_hdr, slot);
|
||||||
|
|
||||||
|
err = visor_memregion_read(channel->memregion,
|
||||||
|
signal_data_offset,
|
||||||
|
data, sig_hdr->signal_size);
|
||||||
|
if (err)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline BOOL
|
static inline BOOL
|
||||||
sig_write_data(struct visorchannel *channel, u32 queue,
|
sig_write_data(struct visorchannel *channel, u32 queue,
|
||||||
struct signal_queue_header *sig_hdr, u32 slot, void *data)
|
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
|
static BOOL
|
||||||
|
|
Loading…
Add table
Reference in a new issue