Commit 0695aef2 authored by Qianfeng Rong's avatar Qianfeng Rong Committed by Richard Weinberger
Browse files

ubifs: vmalloc(array_size()) -> vmalloc_array()

Remove array_size() calls and replace vmalloc() with vmalloc_array() in
ubifs_create_dflt_lpt()/lpt_init_rd()/lpt_init_wr(). vmalloc_array() is
optimized better, resulting in less instructions being used [1].

[1]: https://lore.kernel.org/lkml/abc66ec5-85a4-47e1-9759-2f60ab111971@vivo.com/



Signed-off-by: default avatarQianfeng Rong <rongqianfeng@vivo.com>
Reviewed-by: default avatarZhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent d133e30a
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -628,8 +628,8 @@ int ubifs_create_dflt_lpt(struct ubifs_info *c, int *main_lebs, int lpt_first,
	pnode = kzalloc(sizeof(struct ubifs_pnode), GFP_KERNEL);
	nnode = kzalloc(sizeof(struct ubifs_nnode), GFP_KERNEL);
	buf = vmalloc(c->leb_size);
	ltab = vmalloc(array_size(sizeof(struct ubifs_lpt_lprops),
				  c->lpt_lebs));
	ltab = vmalloc_array(c->lpt_lebs,
			     sizeof(struct ubifs_lpt_lprops));
	if (!pnode || !nnode || !buf || !ltab || !lsave) {
		err = -ENOMEM;
		goto out;
@@ -1777,8 +1777,8 @@ static int lpt_init_rd(struct ubifs_info *c)
{
	int err, i;

	c->ltab = vmalloc(array_size(sizeof(struct ubifs_lpt_lprops),
				     c->lpt_lebs));
	c->ltab = vmalloc_array(c->lpt_lebs,
				sizeof(struct ubifs_lpt_lprops));
	if (!c->ltab)
		return -ENOMEM;

@@ -1846,8 +1846,8 @@ static int lpt_init_wr(struct ubifs_info *c)
{
	int err, i;

	c->ltab_cmt = vmalloc(array_size(sizeof(struct ubifs_lpt_lprops),
					 c->lpt_lebs));
	c->ltab_cmt = vmalloc_array(c->lpt_lebs,
				    sizeof(struct ubifs_lpt_lprops));
	if (!c->ltab_cmt)
		return -ENOMEM;