From ad44088f08a33894ca9fd65511d05d58434b50f4 Mon Sep 17 00:00:00 2001 From: Jes Sorensen Date: Tue, 5 May 2015 18:36:54 -0400 Subject: [PATCH] staging: unisys: visorchannel_write(): Use memcpy_toio() directly Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visorbus/visorchannel.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/staging/unisys/visorbus/visorchannel.c b/drivers/staging/unisys/visorbus/visorchannel.c index bf2f17ac8e97..bf75aa075b74 100644 --- a/drivers/staging/unisys/visorbus/visorchannel.c +++ b/drivers/staging/unisys/visorbus/visorchannel.c @@ -216,10 +216,15 @@ visorchannel_write(struct visorchannel *channel, ulong offset, { size_t size = sizeof(struct channel_header); + if (offset + nbytes > channel->memregion.nbytes) + return -EIO; + if (!offset && nbytes >= size) memcpy(&channel->chan_hdr, local, size); - return visor_memregion_write(&channel->memregion, - offset, local, nbytes); + + memcpy_toio(channel->memregion.mapped + offset, local, nbytes); + + return 0; } EXPORT_SYMBOL_GPL(visorchannel_write);