> + > +//#define DEBUG This should not leak into the driverṡ > +#include <linux/blk-integrity.h> As far as I can tell this driver does not support metadata or PI, so why is this include needed? > +/* NVM Express NVM Command Set Specification, Revision 1.0a, Figure 18 */ > +#define NVME_OPCODE_DATA_XFER_HOST_TO_CTRL BIT(0) > +#define NVME_OPCODE_DATA_XFER_CTRL_TO_HOST BIT(1) Please just use the nvme_is_write helper where you are using these. > +static int apple_nvme_sart_dma_setup(void *cookie, struct apple_rtkit_shmem *bfr, Please avoid > 80 character lines. > +static void apple_nvme_free_ctrl(struct nvme_ctrl *ctrl) > +{ > +} So where are the apple specific resources free? ->free_ctrl is the callback from the struct device release callback, so without one the resource release can't be tried to the device release.