All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH v7 09/18] pstore/blk: Introduce backend for block devices
Date: Mon, 11 May 2020 06:14:26 +0800	[thread overview]
Message-ID: <202005110656.VG93l6Af%lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 18554 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20200510202436.63222-10-keescook@chromium.org>
References: <20200510202436.63222-10-keescook@chromium.org>
TO: Kees Cook <keescook@chromium.org>

Hi Kees,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on next-20200508]
[cannot apply to kees/for-next/pstore ia64/next linus/master v5.7-rc4 v5.7-rc3 v5.7-rc2 v5.7-rc4]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Kees-Cook/pstore-mtd-support-crash-log-to-block-and-mtd-device/20200511-043555
base:    30e2206e11ce27ae910cc0dab21472429e400a87
:::::: branch date: 2 hours ago
:::::: commit date: 2 hours ago

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>


cppcheck warnings: (new ones prefixed by >>)

>> fs/pstore/ram.c:927:19: warning: Variable 'pdata.max_reason' is reassigned a value before the old one has been used. [redundantAssignment]
    pdata.max_reason = ramoops_max_reason;
                     ^
   fs/pstore/ram.c:925:20: note: pdata.max_reason is assigned
     pdata.max_reason = ramoops_dump_oops ? KMSG_DUMP_OOPS
                      ^
   fs/pstore/ram.c:927:19: note: pdata.max_reason is overwritten
    pdata.max_reason = ramoops_max_reason;
                     ^
--
>> fs/pstore/zone.c:433:6: warning: Redundant initialization for 'ret'. The initialized value is overwritten before it is read. [redundantInitialization]
    ret = psz_kmsg_recover(cxt);
        ^
   fs/pstore/zone.c:428:10: note: ret is initialized
    int ret = -EBUSY;
            ^
   fs/pstore/zone.c:433:6: note: ret is overwritten
    ret = psz_kmsg_recover(cxt);
        ^
>> fs/pstore/zone.c:895:6: warning: Redundant initialization for 'err'. The initialized value is overwritten before it is read. [redundantInitialization]
    err = psz_alloc_zones(cxt);
        ^
   fs/pstore/zone.c:839:10: note: err is initialized
    int err = -EINVAL;
            ^
   fs/pstore/zone.c:895:6: note: err is overwritten
    err = psz_alloc_zones(cxt);
        ^
>> fs/pstore/blk.c:193:7: warning: Redundant initialization for 'bdev'. The initialized value is overwritten before it is read. [redundantInitialization]
    bdev = blkdev_get_by_path(blkdev, mode, holder);
         ^
   fs/pstore/blk.c:178:28: note: bdev is initialized
    struct block_device *bdev = ERR_PTR(-ENODEV);
                              ^
   fs/pstore/blk.c:193:7: note: bdev is overwritten
    bdev = blkdev_get_by_path(blkdev, mode, holder);
         ^
>> fs/pstore/blk.c:359:6: warning: Redundant initialization for 'ret'. The initialized value is overwritten before it is read. [redundantInitialization]
    ret = psblk_register_do(&dev);
        ^
   fs/pstore/blk.c:321:10: note: ret is initialized
    int ret = -ENODEV;
            ^
   fs/pstore/blk.c:359:6: note: ret is overwritten
    ret = psblk_register_do(&dev);
        ^

# https://github.com/0day-ci/linux/commit/1fe49524a73cc357622236b617f4ccf861dde190
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout 1fe49524a73cc357622236b617f4ccf861dde190
vim +/bdev +193 fs/pstore/blk.c

