MODULE_DESCRIPTION(IONIC_DRV_DESCRIPTION);
MODULE_AUTHOR("Shannon Nelson ");
MODULE_LICENSE("GPL");
staticconstchar *ionic_error_to_str(enum ionic_status_code code)
{ switch (code) { case IONIC_RC_SUCCESS: return"IONIC_RC_SUCCESS"; case IONIC_RC_EVERSION: return"IONIC_RC_EVERSION"; case IONIC_RC_EOPCODE: return"IONIC_RC_EOPCODE"; case IONIC_RC_EIO: return"IONIC_RC_EIO"; case IONIC_RC_EPERM: return"IONIC_RC_EPERM"; case IONIC_RC_EQID: return"IONIC_RC_EQID"; case IONIC_RC_EQTYPE: return"IONIC_RC_EQTYPE"; case IONIC_RC_ENOENT: return"IONIC_RC_ENOENT"; case IONIC_RC_EINTR: return"IONIC_RC_EINTR"; case IONIC_RC_EAGAIN: return"IONIC_RC_EAGAIN"; case IONIC_RC_ENOMEM: return"IONIC_RC_ENOMEM"; case IONIC_RC_EFAULT: return"IONIC_RC_EFAULT"; case IONIC_RC_EBUSY: return"IONIC_RC_EBUSY"; case IONIC_RC_EEXIST: return"IONIC_RC_EEXIST"; case IONIC_RC_EINVAL: return"IONIC_RC_EINVAL"; case IONIC_RC_ENOSPC: return"IONIC_RC_ENOSPC"; case IONIC_RC_ERANGE: return"IONIC_RC_ERANGE"; case IONIC_RC_BAD_ADDR: return"IONIC_RC_BAD_ADDR"; case IONIC_RC_DEV_CMD: return"IONIC_RC_DEV_CMD"; case IONIC_RC_ENOSUPP: return"IONIC_RC_ENOSUPP"; case IONIC_RC_ERROR: return"IONIC_RC_ERROR"; case IONIC_RC_ERDMA: return"IONIC_RC_ERDMA"; case IONIC_RC_EBAD_FW: return"IONIC_RC_EBAD_FW"; default: return"IONIC_RC_UNKNOWN";
}
}
staticint ionic_error_to_errno(enum ionic_status_code code)
{ switch (code) { case IONIC_RC_SUCCESS: return 0; case IONIC_RC_EVERSION: case IONIC_RC_EQTYPE: case IONIC_RC_EQID: case IONIC_RC_EINVAL: return -EINVAL; case IONIC_RC_ENOSUPP: return -EOPNOTSUPP; case IONIC_RC_EPERM: return -EPERM; case IONIC_RC_ENOENT: return -ENOENT; case IONIC_RC_EAGAIN: return -EAGAIN; case IONIC_RC_ENOMEM: return -ENOMEM; case IONIC_RC_EFAULT: return -EFAULT; case IONIC_RC_EBUSY: return -EBUSY; case IONIC_RC_EEXIST: return -EEXIST; case IONIC_RC_ENOSPC: return -ENOSPC; case IONIC_RC_ERANGE: return -ERANGE; case IONIC_RC_BAD_ADDR: return -EFAULT; case IONIC_RC_EOPCODE: case IONIC_RC_EINTR: case IONIC_RC_DEV_CMD: case IONIC_RC_ERROR: case IONIC_RC_ERDMA: case IONIC_RC_EIO: default: return -EIO;
}
}
staticconstchar *ionic_opcode_to_str(enum ionic_cmd_opcode opcode)
{ switch (opcode) { case IONIC_CMD_NOP: return"IONIC_CMD_NOP"; case IONIC_CMD_INIT: return"IONIC_CMD_INIT"; case IONIC_CMD_RESET: return"IONIC_CMD_RESET"; case IONIC_CMD_IDENTIFY: return"IONIC_CMD_IDENTIFY"; case IONIC_CMD_GETATTR: return"IONIC_CMD_GETATTR"; case IONIC_CMD_SETATTR: return"IONIC_CMD_SETATTR"; case IONIC_CMD_PORT_IDENTIFY: return"IONIC_CMD_PORT_IDENTIFY"; case IONIC_CMD_PORT_INIT: return"IONIC_CMD_PORT_INIT"; case IONIC_CMD_PORT_RESET: return"IONIC_CMD_PORT_RESET"; case IONIC_CMD_PORT_GETATTR: return"IONIC_CMD_PORT_GETATTR"; case IONIC_CMD_PORT_SETATTR: return"IONIC_CMD_PORT_SETATTR"; case IONIC_CMD_LIF_INIT: return"IONIC_CMD_LIF_INIT"; case IONIC_CMD_LIF_RESET: return"IONIC_CMD_LIF_RESET"; case IONIC_CMD_LIF_IDENTIFY: return"IONIC_CMD_LIF_IDENTIFY"; case IONIC_CMD_LIF_SETATTR: return"IONIC_CMD_LIF_SETATTR"; case IONIC_CMD_LIF_GETATTR: return"IONIC_CMD_LIF_GETATTR"; case IONIC_CMD_LIF_SETPHC: return"IONIC_CMD_LIF_SETPHC"; case IONIC_CMD_RX_MODE_SET: return"IONIC_CMD_RX_MODE_SET"; case IONIC_CMD_RX_FILTER_ADD: return"IONIC_CMD_RX_FILTER_ADD"; case IONIC_CMD_RX_FILTER_DEL: return"IONIC_CMD_RX_FILTER_DEL"; case IONIC_CMD_Q_IDENTIFY: return"IONIC_CMD_Q_IDENTIFY"; case IONIC_CMD_Q_INIT: return"IONIC_CMD_Q_INIT"; case IONIC_CMD_Q_CONTROL: return"IONIC_CMD_Q_CONTROL"; case IONIC_CMD_RDMA_RESET_LIF: return"IONIC_CMD_RDMA_RESET_LIF"; case IONIC_CMD_RDMA_CREATE_EQ: return"IONIC_CMD_RDMA_CREATE_EQ"; case IONIC_CMD_RDMA_CREATE_CQ: return"IONIC_CMD_RDMA_CREATE_CQ"; case IONIC_CMD_RDMA_CREATE_ADMINQ: return"IONIC_CMD_RDMA_CREATE_ADMINQ"; case IONIC_CMD_FW_DOWNLOAD: return"IONIC_CMD_FW_DOWNLOAD"; case IONIC_CMD_FW_CONTROL: return"IONIC_CMD_FW_CONTROL"; case IONIC_CMD_FW_DOWNLOAD_V1: return"IONIC_CMD_FW_DOWNLOAD_V1"; case IONIC_CMD_FW_CONTROL_V1: return"IONIC_CMD_FW_CONTROL_V1"; case IONIC_CMD_VF_GETATTR: return"IONIC_CMD_VF_GETATTR"; case IONIC_CMD_VF_SETATTR: return"IONIC_CMD_VF_SETATTR"; default: return"DEVCMD_UNKNOWN";
}
}
/* force a check of FW status and break out if FW reset */
ionic_heartbeat_check(lif->ionic); if ((test_bit(IONIC_LIF_F_FW_RESET, lif->state) &&
!lif->ionic->idev.fw_status_ready) ||
test_bit(IONIC_LIF_F_FW_STOPPING, lif->state)) { if (do_msg)
netdev_warn(netdev, "%s (%d) interrupted, FW in reset\n",
name, ctx->cmd.cmd.opcode);
ctx->comp.comp.status = IONIC_RC_ERROR; return -ENXIO;
}
} while (time_before(jiffies, time_limit));
time_done = jiffies;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.