+10
−0
Loading
If subsystem bdev module initialize failed, it will call spdk_bdev_init_complete(-1) -> (subsystem bdev)->fini _spdk_bdev_finish_unregister_bdevs_iter -> spdk_bdev_module_finish_iter In abovt path, spdk_bdev_module_finish_iter will repeate to call bdev_module->module_fini function. Some bdevs will call spdk_io_device_unregister which never call spdk_io_device_register. It will coredump when assert false in spdk_io_device_unregister dev is null. To fix this, let's check whether g_bdev_mgr.module_init_complete is equals true and then call the bdev_module->module_fini. Change-Id: Ia9a13318720d954e40eb2d666574bcb86e5f49e3 Signed-off-by:Tianyu Yang <yangtianyu2@huawei.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/462382 Reviewed-by:
Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-by:
Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by:
Changpeng Liu <changpeng.liu@intel.com> Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com>