Commit a4ed0ba9 authored by Prarit Bhargava's avatar Prarit Bhargava Committed by Greg Kroah-Hartman
Browse files

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: default avatarPrarit Bhargava <prarit@redhat.com>
Signed-off-by: default avatarBenjamin Romer <benjamin.romer@unisys.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 69141bb8
Loading
Loading
Loading
Loading
+21 −25
Original line number Diff line number Diff line
@@ -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)
static inline BOOL
sig_read_data(struct visorchannel *channel, u32 queue,
	      struct signal_queue_header *sig_hdr, u32 slot, void *data)
{
	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);
	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