staging: unisys: visorchannel_clear(): No need to use vmalloc here

Using a page is sufficient, and avoids the cost of vmalloc/vfree

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>
This commit is contained in:
Jes Sorensen 2015-05-05 18:36:29 -04:00 committed by Greg Kroah-Hartman
parent 1dbdf10471
commit c37df5f0a0
1 changed files with 5 additions and 4 deletions

View File

@ -214,17 +214,18 @@ visorchannel_clear(struct visorchannel *channel, ulong offset, u8 ch,
ulong nbytes)
{
int err;
int bufsize = 65536;
int bufsize = PAGE_SIZE;
int written = 0;
u8 *buf;
buf = vmalloc(bufsize);
buf = (u8 *) __get_free_page(GFP_KERNEL);
if (!buf)
return -ENOMEM;
memset(buf, ch, bufsize);
while (nbytes > 0) {
ulong thisbytes = bufsize;
int thisbytes = bufsize;
if (nbytes < thisbytes)
thisbytes = nbytes;
@ -239,7 +240,7 @@ visorchannel_clear(struct visorchannel *channel, ulong offset, u8 ch,
err = 0;
cleanup:
vfree(buf);
free_page((unsigned long) buf);
return err;
}
EXPORT_SYMBOL_GPL(visorchannel_clear);