unsigned char recv_page_code;
        unsigned int retries = SES_RETRIES;
        struct scsi_sense_hdr sshdr;
+       const struct scsi_exec_args exec_args = {
+               .sshdr = &sshdr,
+       };
 
        do {
-               ret = scsi_execute_req(sdev, cmd, DMA_FROM_DEVICE, buf, bufflen,
-                                      &sshdr, SES_TIMEOUT, 1, NULL);
+               ret = scsi_execute_cmd(sdev, cmd, REQ_OP_DRV_IN, buf, bufflen,
+                                      SES_TIMEOUT, 1, &exec_args);
        } while (ret > 0 && --retries && scsi_sense_valid(&sshdr) &&
                 (sshdr.sense_key == NOT_READY ||
                  (sshdr.sense_key == UNIT_ATTENTION && sshdr.asc == 0x29)));
        };
        struct scsi_sense_hdr sshdr;
        unsigned int retries = SES_RETRIES;
+       const struct scsi_exec_args exec_args = {
+               .sshdr = &sshdr,
+       };
 
        do {
-               result = scsi_execute_req(sdev, cmd, DMA_TO_DEVICE, buf, bufflen,
-                                         &sshdr, SES_TIMEOUT, 1, NULL);
+               result = scsi_execute_cmd(sdev, cmd, REQ_OP_DRV_OUT, buf,
+                                         bufflen, SES_TIMEOUT, 1, &exec_args);
        } while (result > 0 && --retries && scsi_sense_valid(&sshdr) &&
                 (sshdr.sense_key == NOT_READY ||
                  (sshdr.sense_key == UNIT_ATTENTION && sshdr.asc == 0x29)));