For one please keep nvme target code in drivers/nvme/ PCI endpoint is just another transport and should not have device class logic. But I also really fail to understand the architecture of the whole thing. It is a target driver and should in no way tie into the NVMe host code, the host code runs on the other side of the PCIe wire.