#include "nvme-ioctl.h"
-static int nvme_do_ioctl(int fd, int rqst, void *cmd, int maxretry)
-{
- int ret = 0, retry;
-
- for (retry = 0 ; retry <= maxretry; retry++) {
- ret = ioctl(fd, rqst, cmd);
- if (ret != -1 || errno != EAGAIN)
- break;
-
- usleep(IOCTL_DELAY);
- }
- return ret;
-}
-
static int nvme_verify_chr(int fd)
{
static struct stat nvme_stat;
return ioctl(fd, NVME_IOCTL_ADMIN_CMD, cmd);
}
-static int nvme_submit_admin_passthru_retry(int fd,
- struct nvme_passthru_cmd *cmd, int maxretry)
-{
- return nvme_do_ioctl(fd, NVME_IOCTL_ADMIN_CMD, cmd, maxretry);
-}
-
static int nvme_submit_io_passthru(int fd, struct nvme_passthru_cmd *cmd)
{
return ioctl(fd, NVME_IOCTL_IO_CMD, cmd);
cmd.cdw12 = lpo;
cmd.cdw13 = (lpo >> 32);
- if (log_id == NVME_LOG_DISC)
- return nvme_submit_admin_passthru_retry(fd, &cmd,
- DISCOVERY_RETRIES);
- else
- return nvme_submit_admin_passthru(fd, &cmd);
+ return nvme_submit_admin_passthru(fd, &cmd);
}
#include "linux/nvme_ioctl.h"
#include "nvme.h"
-/* rate of ioctl retries */
-#define IOCTL_TIMESPERSEC 4
-/* delay between retries. Units in us */
-#define IOCTL_DELAY (1000000 / IOCTL_TIMESPERSEC) /* 250ms */
-
-#define NO_RETRIES 0
-#define DISCOVERY_RETRIES (IOCTL_TIMESPERSEC * 60) /* 60s */
-
int nvme_get_nsid(int fd);
/* Generic passthrough */