Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a800651e authored by Ian Campbell's avatar Ian Campbell Committed by Konrad Rzeszutek Wilk
Browse files

xen/xenbus: don't reimplement kvasprintf via a fixed size buffer



Signed-off-by: default avatarIan Campbell <ian.campbell@citrix.com>
Cc: Haogang Chen <haogangchen@gmail.com>
Acked-by: default avatarJan Beulich <JBeulich@suse.com>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
parent 50bf7379
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -532,21 +532,18 @@ int xenbus_printf(struct xenbus_transaction t,
{
	va_list ap;
	int ret;
#define PRINTF_BUFFER_SIZE 4096
	char *printf_buffer;

	printf_buffer = kmalloc(PRINTF_BUFFER_SIZE, GFP_NOIO | __GFP_HIGH);
	if (printf_buffer == NULL)
		return -ENOMEM;
	char *buf;

	va_start(ap, fmt);
	ret = vsnprintf(printf_buffer, PRINTF_BUFFER_SIZE, fmt, ap);
	buf = kvasprintf(GFP_NOIO | __GFP_HIGH, fmt, ap);
	va_end(ap);

	BUG_ON(ret > PRINTF_BUFFER_SIZE-1);
	ret = xenbus_write(t, dir, node, printf_buffer);
	if (!buf)
		return -ENOMEM;

	ret = xenbus_write(t, dir, node, buf);

	kfree(printf_buffer);
	kfree(buf);

	return ret;
}