mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 06:10:56 +00:00
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;
|
||||
}
|
||||
|
||||
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
|
||||
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);
|
||||
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
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue