CC: [email protected] BCC: [email protected] CC: Xiang Gao <[email protected]> CC: [email protected] TO: Gao Xiang <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/xiang/linux.git erofs/initrd-fsdax head: e04a723ce39c31ea57edfbfd70c867a2025910e3 commit: a610c807a6b52cbce515911dba9b9cc316a6c117 [2/3] brd: support FSDAX :::::: branch date: 2 days ago :::::: commit date: 2 days ago config: x86_64-rhel-8.3-kselftests (https://download.01.org/0day-ci/archive/20220606/[email protected]/config) compiler: gcc-11 (Debian 11.3.0-1) 11.3.0 If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: drivers/block/brd.c:466 brd_alloc() warn: missing error code 'err' vim +/err +466 drivers/block/brd.c a610c807a6b52c Gao Xiang 2022-06-05 406 7f9b348cb5e942 Christoph Hellwig 2021-05-21 407 static int brd_alloc(int i) 9db5579be4bb53 Nicholas Piggin 2008-02-08 408 { 9db5579be4bb53 Nicholas Piggin 2008-02-08 409 struct brd_device *brd; 9db5579be4bb53 Nicholas Piggin 2008-02-08 410 struct gendisk *disk; f4be591f1436af Calvin Owens 2021-04-16 411 char buf[DISK_NAME_LEN]; e1528830bd4ebf Luis Chamberlain 2021-10-15 412 int err = -ENOMEM; 9db5579be4bb53 Nicholas Piggin 2008-02-08 413 00358933f66c44 Tetsuo Handa 2022-01-06 414 list_for_each_entry(brd, &brd_devices, brd_list) 00358933f66c44 Tetsuo Handa 2022-01-06 415 if (brd->brd_number == i) f7bf35862477d6 Tetsuo Handa 2021-09-07 416 return -EEXIST; 9db5579be4bb53 Nicholas Piggin 2008-02-08 417 brd = kzalloc(sizeof(*brd), GFP_KERNEL); 00358933f66c44 Tetsuo Handa 2022-01-06 418 if (!brd) 7f9b348cb5e942 Christoph Hellwig 2021-05-21 419 return -ENOMEM; 9db5579be4bb53 Nicholas Piggin 2008-02-08 420 brd->brd_number = i; f7bf35862477d6 Tetsuo Handa 2021-09-07 421 list_add_tail(&brd->brd_list, &brd_devices); f7bf35862477d6 Tetsuo Handa 2021-09-07 422 9db5579be4bb53 Nicholas Piggin 2008-02-08 423 spin_lock_init(&brd->brd_lock); 9db5579be4bb53 Nicholas Piggin 2008-02-08 424 INIT_RADIX_TREE(&brd->brd_pages, GFP_ATOMIC); 9db5579be4bb53 Nicholas Piggin 2008-02-08 425 f4be591f1436af Calvin Owens 2021-04-16 426 snprintf(buf, DISK_NAME_LEN, "ram%d", i); f4be591f1436af Calvin Owens 2021-04-16 427 if (!IS_ERR_OR_NULL(brd_debugfs_dir)) f4be591f1436af Calvin Owens 2021-04-16 428 debugfs_create_u64(buf, 0444, brd_debugfs_dir, f4be591f1436af Calvin Owens 2021-04-16 429 &brd->brd_nr_pages); f4be591f1436af Calvin Owens 2021-04-16 430 7f9b348cb5e942 Christoph Hellwig 2021-05-21 431 disk = brd->brd_disk = blk_alloc_disk(NUMA_NO_NODE); 9db5579be4bb53 Nicholas Piggin 2008-02-08 432 if (!disk) 7f9b348cb5e942 Christoph Hellwig 2021-05-21 433 goto out_free_dev; 7f9b348cb5e942 Christoph Hellwig 2021-05-21 434 9db5579be4bb53 Nicholas Piggin 2008-02-08 435 disk->major = RAMDISK_MAJOR; 937af5ecd0591e Boaz Harrosh 2015-01-07 436 disk->first_minor = i * max_part; 7f9b348cb5e942 Christoph Hellwig 2021-05-21 437 disk->minors = max_part; 9db5579be4bb53 Nicholas Piggin 2008-02-08 438 disk->fops = &brd_fops; 9db5579be4bb53 Nicholas Piggin 2008-02-08 439 disk->private_data = brd; f4be591f1436af Calvin Owens 2021-04-16 440 strlcpy(disk->disk_name, buf, DISK_NAME_LEN); 9db5579be4bb53 Nicholas Piggin 2008-02-08 441 set_capacity(disk, rd_size * 2); 9db5579be4bb53 Nicholas Piggin 2008-02-08 442 7f9b348cb5e942 Christoph Hellwig 2021-05-21 443 /* 7f9b348cb5e942 Christoph Hellwig 2021-05-21 444 * This is so fdisk will align partitions on 4k, because of 7f9b348cb5e942 Christoph Hellwig 2021-05-21 445 * direct_access API needing 4k alignment, returning a PFN 7f9b348cb5e942 Christoph Hellwig 2021-05-21 446 * (This is only a problem on very small devices <= 4M, 7f9b348cb5e942 Christoph Hellwig 2021-05-21 447 * otherwise fdisk will align on 1M. Regardless this call 7f9b348cb5e942 Christoph Hellwig 2021-05-21 448 * is harmless) 7f9b348cb5e942 Christoph Hellwig 2021-05-21 449 */ 7f9b348cb5e942 Christoph Hellwig 2021-05-21 450 blk_queue_physical_block_size(disk->queue, PAGE_SIZE); 7f9b348cb5e942 Christoph Hellwig 2021-05-21 451 316ba5736c9caa SeongJae Park 2018-05-03 452 /* Tell the block layer that this is not a rotational device */ 7f9b348cb5e942 Christoph Hellwig 2021-05-21 453 blk_queue_flag_set(QUEUE_FLAG_NONROT, disk->queue); 7f9b348cb5e942 Christoph Hellwig 2021-05-21 454 blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, disk->queue); a610c807a6b52c Gao Xiang 2022-06-05 455 a610c807a6b52c Gao Xiang 2022-06-05 456 if (enable_fsdax) a610c807a6b52c Gao Xiang 2022-06-05 457 blk_queue_flag_set(QUEUE_FLAG_DAX, disk->queue); e1528830bd4ebf Luis Chamberlain 2021-10-15 458 err = add_disk(disk); e1528830bd4ebf Luis Chamberlain 2021-10-15 459 if (err) e1528830bd4ebf Luis Chamberlain 2021-10-15 460 goto out_cleanup_disk; 316ba5736c9caa SeongJae Park 2018-05-03 461 a610c807a6b52c Gao Xiang 2022-06-05 462 if (enable_fsdax) { a610c807a6b52c Gao Xiang 2022-06-05 463 brd->dax_dev = alloc_dax(brd, &brd_dax_ops); a610c807a6b52c Gao Xiang 2022-06-05 464 if (IS_ERR(brd->dax_dev)) { a610c807a6b52c Gao Xiang 2022-06-05 465 brd->dax_dev = NULL; a610c807a6b52c Gao Xiang 2022-06-05 @466 goto out_del_gendisk; a610c807a6b52c Gao Xiang 2022-06-05 467 } a610c807a6b52c Gao Xiang 2022-06-05 468 set_dax_nocache(brd->dax_dev); a610c807a6b52c Gao Xiang 2022-06-05 469 set_dax_nomc(brd->dax_dev); a610c807a6b52c Gao Xiang 2022-06-05 470 run_dax(brd->dax_dev); a610c807a6b52c Gao Xiang 2022-06-05 471 if (dax_add_host(brd->dax_dev, disk)) a610c807a6b52c Gao Xiang 2022-06-05 472 goto out_del_gendisk; a610c807a6b52c Gao Xiang 2022-06-05 473 } 7f9b348cb5e942 Christoph Hellwig 2021-05-21 474 return 0; 9db5579be4bb53 Nicholas Piggin 2008-02-08 475 a610c807a6b52c Gao Xiang 2022-06-05 476 out_del_gendisk: a610c807a6b52c Gao Xiang 2022-06-05 477 del_gendisk(disk); e1528830bd4ebf Luis Chamberlain 2021-10-15 478 out_cleanup_disk: e1528830bd4ebf Luis Chamberlain 2021-10-15 479 blk_cleanup_disk(disk); 9db5579be4bb53 Nicholas Piggin 2008-02-08 480 out_free_dev: f7bf35862477d6 Tetsuo Handa 2021-09-07 481 list_del(&brd->brd_list); 9db5579be4bb53 Nicholas Piggin 2008-02-08 482 kfree(brd); e1528830bd4ebf Luis Chamberlain 2021-10-15 483 return err; 9db5579be4bb53 Nicholas Piggin 2008-02-08 484 } 9db5579be4bb53 Nicholas Piggin 2008-02-08 485 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
