Hi Roberto, Thank you for the patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v5.1 next-20190517] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Roberto-Sassu/initramfs-set-extended-attributes/20190518-055846 config: sparc64-allyesconfig (attached as .config) compiler: sparc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=sparc64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> All error/warnings (new ones prefixed by >>): init/initramfs.c: In function 'do_readxattrs': >> init/initramfs.c:437:10: error: implicit declaration of function 'vmalloc'; did you mean 'kvmalloc'? [-Werror=implicit-function-declaration] path = vmalloc(file_entry_size); ^~~~~~~ kvmalloc >> init/initramfs.c:437:8: warning: assignment makes pointer from integer without a cast [-Wint-conversion] path = vmalloc(file_entry_size); ^ >> init/initramfs.c:461:3: error: implicit declaration of function 'vfree'; did you mean 'kvfree'? [-Werror=implicit-function-declaration] vfree(path); ^~~~~ kvfree cc1: some warnings being treated as errors vim +437 init/initramfs.c 391 392 static int __init do_readxattrs(void) 393 { 394 struct path_hdr hdr; 395 char *path = NULL; 396 char str[sizeof(hdr.p_size) + 1]; 397 unsigned long file_entry_size; 398 size_t size, path_size, total_size; 399 struct kstat st; 400 struct file *file; 401 loff_t pos; 402 int ret; 403 404 ret = vfs_lstat(XATTR_LIST_FILENAME, &st); 405 if (ret < 0) 406 return ret; 407 408 total_size = st.size; 409 410 file = filp_open(XATTR_LIST_FILENAME, O_RDONLY, 0); 411 if (IS_ERR(file)) 412 return PTR_ERR(file); 413 414 pos = file->f_pos; 415 416 while (total_size) { 417 size = kernel_read(file, (char *)&hdr, sizeof(hdr), &pos); 418 if (size != sizeof(hdr)) { 419 ret = -EIO; 420 goto out; 421 } 422 423 total_size -= size; 424 425 str[sizeof(hdr.p_size)] = 0; 426 memcpy(str, hdr.p_size, sizeof(hdr.p_size)); 427 ret = kstrtoul(str, 16, &file_entry_size); 428 if (ret < 0) 429 goto out; 430 431 file_entry_size -= sizeof(sizeof(hdr.p_size)); 432 if (file_entry_size > total_size) { 433 ret = -EINVAL; 434 goto out; 435 } 436 > 437 path = vmalloc(file_entry_size); 438 if (!path) { 439 ret = -ENOMEM; 440 goto out; 441 } 442 443 size = kernel_read(file, path, file_entry_size, &pos); 444 if (size != file_entry_size) { 445 ret = -EIO; 446 goto out_free; 447 } 448 449 total_size -= size; 450 451 path_size = strnlen(path, file_entry_size); 452 if (path_size == file_entry_size) { 453 ret = -EINVAL; 454 goto out_free; 455 } 456 457 xattr_buf = path + path_size + 1; 458 xattr_len = file_entry_size - path_size - 1; 459 460 ret = do_setxattrs(path); > 461 vfree(path); 462 path = NULL; 463 464 if (ret < 0) 465 break; 466 } 467 out_free: 468 vfree(path); 469 out: 470 fput(file); 471 472 if (ret < 0) 473 error("Unable to parse xattrs"); 474 475 return ret; 476 } 477 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip