admin_state
if (atomic_read(&aq->admin_state) == IONIC_ADMIN_KILLED) {
atomic_set(&dev->admin_state, IONIC_ADMIN_KILLED);
wr->status = atomic_read(&aq->admin_state);
atomic_set(&aq->admin_state, IONIC_ADMIN_ACTIVE);
wr->status = atomic_read(&aq->admin_state);
atomic_set(&dev->admin_state, IONIC_ADMIN_ACTIVE);
wr->status = atomic_read(&aq->admin_state);
if (atomic_read(&aq->admin_state) != IONIC_ADMIN_ACTIVE)
if (atomic_read(&aq->admin_state) < IONIC_ADMIN_KILLED)
if (atomic_read(&aq->admin_state) < IONIC_ADMIN_KILLED)
atomic_set(&aq->admin_state, IONIC_ADMIN_KILLED);
if (atomic_read(&dev->admin_state) == IONIC_ADMIN_KILLED)
if (atomic_read(&aq->admin_state) != IONIC_ADMIN_KILLED) {
atomic_set(&aq->admin_state, IONIC_ADMIN_KILLED);
atomic_set(&dev->admin_state, IONIC_ADMIN_KILLED);
if (atomic_read(&aq->admin_state) == IONIC_ADMIN_KILLED)
old_state = atomic_cmpxchg(&dev->admin_state, IONIC_ADMIN_ACTIVE,
if (atomic_read(&aq->admin_state) == IONIC_ADMIN_ACTIVE)
atomic_set(&aq->admin_state, IONIC_ADMIN_PAUSED);
atomic_t admin_state;
atomic_t admin_state;
struct admin_state state;
static const struct admin_state_code *get_next_state(const struct admin_state *state,
bool vdo_finish_operation(struct admin_state *state, int result)
static int __must_check begin_operation(struct admin_state *state,
static inline bool __must_check start_operation(struct admin_state *state,
bool vdo_start_draining(struct admin_state *state,
bool vdo_finish_draining(struct admin_state *state)
bool vdo_finish_draining_with_result(struct admin_state *state, int result)
bool vdo_start_loading(struct admin_state *state,
bool vdo_finish_loading(struct admin_state *state)
bool vdo_finish_loading_with_result(struct admin_state *state, int result)
bool vdo_start_resuming(struct admin_state *state,
bool vdo_finish_resuming(struct admin_state *state)
bool vdo_finish_resuming_with_result(struct admin_state *state, int result)
int vdo_resume_if_quiescent(struct admin_state *state)
int vdo_start_operation(struct admin_state *state,
int vdo_start_operation_with_waiter(struct admin_state *state,
static inline bool __must_check vdo_is_state_saved(const struct admin_state *state)
static inline bool __must_check vdo_is_state_draining(const struct admin_state *state)
static inline bool __must_check vdo_is_state_loading(const struct admin_state *state)
static inline bool __must_check vdo_is_state_resuming(const struct admin_state *state)
static inline bool __must_check vdo_is_state_clean_load(const struct admin_state *state)
static inline bool __must_check vdo_is_state_quiescing(const struct admin_state *state)
static inline bool __must_check vdo_is_state_quiescent(const struct admin_state *state)
bool vdo_start_loading(struct admin_state *state,
bool vdo_finish_loading(struct admin_state *state);
bool vdo_finish_loading_with_result(struct admin_state *state, int result);
bool vdo_start_resuming(struct admin_state *state,
bool vdo_finish_resuming(struct admin_state *state);
bool vdo_finish_resuming_with_result(struct admin_state *state, int result);
int vdo_resume_if_quiescent(struct admin_state *state);
bool vdo_start_draining(struct admin_state *state,
bool vdo_finish_draining(struct admin_state *state);
bool vdo_finish_draining_with_result(struct admin_state *state, int result);
int vdo_start_operation(struct admin_state *state,
int vdo_start_operation_with_waiter(struct admin_state *state,
bool vdo_finish_operation(struct admin_state *state, int result);
typedef void (*vdo_admin_initiator_fn)(struct admin_state *state);
vdo_get_admin_state_code(const struct admin_state *state)
static inline void vdo_set_admin_state_code(struct admin_state *state,
static inline bool __must_check vdo_is_state_normal(const struct admin_state *state)
static inline bool __must_check vdo_is_state_suspending(const struct admin_state *state)
static inline bool __must_check vdo_is_state_saving(const struct admin_state *state)
static void initiate_drain(struct admin_state *state)
struct admin_state state;
struct admin_state state;
static void initiate_drain(struct admin_state *state)
static void initiate_suspend_index(struct admin_state *state)
static void initiate_drain(struct admin_state *state)
struct admin_state state;
struct admin_state state;
struct admin_state *state = &vdo->admin.state;
struct admin_state state;
static void initiate_drain(struct admin_state *state)
static void initiate_drain(struct admin_state *state)
struct admin_state state;
static void initiate_drain(struct admin_state *state)
struct admin_state state;
static void initiate_drain(struct admin_state *state)
struct admin_state state;
static void initiate_slab_action(struct admin_state *state)
if (!vdo_finish_draining(&scrubber->admin_state))
WRITE_ONCE(scrubber->admin_state.current_state,
if (vdo_finish_draining(&scrubber->admin_state))
vdo_resume_if_quiescent(&scrubber->admin_state);
if (vdo_is_state_quiescent(&allocator->scrubber.admin_state))
static void initiate_load(struct admin_state *state)
vdo_get_admin_state_code(&scrubber->admin_state)->name,
vdo_set_admin_state_code(&scrubber->admin_state, VDO_ADMIN_STATE_SUSPENDED);
if (vdo_is_state_quiescent(&scrubber->admin_state)) {
vdo_start_draining(&scrubber->admin_state,
static void initiate_summary_drain(struct admin_state *state)
static void initiate_drain(struct admin_state *state)
result = vdo_resume_if_quiescent(&scrubber->admin_state);
static void initiate_resume(struct admin_state *state)
struct admin_state state;
struct admin_state admin_state;
struct admin_state state;
struct admin_state summary_state;
struct admin_state state;
u8 admin_state;
MLX5_SET(modify_vport_state_in, in, admin_state, connect);
u8 admin_state;
&admin_state);
MLX5_SET(modify_vport_state_in, in, admin_state, admin_state);
u8 *admin_state)
*admin_state = MLX5_GET(query_vport_state_out, out, admin_state);
MLX5_SET(modify_vport_state_in, in, admin_state, state);
enum ethtool_c33_pse_admin_state admin_state[PD692X0_MAX_PIS];
if (priv->admin_state[id] == ETHTOOL_C33_PSE_ADMIN_STATE_ENABLED)
priv->admin_state[id] = ETHTOOL_C33_PSE_ADMIN_STATE_ENABLED;
if (priv->admin_state[id] == ETHTOOL_C33_PSE_ADMIN_STATE_DISABLED)
priv->admin_state[id] = ETHTOOL_C33_PSE_ADMIN_STATE_DISABLED;
struct pse_admin_state *admin_state)
admin_state->c33_admin_state =
admin_state->c33_admin_state =
priv->admin_state[id] = admin_state->c33_admin_state;
struct pse_admin_state *admin_state)
admin_state->podl_admin_state =
admin_state->podl_admin_state =
admin_state->c33_admin_state =
admin_state->c33_admin_state =
struct pse_admin_state admin_state = {0};
pse_get_sw_admin_state(psec, &admin_state);
&admin_state);
status->podl_admin_state = admin_state.podl_admin_state;
status->c33_admin_state = admin_state.c33_admin_state;
struct pse_admin_state admin_state = {0};
ret = pcdev->ops->pi_get_admin_state(pcdev, id, &admin_state);
if (admin_state.podl_admin_state == ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED ||
admin_state.c33_admin_state == ETHTOOL_C33_PSE_ADMIN_STATE_ENABLED)
priv->admin_state = ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED;
priv->admin_state = ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED;
enum ethtool_podl_pse_admin_state admin_state;
priv->admin_state = ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED;
priv->admin_state = ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED;
struct pse_admin_state *admin_state)
admin_state->podl_admin_state = priv->admin_state;
struct pse_admin_state *admin_state)
admin_state->c33_admin_state =
admin_state->c33_admin_state =
admin_state->c33_admin_state =
struct pse_admin_state *admin_state)
admin_state->c33_admin_state =
admin_state->c33_admin_state =
u8 admin_state;
u8 admin_state[0x4];
u8 admin_state[0x4];
struct pse_admin_state *admin_state);