From: Mikhail Novosyolov Date: Sat, 3 Dec 2022 16:56:38 +0000 (+0300) Subject: fix(90kernel-modules): MMC and NVMe on kernels 6.0+ X-Git-Tag: 058~28 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e0d57a8f5b15847a7fbae2ed3df29ec2c5d25ec7;p=thirdparty%2Fdracut.git fix(90kernel-modules): MMC and NVMe on kernels 6.0+ Commit 6f8191fdf41 ("block: simplify disk shutdown") in Linux kernels 6.0 and above renamed blk_cleanup_disk to blk_mq_destroy_queue. Adapt code to handle both cases. Because of this the kernel module mmc_block.ko was not included into initrd on kernel 6.1: dracut-install: No symbol or path match for '/lib/modules/6.1.0-generic-0.rc7.1rosa2021.1-x86_64//kernel/drivers/mmc/core/mmc_block.ko.zst while on kernel 5.15 it was included: dracut-install: Handling /lib/modules/5.15.79-generic-1rosa2021.1-x86_64//kernel/drivers/mmc/core/mmc_block.ko.zst dracut-install: Module mmc_block: symbol blk_cleanup_queue matched inclusion filter It made booting OS from root on /dev/mmcblk* impossible. Just adding blk_mq_destroy_queue was not enough to make mmc_block.ko be included into initrd (maybe because call of blk_cleanup_disk() was removed and call of blk_mq_destroy_queue() was not added). So also adding blk_mq_alloc_request which is used from mmc_block. Fixes: https://github.com/dracutdevs/dracut/issues/2102 --- diff --git a/modules.d/90kernel-modules/module-setup.sh b/modules.d/90kernel-modules/module-setup.sh index e00ed06e3..7767a1338 100755 --- a/modules.d/90kernel-modules/module-setup.sh +++ b/modules.d/90kernel-modules/module-setup.sh @@ -2,7 +2,7 @@ # called by dracut installkernel() { - local _blockfuncs='ahci_platform_get_resources|ata_scsi_ioctl|scsi_add_host|blk_cleanup_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device|usb_stor_disconnect|mmc_add_host|sdhci_add_host|scsi_add_host_with_dma|blk_mq_alloc_disk|blk_cleanup_disk' + local _blockfuncs='ahci_platform_get_resources|ata_scsi_ioctl|scsi_add_host|blk_cleanup_queue|register_mtd_blktrans|scsi_esp_register|register_virtio_device|usb_stor_disconnect|mmc_add_host|sdhci_add_host|scsi_add_host_with_dma|blk_mq_alloc_disk|blk_mq_alloc_request|blk_mq_destroy_queue|blk_cleanup_disk' local -A _hostonly_drvs record_block_dev_drv() {