Модуль ядра Linux не может найти структуру "nvme_ns" - PullRequest
0 голосов
/ 07 октября 2019

Я пишу модуль, в котором я получаю доступ к устройству nvme, используя старший и младший номер.

Код функции:

src_disk = get_gendisk(MKDEV(si->src_major, si->src_minor), &part);
my_nvme_ns = (struct nvme_ns *)src_disk->private_data;

for (i = 0; i <= 15; i++)
{
    printk(KERN_CONT "%02x", my_nvme_ns->head.ids.nvme_ns_ids.nguid[i]);
}

Теперь, когда я пытаюсь получить доступmy_nvme_ns, происходит сбой с ошибкой

error: dereferencing pointer to incomplete type ‘struct nvme_ns’
         printk(KERN_CONT "%02x", my_nvme_ns->head.ids.nvme_ns_ids.nguid[i]);

Я включил все соответствующие файлы, включая

#include <linux/nvme.h>
#include <linux/nvme_ioctl.h>
#include <linux/types.h>

Использование ядра 5.0.0

что мне не хватаетздесь

...