1fe49524a73cc3 WeiXiong Liao 2020-05-10  164  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  165  /**
1fe49524a73cc3 WeiXiong Liao 2020-05-10  166   * psblk_get_bdev() - open block device
1fe49524a73cc3 WeiXiong Liao 2020-05-10  167   *
1fe49524a73cc3 WeiXiong Liao 2020-05-10  168   * @holder:	Exclusive holder identifier
1fe49524a73cc3 WeiXiong Liao 2020-05-10  169   * @info:	Information about bdev to fill in
1fe49524a73cc3 WeiXiong Liao 2020-05-10  170   *
1fe49524a73cc3 WeiXiong Liao 2020-05-10  171   * Return: pointer to block device on success and others on error.
1fe49524a73cc3 WeiXiong Liao 2020-05-10  172   *
1fe49524a73cc3 WeiXiong Liao 2020-05-10  173   * On success, the returned block_device has reference count of one.
1fe49524a73cc3 WeiXiong Liao 2020-05-10  174   */
1fe49524a73cc3 WeiXiong Liao 2020-05-10  175  static struct block_device *psblk_get_bdev(void *holder,
1fe49524a73cc3 WeiXiong Liao 2020-05-10  176  					   struct bdev_info *info)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  177  {
1fe49524a73cc3 WeiXiong Liao 2020-05-10  178  	struct block_device *bdev = ERR_PTR(-ENODEV);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  179  	fmode_t mode = FMODE_READ | FMODE_WRITE;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  180  	sector_t nr_sects;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  181  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  182  	if (WARN_ON(!mutex_is_locked(&pstore_blk_lock)))
1fe49524a73cc3 WeiXiong Liao 2020-05-10  183  		return ERR_PTR(-EINVAL);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  184  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  185  	if (pstore_zone_info)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  186  		return ERR_PTR(-EBUSY);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  187  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  188  	if (!blkdev[0])
1fe49524a73cc3 WeiXiong Liao 2020-05-10  189  		return ERR_PTR(-ENODEV);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  190  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  191  	if (holder)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  192  		mode |= FMODE_EXCL;
1fe49524a73cc3 WeiXiong Liao 2020-05-10 @193  	bdev = blkdev_get_by_path(blkdev, mode, holder);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  194  	if (IS_ERR(bdev)) {
1fe49524a73cc3 WeiXiong Liao 2020-05-10  195  		dev_t devt;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  196  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  197  		devt = name_to_dev_t(blkdev);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  198  		if (devt == 0)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  199  			return ERR_PTR(-ENODEV);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  200  		bdev = blkdev_get_by_dev(devt, mode, holder);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  201  	}
1fe49524a73cc3 WeiXiong Liao 2020-05-10  202  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  203  	nr_sects = part_nr_sects_read(bdev->bd_part);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  204  	if (!nr_sects) {
1fe49524a73cc3 WeiXiong Liao 2020-05-10  205  		pr_err("not enough space for '%s'\n", blkdev);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  206  		blkdev_put(bdev, mode);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  207  		return ERR_PTR(-ENOSPC);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  208  	}
1fe49524a73cc3 WeiXiong Liao 2020-05-10  209  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  210  	if (info) {
1fe49524a73cc3 WeiXiong Liao 2020-05-10  211  		info->devt = bdev->bd_dev;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  212  		info->nr_sects = nr_sects;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  213  		info->start_sect = get_start_sect(bdev);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  214  	}
1fe49524a73cc3 WeiXiong Liao 2020-05-10  215  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  216  	return bdev;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  217  }
1fe49524a73cc3 WeiXiong Liao 2020-05-10  218  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  219  static void psblk_put_bdev(struct block_device *bdev, void *holder)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  220  {
1fe49524a73cc3 WeiXiong Liao 2020-05-10  221  	fmode_t mode = FMODE_READ | FMODE_WRITE;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  222  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  223  	if (!bdev)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  224  		return;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  225  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  226  	if (WARN_ON(!mutex_is_locked(&pstore_blk_lock)))
1fe49524a73cc3 WeiXiong Liao 2020-05-10  227  		return;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  228  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  229  	if (holder)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  230  		mode |= FMODE_EXCL;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  231  	blkdev_put(bdev, mode);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  232  }
1fe49524a73cc3 WeiXiong Liao 2020-05-10  233  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  234  static ssize_t psblk_generic_blk_read(char *buf, size_t bytes, loff_t pos)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  235  {
1fe49524a73cc3 WeiXiong Liao 2020-05-10  236  	struct block_device *bdev = psblk_bdev;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  237  	struct file file;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  238  	struct kiocb kiocb;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  239  	struct iov_iter iter;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  240  	struct kvec iov = {.iov_base = buf, .iov_len = bytes};
1fe49524a73cc3 WeiXiong Liao 2020-05-10  241  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  242  	if (!bdev)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  243  		return -ENODEV;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  244  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  245  	memset(&file, 0, sizeof(struct file));
1fe49524a73cc3 WeiXiong Liao 2020-05-10  246  	file.f_mapping = bdev->bd_inode->i_mapping;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  247  	file.f_flags = O_DSYNC | __O_SYNC | O_NOATIME;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  248  	file.f_inode = bdev->bd_inode;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  249  	file_ra_state_init(&file.f_ra, file.f_mapping);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  250  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  251  	init_sync_kiocb(&kiocb, &file);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  252  	kiocb.ki_pos = pos;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  253  	iov_iter_kvec(&iter, READ, &iov, 1, bytes);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  254  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  255  	return generic_file_read_iter(&kiocb, &iter);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  256  }
1fe49524a73cc3 WeiXiong Liao 2020-05-10  257  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  258  static ssize_t psblk_generic_blk_write(const char *buf, size_t bytes,
1fe49524a73cc3 WeiXiong Liao 2020-05-10  259  		loff_t pos)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  260  {
1fe49524a73cc3 WeiXiong Liao 2020-05-10  261  	struct block_device *bdev = psblk_bdev;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  262  	struct iov_iter iter;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  263  	struct kiocb kiocb;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  264  	struct file file;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  265  	ssize_t ret;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  266  	struct kvec iov = {.iov_base = (void *)buf, .iov_len = bytes};
1fe49524a73cc3 WeiXiong Liao 2020-05-10  267  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  268  	if (!bdev)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  269  		return -ENODEV;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  270  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  271  	/* Console/Ftrace backend may handle buffer until flush dirty zones */
1fe49524a73cc3 WeiXiong Liao 2020-05-10  272  	if (in_interrupt() || irqs_disabled())
1fe49524a73cc3 WeiXiong Liao 2020-05-10  273  		return -EBUSY;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  274  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  275  	memset(&file, 0, sizeof(struct file));
1fe49524a73cc3 WeiXiong Liao 2020-05-10  276  	file.f_mapping = bdev->bd_inode->i_mapping;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  277  	file.f_flags = O_DSYNC | __O_SYNC | O_NOATIME;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  278  	file.f_inode = bdev->bd_inode;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  279  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  280  	init_sync_kiocb(&kiocb, &file);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  281  	kiocb.ki_pos = pos;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  282  	iov_iter_kvec(&iter, WRITE, &iov, 1, bytes);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  283  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  284  	inode_lock(bdev->bd_inode);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  285  	ret = generic_write_checks(&kiocb, &iter);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  286  	if (ret > 0)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  287  		ret = generic_perform_write(&file, &iter, pos);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  288  	inode_unlock(bdev->bd_inode);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  289  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  290  	if (likely(ret > 0)) {
1fe49524a73cc3 WeiXiong Liao 2020-05-10  291  		const struct file_operations f_op = {.fsync = blkdev_fsync};
1fe49524a73cc3 WeiXiong Liao 2020-05-10  292  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  293  		file.f_op = &f_op;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  294  		kiocb.ki_pos += ret;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  295  		ret = generic_write_sync(&kiocb, ret);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  296  	}
1fe49524a73cc3 WeiXiong Liao 2020-05-10  297  	return ret;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  298  }
1fe49524a73cc3 WeiXiong Liao 2020-05-10  299  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  300  static ssize_t psblk_blk_panic_write(const char *buf, size_t size,
1fe49524a73cc3 WeiXiong Liao 2020-05-10  301  		loff_t off)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  302  {
1fe49524a73cc3 WeiXiong Liao 2020-05-10  303  	int ret;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  304  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  305  	if (!blkdev_panic_write)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  306  		return -EOPNOTSUPP;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  307  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  308  	/* size and off must align to SECTOR_SIZE for block device */
1fe49524a73cc3 WeiXiong Liao 2020-05-10  309  	ret = blkdev_panic_write(buf, off >> SECTOR_SHIFT,
1fe49524a73cc3 WeiXiong Liao 2020-05-10  310  			size >> SECTOR_SHIFT);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  311  	return ret ? -EIO : size;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  312  }
1fe49524a73cc3 WeiXiong Liao 2020-05-10  313  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  314  static int __register_pstore_blk(struct pstore_blk_info *info)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  315  {
1fe49524a73cc3 WeiXiong Liao 2020-05-10  316  	char bdev_name[BDEVNAME_SIZE];
1fe49524a73cc3 WeiXiong Liao 2020-05-10  317  	struct block_device *bdev;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  318  	struct pstore_device_info dev;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  319  	struct bdev_info binfo;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  320  	void *holder = blkdev;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  321  	int ret = -ENODEV;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  322  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  323  	if (WARN_ON(!mutex_is_locked(&pstore_blk_lock)))
1fe49524a73cc3 WeiXiong Liao 2020-05-10  324  		return -EINVAL;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  325  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  326  	/* hold bdev exclusively */
1fe49524a73cc3 WeiXiong Liao 2020-05-10  327  	memset(&binfo, 0, sizeof(binfo));
1fe49524a73cc3 WeiXiong Liao 2020-05-10  328  	bdev = psblk_get_bdev(holder, &binfo);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  329  	if (IS_ERR(bdev)) {
1fe49524a73cc3 WeiXiong Liao 2020-05-10  330  		pr_err("failed to open '%s'!\n", blkdev);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  331  		ret = PTR_ERR(bdev);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  332  		goto err_put_bdev;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  333  	}
1fe49524a73cc3 WeiXiong Liao 2020-05-10  334  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  335  	/* only allow driver matching the @blkdev */
1fe49524a73cc3 WeiXiong Liao 2020-05-10  336  	if (!binfo.devt || MAJOR(binfo.devt) != info->major) {
1fe49524a73cc3 WeiXiong Liao 2020-05-10  337  		pr_debug("invalid major %u (expect %u)\n",
1fe49524a73cc3 WeiXiong Liao 2020-05-10  338  				info->major, MAJOR(binfo.devt));
1fe49524a73cc3 WeiXiong Liao 2020-05-10  339  		ret = -ENODEV;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  340  		goto err_put_bdev;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  341  	}
1fe49524a73cc3 WeiXiong Liao 2020-05-10  342  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  343  	/* psblk_bdev must be assigned before register to pstore/blk */
1fe49524a73cc3 WeiXiong Liao 2020-05-10  344  	psblk_bdev = bdev;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  345  	blkdev_panic_write = info->panic_write;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  346  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  347  	/* Copy back block device details. */
1fe49524a73cc3 WeiXiong Liao 2020-05-10  348  	info->devt = binfo.devt;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  349  	info->nr_sects = binfo.nr_sects;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  350  	info->start_sect = binfo.start_sect;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  351  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  352  	memset(&dev, 0, sizeof(dev));
1fe49524a73cc3 WeiXiong Liao 2020-05-10  353  	dev.total_size = info->nr_sects << SECTOR_SHIFT;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  354  	dev.flags = info->flags;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  355  	dev.read = psblk_generic_blk_read;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  356  	dev.write = psblk_generic_blk_write;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  357  	dev.panic_write = info->panic_write ? psblk_blk_panic_write : NULL;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  358  
1fe49524a73cc3 WeiXiong Liao 2020-05-10 @359  	ret = psblk_register_do(&dev);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  360  	if (ret)
1fe49524a73cc3 WeiXiong Liao 2020-05-10  361  		goto err_put_bdev;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  362  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  363  	bdevname(bdev, bdev_name);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  364  	pr_info("attached %s%s\n", bdev_name,
1fe49524a73cc3 WeiXiong Liao 2020-05-10  365  		info->panic_write ? "" : " (no dedicated panic_write!)");
1fe49524a73cc3 WeiXiong Liao 2020-05-10  366  	return 0;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  367  
1fe49524a73cc3 WeiXiong Liao 2020-05-10  368  err_put_bdev:
1fe49524a73cc3 WeiXiong Liao 2020-05-10  369  	psblk_bdev = NULL;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  370  	blkdev_panic_write = NULL;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  371  	psblk_put_bdev(bdev, holder);
1fe49524a73cc3 WeiXiong Liao 2020-05-10  372  	return ret;
1fe49524a73cc3 WeiXiong Liao 2020-05-10  373  }
1fe49524a73cc3 WeiXiong Liao 2020-05-10  374  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

             reply	other threads:[~2020-05-10 22:14 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-10 22:14 kbuild test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-05-10 20:24 [PATCH v7 00/18] pstore: mtd: support crash log to block and mtd device Kees Cook
2020-05-10 20:24 ` [PATCH v7 09/18] pstore/blk: Introduce backend for block devices Kees Cook
2020-05-10 20:24   ` Kees Cook
2020-05-11  8:36   ` WeiXiong Liao
2020-05-11  8:36     ` WeiXiong Liao
2020-05-11 23:08     ` Kees Cook
2020-05-11 23:08       ` Kees Cook
2020-05-11 15:36   ` Randy Dunlap
2020-05-11 15:36     ` Randy Dunlap
2020-05-11 23:11     ` Kees Cook
2020-05-11 23:11       ` Kees Cook

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202005110656.VG93l6Af%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.