Commit c37df5f0 authored by Jes Sorensen's avatar Jes Sorensen Committed by Greg Kroah-Hartman

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: default avatarJes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: default avatarBenjamin Romer <benjamin.romer@unisys.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 1dbdf104
...@@ -214,17 +214,18 @@ visorchannel_clear(struct visorchannel *channel, ulong offset, u8 ch, ...@@ -214,17 +214,18 @@ visorchannel_clear(struct visorchannel *channel, ulong offset, u8 ch,
ulong nbytes) ulong nbytes)
{ {
int err; int err;
int bufsize = 65536; int bufsize = PAGE_SIZE;
int written = 0; int written = 0;
u8 *buf; u8 *buf;
buf = vmalloc(bufsize); buf = (u8 *) __get_free_page(GFP_KERNEL);
if (!buf) if (!buf)
return -ENOMEM; return -ENOMEM;
memset(buf, ch, bufsize); memset(buf, ch, bufsize);
while (nbytes > 0) { while (nbytes > 0) {
ulong thisbytes = bufsize; int thisbytes = bufsize;
if (nbytes < thisbytes) if (nbytes < thisbytes)
thisbytes = nbytes; thisbytes = nbytes;
...@@ -239,7 +240,7 @@ visorchannel_clear(struct visorchannel *channel, ulong offset, u8 ch, ...@@ -239,7 +240,7 @@ visorchannel_clear(struct visorchannel *channel, ulong offset, u8 ch,
err = 0; err = 0;
cleanup: cleanup:
vfree(buf); free_page((unsigned long) buf);
return err; return err;
} }
EXPORT_SYMBOL_GPL(visorchannel_clear); EXPORT_SYMBOL_GPL(visorchannel_clear);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment