struct scsi_device *sdp = sdkp->device;
        const int timeout = sdp->request_queue->rq_timeout;
        struct scsi_sense_hdr sshdr;
+       const struct scsi_exec_args exec_args = {
+               .sshdr = &sshdr,
+       };
        unsigned char cmd[16];
        unsigned int rep_len;
        int result;
        if (partial)
                cmd[14] = ZBC_REPORT_ZONE_PARTIAL;
 
-       result = scsi_execute_req(sdp, cmd, DMA_FROM_DEVICE,
-                                 buf, buflen, &sshdr,
-                                 timeout, SD_MAX_RETRIES, NULL);
+       result = scsi_execute_cmd(sdp, cmd, REQ_OP_DRV_IN, buf, buflen,
+                                 timeout, SD_MAX_RETRIES, &exec_args);
        if (result) {
                sd_printk(KERN_ERR, sdkp,
                          "REPORT ZONES start lba %llu failed\n", lba);