Hi Hans, Thank you for the patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.20-rc1 next-20181105] [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/Hans-Holmberg/PBLK-Bugfixes-and-cleanups/20181106-022237 config: i386-randconfig-sb0-11060349 (attached as .config) compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): drivers/lightnvm/pblk-init.o: In function `pblk_set_provision': >> drivers/lightnvm/pblk-init.c:668: undefined reference to `__udivdi3' vim +668 drivers/lightnvm/pblk-init.c 637 638 static int pblk_set_provision(struct pblk *pblk, long nr_free_chks) 639 { 640 struct nvm_tgt_dev *dev = pblk->dev; 641 struct pblk_line_mgmt *l_mg = &pblk->l_mg; 642 struct pblk_line_meta *lm = &pblk->lm; 643 struct nvm_geo *geo = &dev->geo; 644 sector_t provisioned, minimum; 645 int sec_meta, blk_meta; 646 647 if (geo->op == NVM_TARGET_DEFAULT_OP) 648 pblk->op = PBLK_DEFAULT_OP; 649 else 650 pblk->op = geo->op; 651 652 minimum = pblk_get_min_chks(pblk); 653 provisioned = nr_free_chks; 654 provisioned *= (100 - pblk->op); 655 sector_div(provisioned, 100); 656 657 if ((nr_free_chks - provisioned) < minimum) { 658 if (geo->op != NVM_TARGET_DEFAULT_OP) { 659 pblk_err(pblk, "OP too small to create a sane instance\n"); 660 return -EINTR; 661 } 662 663 /* If the user did not specify an OP value, and PBLK_DEFAULT_OP 664 * is not enough, calculate and set sane value 665 */ 666 667 provisioned = nr_free_chks - minimum; > 668 pblk->op = (100 * minimum) / nr_free_chks; 669 pblk_info(pblk, "Default OP insufficient, adjusting OP to %d\n", 670 pblk->op); 671 } 672 673 pblk->op_blks = nr_free_chks - provisioned; 674 675 /* Internally pblk manages all free blocks, but all calculations based 676 * on user capacity consider only provisioned blocks 677 */ 678 pblk->rl.total_blocks = nr_free_chks; 679 pblk->rl.nr_secs = nr_free_chks * geo->clba; 680 681 /* Consider sectors used for metadata */ 682 sec_meta = (lm->smeta_sec + lm->emeta_sec[0]) * l_mg->nr_free_lines; 683 blk_meta = DIV_ROUND_UP(sec_meta, geo->clba); 684 685 pblk->capacity = (provisioned - blk_meta) * geo->clba; 686 687 atomic_set(&pblk->rl.free_blocks, nr_free_chks); 688 atomic_set(&pblk->rl.free_user_blocks, nr_free_chks); 689 690 return 0; 691 } 692 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip