From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6E19CCF9C6C for ; Wed, 25 Sep 2024 04:30:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D061F6B0088; Wed, 25 Sep 2024 00:30:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C8F526B008A; Wed, 25 Sep 2024 00:30:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A1DD96B008C; Wed, 25 Sep 2024 00:30:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 7E0C16B0088 for ; Wed, 25 Sep 2024 00:30:05 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 1F69840858 for ; Wed, 25 Sep 2024 04:30:05 +0000 (UTC) X-FDA: 82601983170.15.339EBED Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.20]) by imf19.hostedemail.com (Postfix) with ESMTP id C4BBF1A0004 for ; Wed, 25 Sep 2024 04:30:02 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=MjrdIagg; spf=pass (imf19.hostedemail.com: domain of lkp@intel.com designates 198.175.65.20 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727238542; a=rsa-sha256; cv=none; b=r3A0RDNR2DsthqvjRfhQzokcy2P4mQlbbH6e7QErq7p/C9Y/7tZxJaUfvgUm0ibV39LJO1 gsiFb308xULoOUzBbnJVWwxBmIg4fjah62o1W1Mu0zWklI34QFyfwWEui7Zej9yut+FZWN i6xIRTGakc3/TeFZ73mMQgdGvPsn3Nc= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=MjrdIagg; spf=pass (imf19.hostedemail.com: domain of lkp@intel.com designates 198.175.65.20 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727238542; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=AACxTs3pMZu83cdMc010tkY3fXEAsxlrKpQciva8ZSU=; b=HrConJdIfWn4YuPoIHF9uwbwvuZZbA6olQOx9qAPSkKRXOdEvKXFQyNZzdqJ7uMYRSeQpc xPhzCoZuZpAajpayVjqfAd8tPQjPdxxWRciheqEnDv32+a9XQHjpse3yEGjKdUD6bu9otc 1EILodI0O5h21V4aWQ55dVHYyOzz0tY= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1727238603; x=1758774603; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=88Hamdqrs751sKw4WbPe7RM1gSHiZTGXQ9Dvvm9fad0=; b=MjrdIagg4WHvDTFWFgduzVuTqf32VBF+1GHJpvAKoeuuNVnLjeF9+mwX IZXwvACI5OlfVHSQ1+rckleVOy2EPzb/50PvceBVYILjpHCkw2u0JmQt2 rkVdk6cn8DiPBJw9NxDHmMGzDJEALECfKk7LWpTiTPeEV1KSo4Sn9Dbqk +wf2nqVh21yBrgvCEVv9HtXKthDZeitQlY85e/2MiZmJi1pBnRoN0ISU9 xeeHWhoTRSPfg8mLttMQZc4/wj2GDumDhBV8evW9QFVyUD3N7cCRGWGgv et8iLINA5fj2XyNiyHjWXvvO1qlmS4qv5zhfBRiwdBU3tuJnaY8Ln2s3Z Q==; X-CSE-ConnectionGUID: k+9uKOVYQ4Ko+Y67YFxsyw== X-CSE-MsgGUID: AvyfkxBlQ8+hXsXzWnSr9Q== X-IronPort-AV: E=McAfee;i="6700,10204,11205"; a="26085160" X-IronPort-AV: E=Sophos;i="6.10,256,1719903600"; d="scan'208";a="26085160" Received: from orviesa004.jf.intel.com ([10.64.159.144]) by orvoesa112.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Sep 2024 21:30:01 -0700 X-CSE-ConnectionGUID: IiEJSzoNR7inXt3ce7pHUA== X-CSE-MsgGUID: J1vYhL6hRT+PwCrVonfoXA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.10,256,1719903600"; d="scan'208";a="76575425" Received: from lkp-server01.sh.intel.com (HELO 53e96f405c61) ([10.239.97.150]) by orviesa004.jf.intel.com with ESMTP; 24 Sep 2024 21:29:57 -0700 Received: from kbuild by 53e96f405c61 with local (Exim 4.96) (envelope-from ) id 1stJf1-000J8F-19; Wed, 25 Sep 2024 04:29:55 +0000 Date: Wed, 25 Sep 2024 12:29:03 +0800 From: kernel test robot To: Dan Williams , hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com Cc: oe-kbuild-all@lists.linux.dev, Gerald Schaefer , Christian Borntraeger , Sven Schnelle , Jan Kara , Matthew Wilcox , Christoph Hellwig , Alistair Popple , linux-s390@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH] dcssblk: Mark DAX broken Message-ID: <202409251251.i8yVl4yR-lkp@intel.com> References: <172721874675.497781.3277495908107141898.stgit@dwillia2-xfh.jf.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <172721874675.497781.3277495908107141898.stgit@dwillia2-xfh.jf.intel.com> X-Stat-Signature: w544i59maq3rx1nwrsjg7tmja9grb93m X-Rspamd-Queue-Id: C4BBF1A0004 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1727238602-438099 X-HE-Meta: U2FsdGVkX1/TTS3sj/LJH2YUmPmSbVRPF/+pgHhRBIQB35XfpbMFskjAlC5KFJAjbf3kivgFaff2gdjRJPOcCkSPsVdR1WYt6tJBUwH5acoKEfd6kozQGcyIf3Qy96axqGkoDSvZz/dEg/c29qCkoK/iYUOxsN/RLPM59/OJCmE0x8/2hbJpgxYbvRXILZy/FkbqI6BoCk30Xq1EHp1VaT3BLZySzSUwCE6iESo/rlb3MTN+BjW2oK826cIzjav7snync3r3rw4aghqaHPGVpDoEYNvosqSK+EJWLL2GqtkQqd99yyQOpdToKN+sc6XXNKXaJPC8XjO5I9kD8B5NXC9PLefQEJXs4trzmQEBceQE2yN8gOlR4xmTxxexVzO/hNp/qwWdgvgn361nPkt41TlzQtqLOAuSx2EjIfKTFcpKJTgHfVa+AO77Cxkj9b5CuDLA1JBSL8sTgy7gdhZvbrVjIT3taKIxHO1HnmcCqKtoaOVHSKdh0B6SZjVNHlHcGAYpUvhOjaD9QSaIgWIfuee+wVtAdhfannoxVkrn1pyeUGac/K/YXESxwdK2I29VS6o8iBP+eh70ICxaOxngQz3wrB/eG70MrqQsBk83X6bf7E+JjJ5tdnaNRU3oe3XU2cO2SZWP0pH1vRKOWU2d0aMKj1sAUdyDL8kuUHhHst1kSGmfYP5EcrjObQX1g1cq/0BYPqaea7ddLdz4wYlLc7keBscIYLSV6cpZ/dZbvy3ZQY4L4r4kUd6j2ik7nDIXlAZmpOQ+FDvTAYQfTbXRjtrXTmqDGC3lXGriJRKzTNQE3USahXqUd7UJFOsxTZB7yTLuAnbi1VtWUBNvHFFhzzVNkZ0H1z67rWBn3biMmm0E/5rqoxja2vYEH5fI0v7MIvu40eeLsfx+Tl1QHi2EskfEnl72bJVs5y8Lw/G+YM1IE2TCKTiH6Sc7OimPExTik05M2vNwHV5ejrnNp27 icT8zYgi LNTrYPMgPuf91Avt9VSWEsg2bl3Un5dt/HZ9AyI5bGbVGa6qISXEQaGmneLvWa8BwaabECnq6xYfKr72ynfIWRmaQtfCz9wcRO//KrJLGhDJBwKoq8SMsTjjg9HqOCxz7Lp4r46LAJx5m7cjiolzjCPq2QnKYr29x75vkZYt0gqz2x3lEOhzqVn6ca2sDEAdwamV6PvFA1wDV6WmX1891dkzioahGdzywn2uWkztMLA2S8YeQV1q/KXqbAKB1FtHf9fXQSa4sZ3EapKTc8WojOd+xjfKiKzKtWoG+9FIIiSL1JrXzZXOd2lXpynHomlVGnw74iZu6DKtcEXpE7KLod1HQTHoo6TN6jWdk X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi Dan, kernel test robot noticed the following build warnings: [auto build test WARNING on s390/features] [also build test WARNING on brauner-vfs/vfs.all akpm-mm/mm-everything linus/master v6.11 next-20240924] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Dan-Williams/dcssblk-Mark-DAX-broken/20240925-070047 base: https://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git features patch link: https://lore.kernel.org/r/172721874675.497781.3277495908107141898.stgit%40dwillia2-xfh.jf.intel.com patch subject: [PATCH] dcssblk: Mark DAX broken config: s390-allyesconfig (https://download.01.org/0day-ci/archive/20240925/202409251251.i8yVl4yR-lkp@intel.com/config) compiler: s390-linux-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240925/202409251251.i8yVl4yR-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202409251251.i8yVl4yR-lkp@intel.com/ All warnings (new ones prefixed by >>): drivers/s390/block/dcssblk.c: In function 'dcssblk_add_store': >> drivers/s390/block/dcssblk.c:571:28: warning: unused variable 'dax_dev' [-Wunused-variable] 571 | struct dax_device *dax_dev; | ^~~~~~~ vim +/dax_dev +571 drivers/s390/block/dcssblk.c e265834f5da2c4 Dan Williams 2024-09-24 557 ^1da177e4c3f41 Linus Torvalds 2005-04-16 558 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 559 * device attribute for adding devices ^1da177e4c3f41 Linus Torvalds 2005-04-16 560 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 561 static ssize_t e404e274f62665 Yani Ioannou 2005-05-17 562 dcssblk_add_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) ^1da177e4c3f41 Linus Torvalds 2005-04-16 563 { af190c53c995bf Christoph Hellwig 2024-02-15 564 struct queue_limits lim = { af190c53c995bf Christoph Hellwig 2024-02-15 565 .logical_block_size = 4096, f467fee48da450 Christoph Hellwig 2024-06-17 566 .features = BLK_FEAT_DAX, af190c53c995bf Christoph Hellwig 2024-02-15 567 }; b2300b9efe1b81 Hongjie Yang 2008-10-10 568 int rc, i, j, num_of_segments; ^1da177e4c3f41 Linus Torvalds 2005-04-16 569 struct dcssblk_dev_info *dev_info; b2300b9efe1b81 Hongjie Yang 2008-10-10 570 struct segment_info *seg_info, *temp; cf7fe690abbbe5 Mathieu Desnoyers 2024-02-15 @571 struct dax_device *dax_dev; ^1da177e4c3f41 Linus Torvalds 2005-04-16 572 char *local_buf; ^1da177e4c3f41 Linus Torvalds 2005-04-16 573 unsigned long seg_byte_size; ^1da177e4c3f41 Linus Torvalds 2005-04-16 574 ^1da177e4c3f41 Linus Torvalds 2005-04-16 575 dev_info = NULL; b2300b9efe1b81 Hongjie Yang 2008-10-10 576 seg_info = NULL; ^1da177e4c3f41 Linus Torvalds 2005-04-16 577 if (dev != dcssblk_root_dev) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 578 rc = -EINVAL; ^1da177e4c3f41 Linus Torvalds 2005-04-16 579 goto out_nobuf; ^1da177e4c3f41 Linus Torvalds 2005-04-16 580 } b2300b9efe1b81 Hongjie Yang 2008-10-10 581 if ((count < 1) || (buf[0] == '\0') || (buf[0] == '\n')) { b2300b9efe1b81 Hongjie Yang 2008-10-10 582 rc = -ENAMETOOLONG; b2300b9efe1b81 Hongjie Yang 2008-10-10 583 goto out_nobuf; b2300b9efe1b81 Hongjie Yang 2008-10-10 584 } b2300b9efe1b81 Hongjie Yang 2008-10-10 585 ^1da177e4c3f41 Linus Torvalds 2005-04-16 586 local_buf = kmalloc(count + 1, GFP_KERNEL); ^1da177e4c3f41 Linus Torvalds 2005-04-16 587 if (local_buf == NULL) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 588 rc = -ENOMEM; ^1da177e4c3f41 Linus Torvalds 2005-04-16 589 goto out_nobuf; ^1da177e4c3f41 Linus Torvalds 2005-04-16 590 } b2300b9efe1b81 Hongjie Yang 2008-10-10 591 ^1da177e4c3f41 Linus Torvalds 2005-04-16 592 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 593 * parse input ^1da177e4c3f41 Linus Torvalds 2005-04-16 594 */ b2300b9efe1b81 Hongjie Yang 2008-10-10 595 num_of_segments = 0; 3a9f9183bdd341 Ameen Ali 2015-02-24 596 for (i = 0; (i < count && (buf[i] != '\0') && (buf[i] != '\n')); i++) { 42cfc6b590c5eb Martin Schwidefsky 2015-08-19 597 for (j = i; j < count && 42cfc6b590c5eb Martin Schwidefsky 2015-08-19 598 (buf[j] != ':') && b2300b9efe1b81 Hongjie Yang 2008-10-10 599 (buf[j] != '\0') && 42cfc6b590c5eb Martin Schwidefsky 2015-08-19 600 (buf[j] != '\n'); j++) { b2300b9efe1b81 Hongjie Yang 2008-10-10 601 local_buf[j-i] = toupper(buf[j]); b2300b9efe1b81 Hongjie Yang 2008-10-10 602 } b2300b9efe1b81 Hongjie Yang 2008-10-10 603 local_buf[j-i] = '\0'; b2300b9efe1b81 Hongjie Yang 2008-10-10 604 if (((j - i) == 0) || ((j - i) > 8)) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 605 rc = -ENAMETOOLONG; b2300b9efe1b81 Hongjie Yang 2008-10-10 606 goto seg_list_del; ^1da177e4c3f41 Linus Torvalds 2005-04-16 607 } b2300b9efe1b81 Hongjie Yang 2008-10-10 608 b2300b9efe1b81 Hongjie Yang 2008-10-10 609 rc = dcssblk_load_segment(local_buf, &seg_info); b2300b9efe1b81 Hongjie Yang 2008-10-10 610 if (rc < 0) b2300b9efe1b81 Hongjie Yang 2008-10-10 611 goto seg_list_del; ^1da177e4c3f41 Linus Torvalds 2005-04-16 612 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 613 * get a struct dcssblk_dev_info ^1da177e4c3f41 Linus Torvalds 2005-04-16 614 */ b2300b9efe1b81 Hongjie Yang 2008-10-10 615 if (num_of_segments == 0) { b2300b9efe1b81 Hongjie Yang 2008-10-10 616 dev_info = kzalloc(sizeof(struct dcssblk_dev_info), b2300b9efe1b81 Hongjie Yang 2008-10-10 617 GFP_KERNEL); ^1da177e4c3f41 Linus Torvalds 2005-04-16 618 if (dev_info == NULL) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 619 rc = -ENOMEM; ^1da177e4c3f41 Linus Torvalds 2005-04-16 620 goto out; ^1da177e4c3f41 Linus Torvalds 2005-04-16 621 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 622 strcpy(dev_info->segment_name, local_buf); b2300b9efe1b81 Hongjie Yang 2008-10-10 623 dev_info->segment_type = seg_info->segment_type; b2300b9efe1b81 Hongjie Yang 2008-10-10 624 INIT_LIST_HEAD(&dev_info->seg_list); b2300b9efe1b81 Hongjie Yang 2008-10-10 625 } b2300b9efe1b81 Hongjie Yang 2008-10-10 626 list_add_tail(&seg_info->lh, &dev_info->seg_list); b2300b9efe1b81 Hongjie Yang 2008-10-10 627 num_of_segments++; b2300b9efe1b81 Hongjie Yang 2008-10-10 628 i = j; b2300b9efe1b81 Hongjie Yang 2008-10-10 629 b2300b9efe1b81 Hongjie Yang 2008-10-10 630 if ((buf[j] == '\0') || (buf[j] == '\n')) b2300b9efe1b81 Hongjie Yang 2008-10-10 631 break; b2300b9efe1b81 Hongjie Yang 2008-10-10 632 } b2300b9efe1b81 Hongjie Yang 2008-10-10 633 b2300b9efe1b81 Hongjie Yang 2008-10-10 634 /* no trailing colon at the end of the input */ b2300b9efe1b81 Hongjie Yang 2008-10-10 635 if ((i > 0) && (buf[i-1] == ':')) { b2300b9efe1b81 Hongjie Yang 2008-10-10 636 rc = -ENAMETOOLONG; b2300b9efe1b81 Hongjie Yang 2008-10-10 637 goto seg_list_del; b2300b9efe1b81 Hongjie Yang 2008-10-10 638 } 820109fb11f24b Wolfram Sang 2022-08-18 639 strscpy(local_buf, buf, i + 1); b2300b9efe1b81 Hongjie Yang 2008-10-10 640 dev_info->num_of_segments = num_of_segments; b2300b9efe1b81 Hongjie Yang 2008-10-10 641 rc = dcssblk_is_continuous(dev_info); b2300b9efe1b81 Hongjie Yang 2008-10-10 642 if (rc < 0) b2300b9efe1b81 Hongjie Yang 2008-10-10 643 goto seg_list_del; b2300b9efe1b81 Hongjie Yang 2008-10-10 644 b2300b9efe1b81 Hongjie Yang 2008-10-10 645 dev_info->start = dcssblk_find_lowest_addr(dev_info); b2300b9efe1b81 Hongjie Yang 2008-10-10 646 dev_info->end = dcssblk_find_highest_addr(dev_info); b2300b9efe1b81 Hongjie Yang 2008-10-10 647 ef283688f54cc8 Kees Cook 2014-06-10 648 dev_set_name(&dev_info->dev, "%s", dev_info->segment_name); ^1da177e4c3f41 Linus Torvalds 2005-04-16 649 dev_info->dev.release = dcssblk_release_segment; 521b3d790c16fa Sebastian Ott 2012-10-01 650 dev_info->dev.groups = dcssblk_dev_attr_groups; ^1da177e4c3f41 Linus Torvalds 2005-04-16 651 INIT_LIST_HEAD(&dev_info->lh); af190c53c995bf Christoph Hellwig 2024-02-15 652 dev_info->gd = blk_alloc_disk(&lim, NUMA_NO_NODE); 74fa8f9c553f7b Christoph Hellwig 2024-02-15 653 if (IS_ERR(dev_info->gd)) { 74fa8f9c553f7b Christoph Hellwig 2024-02-15 654 rc = PTR_ERR(dev_info->gd); b2300b9efe1b81 Hongjie Yang 2008-10-10 655 goto seg_list_del; ^1da177e4c3f41 Linus Torvalds 2005-04-16 656 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 657 dev_info->gd->major = dcssblk_major; 0692ef289f067d Christoph Hellwig 2021-05-21 658 dev_info->gd->minors = DCSSBLK_MINORS_PER_DISK; ^1da177e4c3f41 Linus Torvalds 2005-04-16 659 dev_info->gd->fops = &dcssblk_devops; ^1da177e4c3f41 Linus Torvalds 2005-04-16 660 dev_info->gd->private_data = dev_info; a41a11b4009580 Gerald Schaefer 2022-10-27 661 dev_info->gd->flags |= GENHD_FL_NO_PART; b2300b9efe1b81 Hongjie Yang 2008-10-10 662 ^1da177e4c3f41 Linus Torvalds 2005-04-16 663 seg_byte_size = (dev_info->end - dev_info->start + 1); ^1da177e4c3f41 Linus Torvalds 2005-04-16 664 set_capacity(dev_info->gd, seg_byte_size >> 9); // size in sectors 93098bf0157876 Hongjie Yang 2008-12-25 665 pr_info("Loaded %s with total size %lu bytes and capacity %lu " 93098bf0157876 Hongjie Yang 2008-12-25 666 "sectors\n", local_buf, seg_byte_size, seg_byte_size >> 9); ^1da177e4c3f41 Linus Torvalds 2005-04-16 667 ^1da177e4c3f41 Linus Torvalds 2005-04-16 668 dev_info->save_pending = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 669 dev_info->is_shared = 1; ^1da177e4c3f41 Linus Torvalds 2005-04-16 670 dev_info->dev.parent = dcssblk_root_dev; ^1da177e4c3f41 Linus Torvalds 2005-04-16 671 ^1da177e4c3f41 Linus Torvalds 2005-04-16 672 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 673 *get minor, add to list ^1da177e4c3f41 Linus Torvalds 2005-04-16 674 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 675 down_write(&dcssblk_devices_sem); b2300b9efe1b81 Hongjie Yang 2008-10-10 676 if (dcssblk_get_segment_by_name(local_buf)) { 04f64b5756872b Gerald Schaefer 2008-08-21 677 rc = -EEXIST; b2300b9efe1b81 Hongjie Yang 2008-10-10 678 goto release_gd; 04f64b5756872b Gerald Schaefer 2008-08-21 679 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 680 rc = dcssblk_assign_free_minor(dev_info); b2300b9efe1b81 Hongjie Yang 2008-10-10 681 if (rc) b2300b9efe1b81 Hongjie Yang 2008-10-10 682 goto release_gd; ^1da177e4c3f41 Linus Torvalds 2005-04-16 683 sprintf(dev_info->gd->disk_name, "dcssblk%d", d0591485e15ccd Gerald Schaefer 2009-06-12 684 dev_info->gd->first_minor); ^1da177e4c3f41 Linus Torvalds 2005-04-16 685 list_add_tail(&dev_info->lh, &dcssblk_devices); ^1da177e4c3f41 Linus Torvalds 2005-04-16 686 ^1da177e4c3f41 Linus Torvalds 2005-04-16 687 if (!try_module_get(THIS_MODULE)) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 688 rc = -ENODEV; b2300b9efe1b81 Hongjie Yang 2008-10-10 689 goto dev_list_del; ^1da177e4c3f41 Linus Torvalds 2005-04-16 690 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 691 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 692 * register the device ^1da177e4c3f41 Linus Torvalds 2005-04-16 693 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 694 rc = device_register(&dev_info->dev); b2300b9efe1b81 Hongjie Yang 2008-10-10 695 if (rc) 521b3d790c16fa Sebastian Ott 2012-10-01 696 goto put_dev; ^1da177e4c3f41 Linus Torvalds 2005-04-16 697 e265834f5da2c4 Dan Williams 2024-09-24 698 rc = dcssblk_setup_dax(dev_info); fb08a1908cb119 Christoph Hellwig 2021-11-29 699 if (rc) fb08a1908cb119 Christoph Hellwig 2021-11-29 700 goto out_dax; 7a2765f6e82063 Dan Williams 2017-01-26 701 521b3d790c16fa Sebastian Ott 2012-10-01 702 get_device(&dev_info->dev); 1a5db707c859a4 Gerald Schaefer 2021-09-27 703 rc = device_add_disk(&dev_info->dev, dev_info->gd, NULL); 1a5db707c859a4 Gerald Schaefer 2021-09-27 704 if (rc) fb08a1908cb119 Christoph Hellwig 2021-11-29 705 goto out_dax_host; 436d1bc7fe6e78 Christian Borntraeger 2007-12-04 706 ^1da177e4c3f41 Linus Torvalds 2005-04-16 707 switch (dev_info->segment_type) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 708 case SEG_TYPE_SR: ^1da177e4c3f41 Linus Torvalds 2005-04-16 709 case SEG_TYPE_ER: ^1da177e4c3f41 Linus Torvalds 2005-04-16 710 case SEG_TYPE_SC: ^1da177e4c3f41 Linus Torvalds 2005-04-16 711 set_disk_ro(dev_info->gd,1); ^1da177e4c3f41 Linus Torvalds 2005-04-16 712 break; ^1da177e4c3f41 Linus Torvalds 2005-04-16 713 default: ^1da177e4c3f41 Linus Torvalds 2005-04-16 714 set_disk_ro(dev_info->gd,0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 715 break; ^1da177e4c3f41 Linus Torvalds 2005-04-16 716 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 717 up_write(&dcssblk_devices_sem); ^1da177e4c3f41 Linus Torvalds 2005-04-16 718 rc = count; ^1da177e4c3f41 Linus Torvalds 2005-04-16 719 goto out; ^1da177e4c3f41 Linus Torvalds 2005-04-16 720 fb08a1908cb119 Christoph Hellwig 2021-11-29 721 out_dax_host: c8f40a0bccefd6 Gerald Schaefer 2023-08-10 722 put_device(&dev_info->dev); fb08a1908cb119 Christoph Hellwig 2021-11-29 723 dax_remove_host(dev_info->gd); 1a5db707c859a4 Gerald Schaefer 2021-09-27 724 out_dax: 1a5db707c859a4 Gerald Schaefer 2021-09-27 725 kill_dax(dev_info->dax_dev); 1a5db707c859a4 Gerald Schaefer 2021-09-27 726 put_dax(dev_info->dax_dev); 521b3d790c16fa Sebastian Ott 2012-10-01 727 put_dev: ^1da177e4c3f41 Linus Torvalds 2005-04-16 728 list_del(&dev_info->lh); 8b9ab62662048a Christoph Hellwig 2022-06-19 729 put_disk(dev_info->gd); b2300b9efe1b81 Hongjie Yang 2008-10-10 730 list_for_each_entry(seg_info, &dev_info->seg_list, lh) { b2300b9efe1b81 Hongjie Yang 2008-10-10 731 segment_unload(seg_info->segment_name); b2300b9efe1b81 Hongjie Yang 2008-10-10 732 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 733 put_device(&dev_info->dev); ^1da177e4c3f41 Linus Torvalds 2005-04-16 734 up_write(&dcssblk_devices_sem); ^1da177e4c3f41 Linus Torvalds 2005-04-16 735 goto out; b2300b9efe1b81 Hongjie Yang 2008-10-10 736 dev_list_del: ^1da177e4c3f41 Linus Torvalds 2005-04-16 737 list_del(&dev_info->lh); b2300b9efe1b81 Hongjie Yang 2008-10-10 738 release_gd: 8b9ab62662048a Christoph Hellwig 2022-06-19 739 put_disk(dev_info->gd); b2300b9efe1b81 Hongjie Yang 2008-10-10 740 up_write(&dcssblk_devices_sem); b2300b9efe1b81 Hongjie Yang 2008-10-10 741 seg_list_del: b2300b9efe1b81 Hongjie Yang 2008-10-10 742 if (dev_info == NULL) b2300b9efe1b81 Hongjie Yang 2008-10-10 743 goto out; b2300b9efe1b81 Hongjie Yang 2008-10-10 744 list_for_each_entry_safe(seg_info, temp, &dev_info->seg_list, lh) { b2300b9efe1b81 Hongjie Yang 2008-10-10 745 list_del(&seg_info->lh); b2300b9efe1b81 Hongjie Yang 2008-10-10 746 segment_unload(seg_info->segment_name); b2300b9efe1b81 Hongjie Yang 2008-10-10 747 kfree(seg_info); b2300b9efe1b81 Hongjie Yang 2008-10-10 748 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 749 kfree(dev_info); ^1da177e4c3f41 Linus Torvalds 2005-04-16 750 out: ^1da177e4c3f41 Linus Torvalds 2005-04-16 751 kfree(local_buf); ^1da177e4c3f41 Linus Torvalds 2005-04-16 752 out_nobuf: ^1da177e4c3f41 Linus Torvalds 2005-04-16 753 return rc; ^1da177e4c3f41 Linus Torvalds 2005-04-16 754 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 755 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki