atomic_clear_mask(ZFCP_STATUS_ADAPTER_QDIOUP, &adapter->status);
write_unlock_irq(&req_queue->queue_lock);
- debug_text_event(adapter->erp_dbf, 3, "qdio_down2a");
while (qdio_shutdown(adapter->ccw_device,
QDIO_FLAG_CLEANUP_USING_CLEAR) == -EINPROGRESS)
ssleep(1);
- debug_text_event(adapter->erp_dbf, 3, "qdio_down2b");
/* cleanup used outbound sbals */
count = atomic_read(&req_queue->free_count);
{
int retval;
- debug_text_event(adapter->erp_dbf, 5, "a_ro");
ZFCP_LOG_DEBUG("reopen adapter %s\n",
zfcp_get_busid_by_adapter(adapter));
if (atomic_test_mask(ZFCP_STATUS_COMMON_ERP_FAILED, &adapter->status)) {
ZFCP_LOG_DEBUG("skipped reopen of failed adapter %s\n",
zfcp_get_busid_by_adapter(adapter));
- debug_text_event(adapter->erp_dbf, 5, "a_ro_f");
/* ensure propagation of failed status to new devices */
zfcp_erp_adapter_failed(adapter, 13, 0);
retval = -EIO;
"force physical port reopen "
"(adapter %s, port d_id=0x%06x)\n",
zfcp_get_busid_by_adapter(adapter), d_id);
- debug_text_event(adapter->erp_dbf, 3, "forcreop");
if (zfcp_erp_port_forced_reopen(port, 0, 63, 0))
ZFCP_LOG_NORMAL("failed reopen of port "
"(adapter %s, wwpn=0x%016Lx)\n",
int clear_mask, u8 id, u64 ref)
{
int retval;
- struct zfcp_adapter *adapter = port->adapter;
-
- debug_text_event(adapter->erp_dbf, 5, "pf_ro");
- debug_event(adapter->erp_dbf, 5, &port->wwpn, sizeof (wwn_t));
ZFCP_LOG_DEBUG("forced reopen of port 0x%016Lx on adapter %s\n",
port->wwpn, zfcp_get_busid_by_port(port));
ZFCP_LOG_DEBUG("skipped forced reopen of failed port 0x%016Lx "
"on adapter %s\n", port->wwpn,
zfcp_get_busid_by_port(port));
- debug_text_event(adapter->erp_dbf, 5, "pf_ro_f");
- debug_event(adapter->erp_dbf, 5, &port->wwpn, sizeof (wwn_t));
retval = -EIO;
goto out;
}
u8 id, u64 ref)
{
int retval;
- struct zfcp_adapter *adapter = port->adapter;
-
- debug_text_event(adapter->erp_dbf, 5, "p_ro");
- debug_event(adapter->erp_dbf, 5, &port->wwpn, sizeof (wwn_t));
ZFCP_LOG_DEBUG("reopen of port 0x%016Lx on adapter %s\n",
port->wwpn, zfcp_get_busid_by_port(port));
ZFCP_LOG_DEBUG("skipped reopen of failed port 0x%016Lx "
"on adapter %s\n", port->wwpn,
zfcp_get_busid_by_port(port));
- debug_text_event(adapter->erp_dbf, 5, "p_ro_f");
- debug_event(adapter->erp_dbf, 5, &port->wwpn, sizeof (wwn_t));
/* ensure propagation of failed status to new devices */
zfcp_erp_port_failed(port, 14, 0);
retval = -EIO;
int retval;
struct zfcp_adapter *adapter = unit->port->adapter;
- debug_text_event(adapter->erp_dbf, 5, "u_ro");
- debug_event(adapter->erp_dbf, 5, &unit->fcp_lun, sizeof (fcp_lun_t));
ZFCP_LOG_DEBUG("reopen of unit 0x%016Lx on port 0x%016Lx "
"on adapter %s\n", unit->fcp_lun,
unit->port->wwpn, zfcp_get_busid_by_unit(unit));
"on port 0x%016Lx on adapter %s\n",
unit->fcp_lun, unit->port->wwpn,
zfcp_get_busid_by_unit(unit));
- debug_text_event(adapter->erp_dbf, 5, "u_ro_f");
- debug_event(adapter->erp_dbf, 5, &unit->fcp_lun,
- sizeof (fcp_lun_t));
retval = -EIO;
goto out;
}
*/
static void zfcp_erp_adapter_block(struct zfcp_adapter *adapter, int clear_mask)
{
- debug_text_event(adapter->erp_dbf, 6, "a_bl");
zfcp_erp_modify_adapter_status(adapter, 15, 0,
ZFCP_STATUS_COMMON_UNBLOCKED |
clear_mask, ZFCP_CLEAR);
*/
static void zfcp_erp_adapter_unblock(struct zfcp_adapter *adapter)
{
- debug_text_event(adapter->erp_dbf, 6, "a_ubl");
if (atomic_test_and_set_mask(ZFCP_STATUS_COMMON_UNBLOCKED,
&adapter->status))
zfcp_rec_dbf_event_adapter(16, 0, adapter);
static void
zfcp_erp_port_block(struct zfcp_port *port, int clear_mask)
{
- struct zfcp_adapter *adapter = port->adapter;
-
- debug_text_event(adapter->erp_dbf, 6, "p_bl");
- debug_event(adapter->erp_dbf, 6, &port->wwpn, sizeof (wwn_t));
zfcp_erp_modify_port_status(port, 17, 0,
ZFCP_STATUS_COMMON_UNBLOCKED | clear_mask,
ZFCP_CLEAR);
static void
zfcp_erp_port_unblock(struct zfcp_port *port)
{
- struct zfcp_adapter *adapter = port->adapter;
-
- debug_text_event(adapter->erp_dbf, 6, "p_ubl");
- debug_event(adapter->erp_dbf, 6, &port->wwpn, sizeof (wwn_t));
if (atomic_test_and_set_mask(ZFCP_STATUS_COMMON_UNBLOCKED,
&port->status))
zfcp_rec_dbf_event_port(18, 0, port);
static void
zfcp_erp_unit_block(struct zfcp_unit *unit, int clear_mask)
{
- struct zfcp_adapter *adapter = unit->port->adapter;
-
- debug_text_event(adapter->erp_dbf, 6, "u_bl");
- debug_event(adapter->erp_dbf, 6, &unit->fcp_lun, sizeof (fcp_lun_t));
zfcp_erp_modify_unit_status(unit, 19, 0,
ZFCP_STATUS_COMMON_UNBLOCKED | clear_mask,
ZFCP_CLEAR);
static void
zfcp_erp_unit_unblock(struct zfcp_unit *unit)
{
- struct zfcp_adapter *adapter = unit->port->adapter;
-
- debug_text_event(adapter->erp_dbf, 6, "u_ubl");
- debug_event(adapter->erp_dbf, 6, &unit->fcp_lun, sizeof (fcp_lun_t));
if (atomic_test_and_set_mask(ZFCP_STATUS_COMMON_UNBLOCKED,
&unit->status))
zfcp_rec_dbf_event_unit(20, 0, unit);
{
struct zfcp_adapter *adapter = erp_action->adapter;
- debug_text_event(adapter->erp_dbf, 4, "a_ar");
- debug_event(adapter->erp_dbf, 4, &erp_action->action, sizeof (int));
-
zfcp_erp_action_to_ready(erp_action);
up(&adapter->erp_ready_sem);
zfcp_rec_dbf_event_thread(2, adapter, 0);
if (zfcp_reqlist_find_safe(adapter, erp_action->fsf_req) &&
erp_action->fsf_req->erp_action == erp_action) {
/* fsf_req still exists */
- debug_text_event(adapter->erp_dbf, 3, "a_ca_req");
- debug_event(adapter->erp_dbf, 3, &erp_action->fsf_req,
- sizeof (unsigned long));
/* dismiss fsf_req of timed out/dismissed erp_action */
if (erp_action->status & (ZFCP_STATUS_ERP_DISMISSED |
ZFCP_STATUS_ERP_TIMEDOUT)) {
- debug_text_event(adapter->erp_dbf, 3,
- "a_ca_disreq");
erp_action->fsf_req->status |=
ZFCP_STATUS_FSFREQ_DISMISSED;
zfcp_rec_dbf_event_action(142, erp_action);
erp_action->fsf_req = NULL;
}
} else {
- debug_text_event(adapter->erp_dbf, 3, "a_ca_gonereq");
/*
* even if this fsf_req has gone, forget about
* association between erp_action and fsf_req
erp_action->fsf_req = NULL;
}
spin_unlock(&adapter->req_list_lock);
- } else
- debug_text_event(adapter->erp_dbf, 3, "a_ca_noreq");
+ }
}
/**
static void zfcp_erp_async_handler_nolock(struct zfcp_erp_action *erp_action,
unsigned long set_mask)
{
- struct zfcp_adapter *adapter = erp_action->adapter;
-
if (zfcp_erp_action_exists(erp_action) == ZFCP_ERP_ACTION_RUNNING) {
- debug_text_event(adapter->erp_dbf, 2, "a_asyh_ex");
- debug_event(adapter->erp_dbf, 2, &erp_action->action,
- sizeof (int));
erp_action->status |= set_mask;
zfcp_erp_action_ready(erp_action);
} else {
/* action is ready or gone - nothing to do */
- debug_text_event(adapter->erp_dbf, 3, "a_asyh_gone");
- debug_event(adapter->erp_dbf, 3, &erp_action->action,
- sizeof (int));
}
}
zfcp_erp_memwait_handler(unsigned long data)
{
struct zfcp_erp_action *erp_action = (struct zfcp_erp_action *) data;
- struct zfcp_adapter *adapter = erp_action->adapter;
-
- debug_text_event(adapter->erp_dbf, 2, "a_mwh");
- debug_event(adapter->erp_dbf, 2, &erp_action->action, sizeof (int));
zfcp_erp_async_handler(erp_action, 0);
}
static void zfcp_erp_timeout_handler(unsigned long data)
{
struct zfcp_erp_action *erp_action = (struct zfcp_erp_action *) data;
- struct zfcp_adapter *adapter = erp_action->adapter;
-
- debug_text_event(adapter->erp_dbf, 2, "a_th");
- debug_event(adapter->erp_dbf, 2, &erp_action->action, sizeof (int));
zfcp_erp_async_handler(erp_action, ZFCP_STATUS_ERP_TIMEDOUT);
}
*/
static void zfcp_erp_action_dismiss(struct zfcp_erp_action *erp_action)
{
- struct zfcp_adapter *adapter = erp_action->adapter;
-
- debug_text_event(adapter->erp_dbf, 2, "a_adis");
- debug_event(adapter->erp_dbf, 2, &erp_action->action, sizeof (int));
-
erp_action->status |= ZFCP_STATUS_ERP_DISMISSED;
if (zfcp_erp_action_exists(erp_action) == ZFCP_ERP_ACTION_RUNNING)
zfcp_erp_action_ready(erp_action);
ZFCP_LOG_NORMAL("error: creation of erp thread failed for "
"adapter %s\n",
zfcp_get_busid_by_adapter(adapter));
- debug_text_event(adapter->erp_dbf, 5, "a_thset_fail");
} else {
wait_event(adapter->erp_thread_wqh,
atomic_test_mask(ZFCP_STATUS_ADAPTER_ERP_THREAD_UP,
&adapter->status));
- debug_text_event(adapter->erp_dbf, 5, "a_thset_ok");
}
return (retval < 0);
atomic_clear_mask(ZFCP_STATUS_ADAPTER_ERP_THREAD_KILL,
&adapter->status);
- debug_text_event(adapter->erp_dbf, 5, "a_thki_ok");
-
return retval;
}
/* Block all signals */
siginitsetinv(¤t->blocked, 0);
atomic_set_mask(ZFCP_STATUS_ADAPTER_ERP_THREAD_UP, &adapter->status);
- debug_text_event(adapter->erp_dbf, 5, "a_th_run");
wake_up(&adapter->erp_thread_wqh);
while (!atomic_test_mask(ZFCP_STATUS_ADAPTER_ERP_THREAD_KILL,
zfcp_rec_dbf_event_thread(4, adapter, 1);
down_interruptible(&adapter->erp_ready_sem);
zfcp_rec_dbf_event_thread(5, adapter, 1);
- debug_text_event(adapter->erp_dbf, 5, "a_th_woken");
}
atomic_clear_mask(ZFCP_STATUS_ADAPTER_ERP_THREAD_UP, &adapter->status);
- debug_text_event(adapter->erp_dbf, 5, "a_th_stop");
wake_up(&adapter->erp_thread_wqh);
return 0;
/* dequeue dismissed action and leave, if required */
retval = zfcp_erp_strategy_check_action(erp_action, retval);
if (retval == ZFCP_ERP_DISMISSED) {
- debug_text_event(adapter->erp_dbf, 4, "a_st_dis1");
goto unlock;
}
element was timed out.
*/
if (adapter->erp_total_count == adapter->erp_low_mem_count) {
- debug_text_event(adapter->erp_dbf, 3, "a_st_lowmem");
ZFCP_LOG_NORMAL("error: no mempool elements available, "
"restarting I/O on adapter %s "
"to free mempool\n",
zfcp_get_busid_by_adapter(adapter));
zfcp_erp_adapter_reopen_internal(adapter, 0, 66, 0);
} else {
- debug_text_event(adapter->erp_dbf, 2, "a_st_memw");
retval = zfcp_erp_strategy_memwait(erp_action);
}
goto unlock;
case ZFCP_ERP_CONTINUES:
/* leave since this action runs asynchronously */
- debug_text_event(adapter->erp_dbf, 6, "a_st_cont");
if (erp_action->status & ZFCP_STATUS_ERP_LOWMEM) {
--adapter->erp_low_mem_count;
erp_action->status &= ~ZFCP_STATUS_ERP_LOWMEM;
* action is repeated in order to process state change
*/
if (retval == ZFCP_ERP_EXIT) {
- debug_text_event(adapter->erp_dbf, 2, "a_st_exit");
goto unlock;
}
if (retval != ZFCP_ERP_DISMISSED)
zfcp_erp_strategy_check_queues(adapter);
- debug_text_event(adapter->erp_dbf, 6, "a_st_done");
-
return retval;
}
static int
zfcp_erp_strategy_check_action(struct zfcp_erp_action *erp_action, int retval)
{
- struct zfcp_adapter *adapter = erp_action->adapter;
-
zfcp_erp_strategy_check_fsfreq(erp_action);
- debug_event(adapter->erp_dbf, 5, &erp_action->action, sizeof (int));
if (erp_action->status & ZFCP_STATUS_ERP_DISMISSED) {
- debug_text_event(adapter->erp_dbf, 3, "a_stcd_dis");
zfcp_erp_action_dequeue(erp_action);
retval = ZFCP_ERP_DISMISSED;
- } else
- debug_text_event(adapter->erp_dbf, 5, "a_stcd_nodis");
+ }
return retval;
}
zfcp_erp_strategy_do_action(struct zfcp_erp_action *erp_action)
{
int retval = ZFCP_ERP_FAILED;
- struct zfcp_adapter *adapter = erp_action->adapter;
/*
* try to execute/continue action as far as possible,
break;
default:
- debug_text_exception(adapter->erp_dbf, 1, "a_stda_bug");
- debug_event(adapter->erp_dbf, 1, &erp_action->action,
- sizeof (int));
ZFCP_LOG_NORMAL("bug: unknown erp action requested on "
"adapter %s (action=%d)\n",
zfcp_get_busid_by_adapter(erp_action->adapter),
zfcp_erp_strategy_memwait(struct zfcp_erp_action *erp_action)
{
int retval = ZFCP_ERP_CONTINUES;
- struct zfcp_adapter *adapter = erp_action->adapter;
- debug_text_event(adapter->erp_dbf, 6, "a_mwinit");
- debug_event(adapter->erp_dbf, 6, &erp_action->action, sizeof (int));
init_timer(&erp_action->timer);
erp_action->timer.function = zfcp_erp_memwait_handler;
erp_action->timer.data = (unsigned long) erp_action;
ZFCP_STATUS_COMMON_ERP_FAILED, ZFCP_SET);
ZFCP_LOG_NORMAL("adapter erp failed on adapter %s\n",
zfcp_get_busid_by_adapter(adapter));
- debug_text_event(adapter->erp_dbf, 2, "a_afail");
}
/*
else
ZFCP_LOG_NORMAL("port erp failed (adapter %s, wwpn=0x%016Lx)\n",
zfcp_get_busid_by_port(port), port->wwpn);
-
- debug_text_event(port->adapter->erp_dbf, 2, "p_pfail");
- debug_event(port->adapter->erp_dbf, 2, &port->wwpn, sizeof (wwn_t));
}
/*
ZFCP_LOG_NORMAL("unit erp failed on unit 0x%016Lx on port 0x%016Lx "
" on adapter %s\n", unit->fcp_lun,
unit->port->wwpn, zfcp_get_busid_by_unit(unit));
- debug_text_event(unit->port->adapter->erp_dbf, 2, "u_ufail");
- debug_event(unit->port->adapter->erp_dbf, 2,
- &unit->fcp_lun, sizeof (fcp_lun_t));
}
/*
struct zfcp_port *port = erp_action->port;
struct zfcp_unit *unit = erp_action->unit;
- debug_text_event(adapter->erp_dbf, 5, "a_stct_norm");
- debug_event(adapter->erp_dbf, 5, &erp_action->action, sizeof (int));
- debug_event(adapter->erp_dbf, 5, &result, sizeof (int));
-
switch (erp_action->action) {
case ZFCP_ERP_ACTION_REOPEN_UNIT:
struct zfcp_port *port,
struct zfcp_unit *unit, int retval)
{
- debug_text_event(adapter->erp_dbf, 3, "a_stsc");
- debug_event(adapter->erp_dbf, 3, &action, sizeof (int));
-
switch (action) {
case ZFCP_ERP_ACTION_REOPEN_ADAPTER:
static int
zfcp_erp_strategy_check_unit(struct zfcp_unit *unit, int result)
{
- debug_text_event(unit->port->adapter->erp_dbf, 5, "u_stct");
- debug_event(unit->port->adapter->erp_dbf, 5, &unit->fcp_lun,
- sizeof (fcp_lun_t));
-
switch (result) {
case ZFCP_ERP_SUCCEEDED :
atomic_set(&unit->erp_counter, 0);
static int
zfcp_erp_strategy_check_port(struct zfcp_port *port, int result)
{
- debug_text_event(port->adapter->erp_dbf, 5, "p_stct");
- debug_event(port->adapter->erp_dbf, 5, &port->wwpn, sizeof (wwn_t));
-
switch (result) {
case ZFCP_ERP_SUCCEEDED :
atomic_set(&port->erp_counter, 0);
static int
zfcp_erp_strategy_check_adapter(struct zfcp_adapter *adapter, int result)
{
- debug_text_event(adapter->erp_dbf, 5, "a_stct");
-
switch (result) {
case ZFCP_ERP_SUCCEEDED :
atomic_set(&adapter->erp_counter, 0);
struct zfcp_port *port,
struct zfcp_unit *unit, int status)
{
- debug_text_event(adapter->erp_dbf, 5, "a_stfol");
- debug_event(adapter->erp_dbf, 5, &action, sizeof (int));
-
/* initiate follow-up actions depending on success of finished action */
switch (action) {
read_lock(&adapter->erp_lock);
if (list_empty(&adapter->erp_ready_head) &&
list_empty(&adapter->erp_running_head)) {
- debug_text_event(adapter->erp_dbf, 4, "a_cq_wake");
atomic_clear_mask(ZFCP_STATUS_ADAPTER_ERP_PENDING,
&adapter->status);
wake_up(&adapter->erp_done_wqh);
- } else
- debug_text_event(adapter->erp_dbf, 5, "a_cq_notempty");
+ }
read_unlock(&adapter->erp_lock);
read_unlock_irqrestore(&zfcp_data.config_lock, flags);
if (set_or_clear == ZFCP_SET) {
changed = atomic_test_and_set_mask(mask, &adapter->status);
- debug_text_event(adapter->erp_dbf, 3, "a_mod_as_s");
} else {
changed = atomic_test_and_clear_mask(mask, &adapter->status);
if (mask & ZFCP_STATUS_COMMON_ERP_FAILED)
atomic_set(&adapter->erp_counter, 0);
- debug_text_event(adapter->erp_dbf, 3, "a_mod_as_c");
}
if (changed)
zfcp_rec_dbf_event_adapter(id, ref, adapter);
- debug_event(adapter->erp_dbf, 3, &mask, sizeof (u32));
/* Deal with all underlying devices, only pass common_mask */
if (common_mask)
if (set_or_clear == ZFCP_SET) {
changed = atomic_test_and_set_mask(mask, &port->status);
- debug_text_event(port->adapter->erp_dbf, 3, "p_mod_ps_s");
} else {
changed = atomic_test_and_clear_mask(mask, &port->status);
if (mask & ZFCP_STATUS_COMMON_ERP_FAILED)
atomic_set(&port->erp_counter, 0);
- debug_text_event(port->adapter->erp_dbf, 3, "p_mod_ps_c");
}
if (changed)
zfcp_rec_dbf_event_port(id, ref, port);
- debug_event(port->adapter->erp_dbf, 3, &port->wwpn, sizeof (wwn_t));
- debug_event(port->adapter->erp_dbf, 3, &mask, sizeof (u32));
/* Modify status of all underlying devices, only pass common mask */
if (common_mask)
if (set_or_clear == ZFCP_SET) {
changed = atomic_test_and_set_mask(mask, &unit->status);
- debug_text_event(unit->port->adapter->erp_dbf, 3, "u_mod_us_s");
} else {
changed = atomic_test_and_clear_mask(mask, &unit->status);
if (mask & ZFCP_STATUS_COMMON_ERP_FAILED) {
atomic_set(&unit->erp_counter, 0);
}
- debug_text_event(unit->port->adapter->erp_dbf, 3, "u_mod_us_c");
}
if (changed)
zfcp_rec_dbf_event_unit(id, ref, unit);
- debug_event(unit->port->adapter->erp_dbf, 3, &unit->fcp_lun,
- sizeof (fcp_lun_t));
- debug_event(unit->port->adapter->erp_dbf, 3, &mask, sizeof (u32));
}
/*
else
retval = zfcp_erp_adapter_strategy_open(erp_action);
- debug_text_event(adapter->erp_dbf, 3, "a_ast/ret");
- debug_event(adapter->erp_dbf, 3, &erp_action->action, sizeof (int));
- debug_event(adapter->erp_dbf, 3, &retval, sizeof (int));
-
if (retval == ZFCP_ERP_FAILED) {
ZFCP_LOG_INFO("Waiting to allow the adapter %s "
"to recover itself\n",
zfcp_get_busid_by_adapter(adapter));
goto failed_qdio_establish;
}
- debug_text_event(adapter->erp_dbf, 3, "qdio_est");
if (qdio_activate(adapter->ccw_device, 0) != 0) {
ZFCP_LOG_INFO("error: activation of QDIO queues failed "
zfcp_get_busid_by_adapter(adapter));
goto failed_qdio_activate;
}
- debug_text_event(adapter->erp_dbf, 3, "qdio_act");
/*
* put buffers into response queue,
/* NOP */
failed_qdio_activate:
- debug_text_event(adapter->erp_dbf, 3, "qdio_down1a");
while (qdio_shutdown(adapter->ccw_device,
QDIO_FLAG_CLEANUP_USING_CLEAR) == -EINPROGRESS)
ssleep(1);
- debug_text_event(adapter->erp_dbf, 3, "qdio_down1b");
failed_qdio_establish:
failed_sanity:
write_unlock_irq(&adapter->erp_lock);
if (zfcp_fsf_exchange_config_data(erp_action)) {
retval = ZFCP_ERP_FAILED;
- debug_text_event(adapter->erp_dbf, 5, "a_fstx_xf");
ZFCP_LOG_INFO("error: initiation of exchange of "
"configuration data failed for "
"adapter %s\n",
zfcp_get_busid_by_adapter(adapter));
break;
}
- debug_text_event(adapter->erp_dbf, 6, "a_fstx_xok");
ZFCP_LOG_DEBUG("Xchange underway\n");
/*
ret = zfcp_fsf_exchange_port_data(erp_action);
if (ret == -EOPNOTSUPP) {
- debug_text_event(adapter->erp_dbf, 3, "a_xport_notsupp");
return ZFCP_ERP_SUCCEEDED;
} else if (ret) {
- debug_text_event(adapter->erp_dbf, 3, "a_xport_failed");
return ZFCP_ERP_FAILED;
}
- debug_text_event(adapter->erp_dbf, 6, "a_xport_ok");
ret = ZFCP_ERP_SUCCEEDED;
zfcp_rec_dbf_event_thread(8, adapter, 1);
{
int retval = ZFCP_ERP_FAILED;
struct zfcp_port *port = erp_action->port;
- struct zfcp_adapter *adapter = erp_action->adapter;
switch (erp_action->step) {
break;
}
- debug_text_event(adapter->erp_dbf, 3, "p_pfst/ret");
- debug_event(adapter->erp_dbf, 3, &port->wwpn, sizeof (wwn_t));
- debug_event(adapter->erp_dbf, 3, &erp_action->action, sizeof (int));
- debug_event(adapter->erp_dbf, 3, &retval, sizeof (int));
-
return retval;
}
{
int retval = ZFCP_ERP_FAILED;
struct zfcp_port *port = erp_action->port;
- struct zfcp_adapter *adapter = erp_action->adapter;
switch (erp_action->step) {
retval = zfcp_erp_port_strategy_open(erp_action);
out:
- debug_text_event(adapter->erp_dbf, 3, "p_pst/ret");
- debug_event(adapter->erp_dbf, 3, &port->wwpn, sizeof (wwn_t));
- debug_event(adapter->erp_dbf, 3, &erp_action->action, sizeof (int));
- debug_event(adapter->erp_dbf, 3, &retval, sizeof (int));
-
return retval;
}
read_lock_irqsave(&adapter->erp_lock, flags);
list_for_each_entry_safe(erp_action, tmp, &adapter->erp_running_head,
list) {
- debug_text_event(adapter->erp_dbf, 4, "p_pstnsw_n");
- debug_event(adapter->erp_dbf, 4, &erp_action->port->wwpn,
- sizeof (wwn_t));
if (erp_action->step == ZFCP_ERP_STEP_NAMESERVER_OPEN) {
- debug_text_event(adapter->erp_dbf, 3, "p_pstnsw_w");
- debug_event(adapter->erp_dbf, 3,
- &erp_action->port->wwpn, sizeof (wwn_t));
if (atomic_test_mask(
ZFCP_STATUS_COMMON_ERP_FAILED,
&adapter->nameserver_port->status))
zfcp_erp_port_forced_strategy_close(struct zfcp_erp_action *erp_action)
{
int retval;
- struct zfcp_adapter *adapter = erp_action->adapter;
- struct zfcp_port *port = erp_action->port;
retval = zfcp_fsf_close_physical_port(erp_action);
if (retval == -ENOMEM) {
- debug_text_event(adapter->erp_dbf, 5, "o_pfstc_nomem");
- debug_event(adapter->erp_dbf, 5, &port->wwpn, sizeof (wwn_t));
retval = ZFCP_ERP_NOMEM;
goto out;
}
erp_action->step = ZFCP_ERP_STEP_PHYS_PORT_CLOSING;
if (retval != 0) {
- debug_text_event(adapter->erp_dbf, 5, "o_pfstc_cpf");
- debug_event(adapter->erp_dbf, 5, &port->wwpn, sizeof (wwn_t));
/* could not send 'open', fail */
retval = ZFCP_ERP_FAILED;
goto out;
}
- debug_text_event(adapter->erp_dbf, 6, "o_pfstc_cpok");
- debug_event(adapter->erp_dbf, 6, &port->wwpn, sizeof (wwn_t));
retval = ZFCP_ERP_CONTINUES;
out:
return retval;
zfcp_erp_port_strategy_clearstati(struct zfcp_port *port)
{
int retval = 0;
- struct zfcp_adapter *adapter = port->adapter;
-
- debug_text_event(adapter->erp_dbf, 5, "p_pstclst");
- debug_event(adapter->erp_dbf, 5, &port->wwpn, sizeof (wwn_t));
atomic_clear_mask(ZFCP_STATUS_COMMON_OPENING |
ZFCP_STATUS_COMMON_CLOSING |
zfcp_erp_port_strategy_close(struct zfcp_erp_action *erp_action)
{
int retval;
- struct zfcp_adapter *adapter = erp_action->adapter;
- struct zfcp_port *port = erp_action->port;
retval = zfcp_fsf_close_port(erp_action);
if (retval == -ENOMEM) {
- debug_text_event(adapter->erp_dbf, 5, "p_pstc_nomem");
- debug_event(adapter->erp_dbf, 5, &port->wwpn, sizeof (wwn_t));
retval = ZFCP_ERP_NOMEM;
goto out;
}
erp_action->step = ZFCP_ERP_STEP_PORT_CLOSING;
if (retval != 0) {
- debug_text_event(adapter->erp_dbf, 5, "p_pstc_cpf");
- debug_event(adapter->erp_dbf, 5, &port->wwpn, sizeof (wwn_t));
/* could not send 'close', fail */
retval = ZFCP_ERP_FAILED;
goto out;
}
- debug_text_event(adapter->erp_dbf, 6, "p_pstc_cpok");
- debug_event(adapter->erp_dbf, 6, &port->wwpn, sizeof (wwn_t));
retval = ZFCP_ERP_CONTINUES;
out:
return retval;
zfcp_erp_port_strategy_open_port(struct zfcp_erp_action *erp_action)
{
int retval;
- struct zfcp_adapter *adapter = erp_action->adapter;
- struct zfcp_port *port = erp_action->port;
retval = zfcp_fsf_open_port(erp_action);
if (retval == -ENOMEM) {
- debug_text_event(adapter->erp_dbf, 5, "p_psto_nomem");
- debug_event(adapter->erp_dbf, 5, &port->wwpn, sizeof (wwn_t));
retval = ZFCP_ERP_NOMEM;
goto out;
}
erp_action->step = ZFCP_ERP_STEP_PORT_OPENING;
if (retval != 0) {
- debug_text_event(adapter->erp_dbf, 5, "p_psto_opf");
- debug_event(adapter->erp_dbf, 5, &port->wwpn, sizeof (wwn_t));
/* could not send 'open', fail */
retval = ZFCP_ERP_FAILED;
goto out;
}
- debug_text_event(adapter->erp_dbf, 6, "p_psto_opok");
- debug_event(adapter->erp_dbf, 6, &port->wwpn, sizeof (wwn_t));
retval = ZFCP_ERP_CONTINUES;
out:
return retval;
zfcp_erp_port_strategy_open_common_lookup(struct zfcp_erp_action *erp_action)
{
int retval;
- struct zfcp_adapter *adapter = erp_action->adapter;
- struct zfcp_port *port = erp_action->port;
retval = zfcp_ns_gid_pn_request(erp_action);
if (retval == -ENOMEM) {
- debug_text_event(adapter->erp_dbf, 5, "p_pstn_nomem");
- debug_event(adapter->erp_dbf, 5, &port->wwpn, sizeof (wwn_t));
retval = ZFCP_ERP_NOMEM;
goto out;
}
erp_action->step = ZFCP_ERP_STEP_NAMESERVER_LOOKUP;
if (retval != 0) {
- debug_text_event(adapter->erp_dbf, 5, "p_pstn_ref");
- debug_event(adapter->erp_dbf, 5, &port->wwpn, sizeof (wwn_t));
/* could not send nameserver request, fail */
retval = ZFCP_ERP_FAILED;
goto out;
}
- debug_text_event(adapter->erp_dbf, 6, "p_pstn_reok");
- debug_event(adapter->erp_dbf, 6, &port->wwpn, sizeof (wwn_t));
retval = ZFCP_ERP_CONTINUES;
out:
return retval;
{
int retval = ZFCP_ERP_FAILED;
struct zfcp_unit *unit = erp_action->unit;
- struct zfcp_adapter *adapter = erp_action->adapter;
switch (erp_action->step) {
break;
}
- debug_text_event(adapter->erp_dbf, 3, "u_ust/ret");
- debug_event(adapter->erp_dbf, 3, &unit->fcp_lun, sizeof (fcp_lun_t));
- debug_event(adapter->erp_dbf, 3, &erp_action->action, sizeof (int));
- debug_event(adapter->erp_dbf, 3, &retval, sizeof (int));
return retval;
}
zfcp_erp_unit_strategy_clearstati(struct zfcp_unit *unit)
{
int retval = 0;
- struct zfcp_adapter *adapter = unit->port->adapter;
-
- debug_text_event(adapter->erp_dbf, 5, "u_ustclst");
- debug_event(adapter->erp_dbf, 5, &unit->fcp_lun, sizeof (fcp_lun_t));
atomic_clear_mask(ZFCP_STATUS_COMMON_OPENING |
ZFCP_STATUS_COMMON_CLOSING |
zfcp_erp_unit_strategy_close(struct zfcp_erp_action *erp_action)
{
int retval;
- struct zfcp_adapter *adapter = erp_action->adapter;
- struct zfcp_unit *unit = erp_action->unit;
retval = zfcp_fsf_close_unit(erp_action);
if (retval == -ENOMEM) {
- debug_text_event(adapter->erp_dbf, 5, "u_ustc_nomem");
- debug_event(adapter->erp_dbf, 5, &unit->fcp_lun,
- sizeof (fcp_lun_t));
retval = ZFCP_ERP_NOMEM;
goto out;
}
erp_action->step = ZFCP_ERP_STEP_UNIT_CLOSING;
if (retval != 0) {
- debug_text_event(adapter->erp_dbf, 5, "u_ustc_cuf");
- debug_event(adapter->erp_dbf, 5, &unit->fcp_lun,
- sizeof (fcp_lun_t));
/* could not send 'close', fail */
retval = ZFCP_ERP_FAILED;
goto out;
}
- debug_text_event(adapter->erp_dbf, 6, "u_ustc_cuok");
- debug_event(adapter->erp_dbf, 6, &unit->fcp_lun, sizeof (fcp_lun_t));
retval = ZFCP_ERP_CONTINUES;
out:
zfcp_erp_unit_strategy_open(struct zfcp_erp_action *erp_action)
{
int retval;
- struct zfcp_adapter *adapter = erp_action->adapter;
- struct zfcp_unit *unit = erp_action->unit;
retval = zfcp_fsf_open_unit(erp_action);
if (retval == -ENOMEM) {
- debug_text_event(adapter->erp_dbf, 5, "u_usto_nomem");
- debug_event(adapter->erp_dbf, 5, &unit->fcp_lun,
- sizeof (fcp_lun_t));
retval = ZFCP_ERP_NOMEM;
goto out;
}
erp_action->step = ZFCP_ERP_STEP_UNIT_OPENING;
if (retval != 0) {
- debug_text_event(adapter->erp_dbf, 5, "u_usto_ouf");
- debug_event(adapter->erp_dbf, 5, &unit->fcp_lun,
- sizeof (fcp_lun_t));
/* could not send 'open', fail */
retval = ZFCP_ERP_FAILED;
goto out;
}
- debug_text_event(adapter->erp_dbf, 6, "u_usto_ouok");
- debug_event(adapter->erp_dbf, 6, &unit->fcp_lun, sizeof (fcp_lun_t));
retval = ZFCP_ERP_CONTINUES;
out:
return retval;
&adapter->status))
return -EIO;
- debug_event(adapter->erp_dbf, 4, &want, sizeof (int));
/* check whether we really need this */
switch (want) {
case ZFCP_ERP_ACTION_REOPEN_UNIT:
if (atomic_test_mask
(ZFCP_STATUS_COMMON_ERP_INUSE, &unit->status)) {
- debug_text_event(adapter->erp_dbf, 4, "u_actenq_drp");
- debug_event(adapter->erp_dbf, 4, &port->wwpn,
- sizeof (wwn_t));
- debug_event(adapter->erp_dbf, 4, &unit->fcp_lun,
- sizeof (fcp_lun_t));
goto out;
}
if (!atomic_test_mask
case ZFCP_ERP_ACTION_REOPEN_PORT:
if (atomic_test_mask
(ZFCP_STATUS_COMMON_ERP_INUSE, &port->status)) {
- debug_text_event(adapter->erp_dbf, 4, "p_actenq_drp");
- debug_event(adapter->erp_dbf, 4, &port->wwpn,
- sizeof (wwn_t));
goto out;
}
/* fall through !!! */
"0x%016Lx, action in use: %i)\n",
want, port->wwpn,
port->erp_action.action);
- debug_text_event(adapter->erp_dbf, 4,
- "pf_actenq_drp");
- } else
- debug_text_event(adapter->erp_dbf, 4,
- "pf_actenq_drpcp");
- debug_event(adapter->erp_dbf, 4, &port->wwpn,
- sizeof (wwn_t));
+ }
goto out;
}
if (!atomic_test_mask
case ZFCP_ERP_ACTION_REOPEN_ADAPTER:
if (atomic_test_mask
(ZFCP_STATUS_COMMON_ERP_INUSE, &adapter->status)) {
- debug_text_event(adapter->erp_dbf, 4, "a_actenq_drp");
goto out;
}
break;
default:
- debug_text_exception(adapter->erp_dbf, 1, "a_actenq_bug");
- debug_event(adapter->erp_dbf, 1, &want, sizeof (int));
ZFCP_LOG_NORMAL("bug: unknown erp action requested "
"on adapter %s (action=%d)\n",
zfcp_get_busid_by_adapter(adapter), want);
/* check whether we need something stronger first */
if (need) {
- debug_text_event(adapter->erp_dbf, 4, "a_actenq_str");
- debug_event(adapter->erp_dbf, 4, &need,
- sizeof (int));
ZFCP_LOG_DEBUG("stronger erp action %d needed before "
"erp action %d on adapter %s\n",
need, want, zfcp_get_busid_by_adapter(adapter));
break;
}
- debug_text_event(adapter->erp_dbf, 4, "a_actenq");
-
memset(erp_action, 0, sizeof (struct zfcp_erp_action));
erp_action->adapter = adapter;
erp_action->port = port;
erp_action->status &= ~ZFCP_STATUS_ERP_LOWMEM;
}
- debug_text_event(adapter->erp_dbf, 4, "a_actdeq");
- debug_event(adapter->erp_dbf, 4, &erp_action->action, sizeof (int));
list_del(&erp_action->list);
zfcp_rec_dbf_event_action(144, erp_action);
{
struct zfcp_port *port;
- debug_text_event(adapter->erp_dbf, 5, "a_actab");
if (atomic_test_mask(ZFCP_STATUS_COMMON_ERP_INUSE, &adapter->status))
zfcp_erp_action_dismiss(&adapter->erp_action);
else
static void zfcp_erp_action_dismiss_port(struct zfcp_port *port)
{
struct zfcp_unit *unit;
- struct zfcp_adapter *adapter = port->adapter;
- debug_text_event(adapter->erp_dbf, 5, "p_actab");
- debug_event(adapter->erp_dbf, 5, &port->wwpn, sizeof (wwn_t));
if (atomic_test_mask(ZFCP_STATUS_COMMON_ERP_INUSE, &port->status))
zfcp_erp_action_dismiss(&port->erp_action);
else
static void zfcp_erp_action_dismiss_unit(struct zfcp_unit *unit)
{
- struct zfcp_adapter *adapter = unit->port->adapter;
-
- debug_text_event(adapter->erp_dbf, 5, "u_actab");
- debug_event(adapter->erp_dbf, 5, &unit->fcp_lun, sizeof (fcp_lun_t));
if (atomic_test_mask(ZFCP_STATUS_COMMON_ERP_INUSE, &unit->status))
zfcp_erp_action_dismiss(&unit->erp_action);
}
static void zfcp_erp_action_to_running(struct zfcp_erp_action *erp_action)
{
- struct zfcp_adapter *adapter = erp_action->adapter;
-
- debug_text_event(adapter->erp_dbf, 6, "a_toru");
- debug_event(adapter->erp_dbf, 6, &erp_action->action, sizeof (int));
list_move(&erp_action->list, &erp_action->adapter->erp_running_head);
zfcp_rec_dbf_event_action(145, erp_action);
}
static void zfcp_erp_action_to_ready(struct zfcp_erp_action *erp_action)
{
- struct zfcp_adapter *adapter = erp_action->adapter;
-
- debug_text_event(adapter->erp_dbf, 6, "a_tore");
- debug_event(adapter->erp_dbf, 6, &erp_action->action, sizeof (int));
list_move(&erp_action->list, &erp_action->adapter->erp_ready_head);
zfcp_rec_dbf_event_action(146, erp_action);
}
void zfcp_erp_port_boxed(struct zfcp_port *port, u8 id, u64 ref)
{
- struct zfcp_adapter *adapter = port->adapter;
unsigned long flags;
- debug_text_event(adapter->erp_dbf, 3, "p_access_boxed");
- debug_event(adapter->erp_dbf, 3, &port->wwpn, sizeof(wwn_t));
read_lock_irqsave(&zfcp_data.config_lock, flags);
zfcp_erp_modify_port_status(port, id, ref,
ZFCP_STATUS_COMMON_ACCESS_BOXED, ZFCP_SET);
void zfcp_erp_unit_boxed(struct zfcp_unit *unit, u8 id, u64 ref)
{
- struct zfcp_adapter *adapter = unit->port->adapter;
-
- debug_text_event(adapter->erp_dbf, 3, "u_access_boxed");
- debug_event(adapter->erp_dbf, 3, &unit->fcp_lun, sizeof(fcp_lun_t));
zfcp_erp_modify_unit_status(unit, id, ref,
ZFCP_STATUS_COMMON_ACCESS_BOXED, ZFCP_SET);
zfcp_erp_unit_reopen(unit, ZFCP_STATUS_COMMON_ERP_FAILED, id, ref);
void zfcp_erp_port_access_denied(struct zfcp_port *port, u8 id, u64 ref)
{
- struct zfcp_adapter *adapter = port->adapter;
unsigned long flags;
- debug_text_event(adapter->erp_dbf, 3, "p_access_denied");
- debug_event(adapter->erp_dbf, 3, &port->wwpn, sizeof(wwn_t));
read_lock_irqsave(&zfcp_data.config_lock, flags);
zfcp_erp_modify_port_status(port, id, ref,
ZFCP_STATUS_COMMON_ERP_FAILED |
void zfcp_erp_unit_access_denied(struct zfcp_unit *unit, u8 id, u64 ref)
{
- struct zfcp_adapter *adapter = unit->port->adapter;
-
- debug_text_event(adapter->erp_dbf, 3, "u_access_denied");
- debug_event(adapter->erp_dbf, 3, &unit->fcp_lun, sizeof(fcp_lun_t));
zfcp_erp_modify_unit_status(unit, id, ref,
ZFCP_STATUS_COMMON_ERP_FAILED |
ZFCP_STATUS_COMMON_ACCESS_DENIED, ZFCP_SET);
if (adapter->connection_features & FSF_FEATURE_NPIV_MODE)
return;
- debug_text_event(adapter->erp_dbf, 3, "a_access_recover");
- debug_event(adapter->erp_dbf, 3, zfcp_get_busid_by_adapter(adapter), 8);
-
read_lock_irqsave(&zfcp_data.config_lock, flags);
if (adapter->nameserver_port)
zfcp_erp_port_access_changed(adapter->nameserver_port, id, ref);
struct zfcp_adapter *adapter = port->adapter;
struct zfcp_unit *unit;
- debug_text_event(adapter->erp_dbf, 3, "p_access_recover");
- debug_event(adapter->erp_dbf, 3, &port->wwpn, sizeof(wwn_t));
-
if (!atomic_test_mask(ZFCP_STATUS_COMMON_ACCESS_DENIED,
&port->status) &&
!atomic_test_mask(ZFCP_STATUS_COMMON_ACCESS_BOXED,
{
struct zfcp_adapter *adapter = unit->port->adapter;
- debug_text_event(adapter->erp_dbf, 3, "u_access_recover");
- debug_event(adapter->erp_dbf, 3, &unit->fcp_lun, sizeof(fcp_lun_t));
-
if (!atomic_test_mask(ZFCP_STATUS_COMMON_ACCESS_DENIED,
&unit->status) &&
!atomic_test_mask(ZFCP_STATUS_COMMON_ACCESS_BOXED,
switch (status_buffer->status_subtype) {
case FSF_STATUS_READ_SUB_CLOSE_PHYS_PORT:
- debug_text_event(adapter->erp_dbf, 3, "unsol_pc_phys:");
zfcp_erp_port_reopen(port, 0, 101, (u64)fsf_req);
break;
case FSF_STATUS_READ_SUB_ERROR_PORT:
- debug_text_event(adapter->erp_dbf, 1, "unsol_pc_err:");
zfcp_erp_port_shutdown(port, 0, 122, (u64)fsf_req);
break;
default:
- debug_text_event(adapter->erp_dbf, 0, "unsol_unk_sub:");
- debug_exception(adapter->erp_dbf, 0,
- &status_buffer->status_subtype, sizeof (u32));
ZFCP_LOG_NORMAL("bug: Undefined status subtype received "
"for a reopen indication on port with "
"d_id 0x%06x on the adapter %s. "
break;
case FSF_STATUS_READ_FEATURE_UPDATE_ALERT:
- debug_text_event(adapter->erp_dbf, 2, "unsol_features:");
ZFCP_LOG_INFO("List of supported features on adapter %s has "
"been changed from 0x%08X to 0x%08X\n",
zfcp_get_busid_by_adapter(adapter),
case FSF_PORT_HANDLE_NOT_VALID:
if (fsf_stat_qual->word[0] != fsf_stat_qual->word[1]) {
- debug_text_event(new_fsf_req->adapter->erp_dbf, 3,
- "fsf_s_phand_nv0");
/*
* In this case a command that was sent prior to a port
* reopen was aborted (handles are different). This is
fsf_status_qual,
sizeof (union fsf_status_qual));
/* Let's hope this sorts out the mess */
- debug_text_event(new_fsf_req->adapter->erp_dbf, 1,
- "fsf_s_phand_nv1");
zfcp_erp_adapter_reopen(unit->port->adapter, 0, 104,
(u64)new_fsf_req);
new_fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
case FSF_LUN_HANDLE_NOT_VALID:
if (fsf_stat_qual->word[0] != fsf_stat_qual->word[1]) {
- debug_text_event(new_fsf_req->adapter->erp_dbf, 3,
- "fsf_s_lhand_nv0");
/*
* In this case a command that was sent prior to a unit
* reopen was aborted (handles are different).
fsf_status_qual,
sizeof (union fsf_status_qual));
/* Let's hope this sorts out the mess */
- debug_text_event(new_fsf_req->adapter->erp_dbf, 1,
- "fsf_s_lhand_nv1");
zfcp_erp_port_reopen(unit->port, 0, 105,
(u64)new_fsf_req);
new_fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
case FSF_FCP_COMMAND_DOES_NOT_EXIST:
retval = 0;
- debug_text_event(new_fsf_req->adapter->erp_dbf, 3,
- "fsf_s_no_exist");
new_fsf_req->status |= ZFCP_STATUS_FSFREQ_ABORTNOTNEEDED;
break;
ZFCP_LOG_INFO("Remote port 0x%016Lx on adapter %s needs to "
"be reopened\n", unit->port->wwpn,
zfcp_get_busid_by_unit(unit));
- debug_text_event(new_fsf_req->adapter->erp_dbf, 2,
- "fsf_s_pboxed");
zfcp_erp_port_boxed(unit->port, 47, (u64)new_fsf_req);
new_fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR
| ZFCP_STATUS_FSFREQ_RETRY;
"to be reopened\n",
unit->fcp_lun, unit->port->wwpn,
zfcp_get_busid_by_unit(unit));
- debug_text_event(new_fsf_req->adapter->erp_dbf, 1, "fsf_s_lboxed");
zfcp_erp_unit_boxed(unit, 48, (u64)new_fsf_req);
new_fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR
| ZFCP_STATUS_FSFREQ_RETRY;
case FSF_ADAPTER_STATUS_AVAILABLE:
switch (new_fsf_req->qtcb->header.fsf_status_qual.word[0]) {
case FSF_SQ_INVOKE_LINK_TEST_PROCEDURE:
- debug_text_event(new_fsf_req->adapter->erp_dbf, 1,
- "fsf_sq_ltest");
zfcp_test_link(unit->port);
new_fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED:
/* SCSI stack will escalate */
- debug_text_event(new_fsf_req->adapter->erp_dbf, 1,
- "fsf_sq_ulp");
new_fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
default:
ZFCP_LOG_NORMAL
("bug: Wrong status qualifier 0x%x arrived.\n",
new_fsf_req->qtcb->header.fsf_status_qual.word[0]);
- debug_text_event(new_fsf_req->adapter->erp_dbf, 0,
- "fsf_sq_inval:");
- debug_exception(new_fsf_req->adapter->erp_dbf, 0,
- &new_fsf_req->qtcb->header.
- fsf_status_qual.word[0], sizeof (u32));
break;
}
break;
ZFCP_LOG_NORMAL("bug: An unknown FSF Status was presented "
"(debug info 0x%x)\n",
new_fsf_req->qtcb->header.fsf_status);
- debug_text_event(new_fsf_req->adapter->erp_dbf, 0,
- "fsf_s_inval:");
- debug_exception(new_fsf_req->adapter->erp_dbf, 0,
- &new_fsf_req->qtcb->header.fsf_status,
- sizeof (u32));
break;
}
skip_fsfstatus:
zfcp_get_busid_by_port(port),
ZFCP_FC_SERVICE_CLASS_DEFAULT);
/* stop operation for this adapter */
- debug_text_exception(adapter->erp_dbf, 0, "fsf_s_class_nsup");
zfcp_erp_adapter_shutdown(adapter, 0, 123, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
switch (header->fsf_status_qual.word[0]){
case FSF_SQ_INVOKE_LINK_TEST_PROCEDURE:
/* reopening link to port */
- debug_text_event(adapter->erp_dbf, 1, "fsf_sq_ltest");
zfcp_test_link(port);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED:
/* ERP strategy will escalate */
- debug_text_event(adapter->erp_dbf, 1, "fsf_sq_ulp");
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
default:
break;
}
}
- debug_text_event(adapter->erp_dbf, 1, "fsf_s_access");
zfcp_erp_port_access_denied(port, 55, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
ZFCP_HEX_DUMP(ZFCP_LOG_LEVEL_INFO,
(char *) &header->fsf_status_qual,
sizeof (union fsf_status_qual));
- debug_text_event(adapter->erp_dbf, 1, "fsf_s_gcom_rej");
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
ZFCP_HEX_DUMP(ZFCP_LOG_LEVEL_INFO,
(char *) &header->fsf_status_qual,
sizeof (union fsf_status_qual));
- debug_text_event(adapter->erp_dbf, 1, "fsf_s_phandle_nv");
zfcp_erp_adapter_reopen(adapter, 0, 106, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
ZFCP_LOG_INFO("port needs to be reopened "
"(adapter %s, port d_id=0x%06x)\n",
zfcp_get_busid_by_port(port), port->d_id);
- debug_text_event(adapter->erp_dbf, 2, "fsf_s_pboxed");
zfcp_erp_port_boxed(port, 49, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR
| ZFCP_STATUS_FSFREQ_RETRY;
default:
ZFCP_LOG_NORMAL("bug: An unknown FSF Status was presented "
"(debug info 0x%x)\n", header->fsf_status);
- debug_text_event(adapter->erp_dbf, 0, "fsf_sq_inval:");
- debug_exception(adapter->erp_dbf, 0,
- &header->fsf_status_qual.word[0], sizeof (u32));
break;
}
zfcp_get_busid_by_adapter(adapter),
ZFCP_FC_SERVICE_CLASS_DEFAULT);
/* stop operation for this adapter */
- debug_text_exception(adapter->erp_dbf, 0, "fsf_s_class_nsup");
zfcp_erp_adapter_shutdown(adapter, 0, 124, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
case FSF_ADAPTER_STATUS_AVAILABLE:
switch (header->fsf_status_qual.word[0]){
case FSF_SQ_INVOKE_LINK_TEST_PROCEDURE:
- debug_text_event(adapter->erp_dbf, 1, "fsf_sq_ltest");
if (port && (send_els->ls_code != ZFCP_LS_ADISC))
zfcp_test_link(port);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED:
- debug_text_event(adapter->erp_dbf, 1, "fsf_sq_ulp");
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
retval =
zfcp_handle_els_rjt(header->fsf_status_qual.word[1],
&header->fsf_status_qual.word[2]);
break;
case FSF_SQ_RETRY_IF_POSSIBLE:
- debug_text_event(adapter->erp_dbf, 1, "fsf_sq_retry");
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
default:
break;
}
}
- debug_text_event(adapter->erp_dbf, 1, "fsf_s_access");
if (port != NULL)
zfcp_erp_port_access_denied(port, 56, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
"(adapter: %s, fsf_status=0x%08x)\n",
zfcp_get_busid_by_adapter(adapter),
header->fsf_status);
- debug_text_event(adapter->erp_dbf, 0, "fsf_sq_inval");
- debug_exception(adapter->erp_dbf, 0,
- &header->fsf_status_qual.word[0], sizeof(u32));
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
}
"versions in comparison to this device "
"driver (try updated device driver)\n",
zfcp_get_busid_by_adapter(adapter));
- debug_text_event(adapter->erp_dbf, 0, "low_qtcb_ver");
zfcp_erp_adapter_shutdown(adapter, 0, 125, (u64)fsf_req);
return -EIO;
}
"versions than this device driver uses"
"(consider a microcode upgrade)\n",
zfcp_get_busid_by_adapter(adapter));
- debug_text_event(adapter->erp_dbf, 0, "high_qtcb_ver");
zfcp_erp_adapter_shutdown(adapter, 0, 126, (u64)fsf_req);
return -EIO;
}
adapter->peer_wwnn,
adapter->peer_wwpn,
adapter->peer_d_id);
- debug_text_event(fsf_req->adapter->erp_dbf, 0,
- "top-p-to-p");
break;
case FC_PORTTYPE_NLPORT:
ZFCP_LOG_NORMAL("error: Arbitrated loop fibrechannel "
"topology detected at adapter %s "
"unsupported, shutting down adapter\n",
zfcp_get_busid_by_adapter(adapter));
- debug_text_event(fsf_req->adapter->erp_dbf, 0,
- "top-al");
zfcp_erp_adapter_shutdown(adapter, 0, 127, (u64)fsf_req);
return -EIO;
case FC_PORTTYPE_NPORT:
"of a type known to the zfcp "
"driver, shutting down adapter\n",
zfcp_get_busid_by_adapter(adapter));
- debug_text_exception(fsf_req->adapter->erp_dbf, 0,
- "unknown-topo");
zfcp_erp_adapter_shutdown(adapter, 0, 128, (u64)fsf_req);
return -EIO;
}
bottom->max_qtcb_size,
zfcp_get_busid_by_adapter(adapter),
sizeof(struct fsf_qtcb));
- debug_text_event(fsf_req->adapter->erp_dbf, 0,
- "qtcb-size");
- debug_event(fsf_req->adapter->erp_dbf, 0,
- &bottom->max_qtcb_size, sizeof (u32));
zfcp_erp_adapter_shutdown(adapter, 0, 129, (u64)fsf_req);
return -EIO;
}
&adapter->status);
break;
case FSF_EXCHANGE_CONFIG_DATA_INCOMPLETE:
- debug_text_event(adapter->erp_dbf, 0, "xchg-inco");
-
if (zfcp_fsf_exchange_config_evaluate(fsf_req, 0))
return -EIO;
&qtcb->header.fsf_status_qual.link_down_info);
break;
default:
- debug_text_event(fsf_req->adapter->erp_dbf, 0, "fsf-stat-ng");
- debug_event(fsf_req->adapter->erp_dbf, 0,
- &fsf_req->qtcb->header.fsf_status, sizeof(u32));
zfcp_erp_adapter_shutdown(adapter, 0, 130, (u64)fsf_req);
return -EIO;
}
zfcp_fsf_link_down_info_eval(fsf_req, 43,
&qtcb->header.fsf_status_qual.link_down_info);
break;
- default:
- debug_text_event(adapter->erp_dbf, 0, "xchg-port-ng");
- debug_event(adapter->erp_dbf, 0,
- &fsf_req->qtcb->header.fsf_status, sizeof(u32));
}
}
ZFCP_LOG_NORMAL("bug: remote port 0x%016Lx on adapter %s "
"is already open.\n",
port->wwpn, zfcp_get_busid_by_port(port));
- debug_text_exception(fsf_req->adapter->erp_dbf, 0,
- "fsf_s_popen");
/*
* This is a bug, however operation should continue normally
* if it is simply ignored
break;
}
}
- debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_s_access");
zfcp_erp_port_access_denied(port, 57, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
"The remote port 0x%016Lx on adapter %s "
"could not be opened. Disabling it.\n",
port->wwpn, zfcp_get_busid_by_port(port));
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_s_max_ports");
zfcp_erp_port_failed(port, 31, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
case FSF_ADAPTER_STATUS_AVAILABLE:
switch (header->fsf_status_qual.word[0]) {
case FSF_SQ_INVOKE_LINK_TEST_PROCEDURE:
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_sq_ltest");
/* ERP strategy will escalate */
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED:
/* ERP strategy will escalate */
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_sq_ulp");
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
case FSF_SQ_NO_RETRY_POSSIBLE:
"Disabling it.\n",
port->wwpn,
zfcp_get_busid_by_port(port));
- debug_text_exception(fsf_req->adapter->erp_dbf, 0,
- "fsf_sq_no_retry");
zfcp_erp_port_failed(port, 32, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
ZFCP_LOG_NORMAL
("bug: Wrong status qualifier 0x%x arrived.\n",
header->fsf_status_qual.word[0]);
- debug_text_event(fsf_req->adapter->erp_dbf, 0,
- "fsf_sq_inval:");
- debug_exception(
- fsf_req->adapter->erp_dbf, 0,
- &header->fsf_status_qual.word[0],
- sizeof (u32));
break;
}
break;
"warning: insufficient length of "
"PLOGI payload (%i)\n",
fsf_req->qtcb->bottom.support.els1_length);
- debug_text_event(fsf_req->adapter->erp_dbf, 0,
- "fsf_s_short_plogi:");
/* skip sanity check and assume wwpn is ok */
} else {
if (plogi->serv_param.wwpn != port->wwpn) {
ZFCP_LOG_INFO("warning: d_id of port "
"0x%016Lx changed during "
"open\n", port->wwpn);
- debug_text_event(
- fsf_req->adapter->erp_dbf, 0,
- "fsf_s_did_change:");
atomic_clear_mask(
ZFCP_STATUS_PORT_DID_DID,
&port->status);
ZFCP_LOG_NORMAL("bug: An unknown FSF Status was presented "
"(debug info 0x%x)\n",
header->fsf_status);
- debug_text_event(fsf_req->adapter->erp_dbf, 0, "fsf_s_inval:");
- debug_exception(fsf_req->adapter->erp_dbf, 0,
- &header->fsf_status, sizeof (u32));
break;
}
ZFCP_HEX_DUMP(ZFCP_LOG_LEVEL_DEBUG,
(char *) &fsf_req->qtcb->header.fsf_status_qual,
sizeof (union fsf_status_qual));
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_s_phand_nv");
zfcp_erp_adapter_reopen(port->adapter, 0, 107, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
ZFCP_LOG_NORMAL("bug: An unknown FSF Status was presented "
"(debug info 0x%x)\n",
fsf_req->qtcb->header.fsf_status);
- debug_text_event(fsf_req->adapter->erp_dbf, 0, "fsf_s_inval:");
- debug_exception(fsf_req->adapter->erp_dbf, 0,
- &fsf_req->qtcb->header.fsf_status,
- sizeof (u32));
break;
}
ZFCP_HEX_DUMP(ZFCP_LOG_LEVEL_DEBUG,
(char *) &header->fsf_status_qual,
sizeof (union fsf_status_qual));
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_s_phand_nv");
zfcp_erp_adapter_reopen(port->adapter, 0, 108, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
break;
}
}
- debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_s_access");
zfcp_erp_port_access_denied(port, 58, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
"to close it physically.\n",
port->wwpn,
zfcp_get_busid_by_port(port));
- debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_s_pboxed");
zfcp_erp_port_boxed(port, 50, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR |
ZFCP_STATUS_FSFREQ_RETRY;
case FSF_ADAPTER_STATUS_AVAILABLE:
switch (header->fsf_status_qual.word[0]) {
case FSF_SQ_INVOKE_LINK_TEST_PROCEDURE:
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_sq_ltest");
/* This will now be escalated by ERP */
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED:
/* ERP strategy will escalate */
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_sq_ulp");
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
default:
ZFCP_LOG_NORMAL
("bug: Wrong status qualifier 0x%x arrived.\n",
header->fsf_status_qual.word[0]);
- debug_text_event(fsf_req->adapter->erp_dbf, 0,
- "fsf_sq_inval:");
- debug_exception(
- fsf_req->adapter->erp_dbf, 0,
- &header->fsf_status_qual.word[0], sizeof (u32));
break;
}
break;
ZFCP_LOG_NORMAL("bug: An unknown FSF Status was presented "
"(debug info 0x%x)\n",
header->fsf_status);
- debug_text_event(fsf_req->adapter->erp_dbf, 0, "fsf_s_inval:");
- debug_exception(fsf_req->adapter->erp_dbf, 0,
- &header->fsf_status, sizeof (u32));
break;
}
ZFCP_HEX_DUMP(ZFCP_LOG_LEVEL_DEBUG,
(char *) &header->fsf_status_qual,
sizeof (union fsf_status_qual));
- debug_text_event(adapter->erp_dbf, 1, "fsf_s_ph_nv");
zfcp_erp_adapter_reopen(unit->port->adapter, 0, 109,
(u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
"remote port 0x%016Lx on adapter %s twice.\n",
unit->fcp_lun,
unit->port->wwpn, zfcp_get_busid_by_unit(unit));
- debug_text_exception(adapter->erp_dbf, 0,
- "fsf_s_uopen");
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
break;
}
}
- debug_text_event(adapter->erp_dbf, 1, "fsf_s_access");
zfcp_erp_unit_access_denied(unit, 59, (u64)fsf_req);
atomic_clear_mask(ZFCP_STATUS_UNIT_SHARED, &unit->status);
atomic_clear_mask(ZFCP_STATUS_UNIT_READONLY, &unit->status);
ZFCP_LOG_DEBUG("The remote port 0x%016Lx on adapter %s "
"needs to be reopened\n",
unit->port->wwpn, zfcp_get_busid_by_unit(unit));
- debug_text_event(adapter->erp_dbf, 2, "fsf_s_pboxed");
zfcp_erp_port_boxed(unit->port, 51, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR |
ZFCP_STATUS_FSFREQ_RETRY;
ZFCP_HEX_DUMP(ZFCP_LOG_LEVEL_DEBUG,
(char *) &header->fsf_status_qual,
sizeof (union fsf_status_qual));
- debug_text_event(adapter->erp_dbf, 2,
- "fsf_s_l_sh_vio");
zfcp_erp_unit_access_denied(unit, 60, (u64)fsf_req);
atomic_clear_mask(ZFCP_STATUS_UNIT_SHARED, &unit->status);
atomic_clear_mask(ZFCP_STATUS_UNIT_READONLY, &unit->status);
unit->fcp_lun,
unit->port->wwpn,
zfcp_get_busid_by_unit(unit));
- debug_text_event(adapter->erp_dbf, 1,
- "fsf_s_max_units");
zfcp_erp_unit_failed(unit, 34, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
switch (header->fsf_status_qual.word[0]) {
case FSF_SQ_INVOKE_LINK_TEST_PROCEDURE:
/* Re-establish link to port */
- debug_text_event(adapter->erp_dbf, 1,
- "fsf_sq_ltest");
zfcp_test_link(unit->port);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED:
/* ERP strategy will escalate */
- debug_text_event(adapter->erp_dbf, 1,
- "fsf_sq_ulp");
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
default:
ZFCP_LOG_NORMAL
("bug: Wrong status qualifier 0x%x arrived.\n",
header->fsf_status_qual.word[0]);
- debug_text_event(adapter->erp_dbf, 0,
- "fsf_sq_inval:");
- debug_exception(adapter->erp_dbf, 0,
- &header->fsf_status_qual.word[0],
- sizeof (u32));
}
break;
ZFCP_LOG_NORMAL("bug: An unknown FSF Status was presented "
"(debug info 0x%x)\n",
header->fsf_status);
- debug_text_event(adapter->erp_dbf, 0, "fsf_s_inval:");
- debug_exception(adapter->erp_dbf, 0,
- &header->fsf_status, sizeof (u32));
break;
}
ZFCP_HEX_DUMP(ZFCP_LOG_LEVEL_DEBUG,
(char *) &fsf_req->qtcb->header.fsf_status_qual,
sizeof (union fsf_status_qual));
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_s_phand_nv");
zfcp_erp_adapter_reopen(unit->port->adapter, 0, 110,
(u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
ZFCP_HEX_DUMP(ZFCP_LOG_LEVEL_DEBUG,
(char *) &fsf_req->qtcb->header.fsf_status_qual,
sizeof (union fsf_status_qual));
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_s_lhand_nv");
zfcp_erp_port_reopen(unit->port, 0, 111, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
"needs to be reopened\n",
unit->port->wwpn,
zfcp_get_busid_by_unit(unit));
- debug_text_event(fsf_req->adapter->erp_dbf, 2, "fsf_s_pboxed");
zfcp_erp_port_boxed(unit->port, 52, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR |
ZFCP_STATUS_FSFREQ_RETRY;
switch (fsf_req->qtcb->header.fsf_status_qual.word[0]) {
case FSF_SQ_INVOKE_LINK_TEST_PROCEDURE:
/* re-establish link to port */
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_sq_ltest");
zfcp_test_link(unit->port);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED:
/* ERP strategy will escalate */
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_sq_ulp");
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
default:
ZFCP_LOG_NORMAL
("bug: Wrong status qualifier 0x%x arrived.\n",
fsf_req->qtcb->header.fsf_status_qual.word[0]);
- debug_text_event(fsf_req->adapter->erp_dbf, 0,
- "fsf_sq_inval:");
- debug_exception(
- fsf_req->adapter->erp_dbf, 0,
- &fsf_req->qtcb->header.fsf_status_qual.word[0],
- sizeof (u32));
break;
}
break;
ZFCP_LOG_NORMAL("bug: An unknown FSF Status was presented "
"(debug info 0x%x)\n",
fsf_req->qtcb->header.fsf_status);
- debug_text_event(fsf_req->adapter->erp_dbf, 0, "fsf_s_inval:");
- debug_exception(fsf_req->adapter->erp_dbf, 0,
- &fsf_req->qtcb->header.fsf_status,
- sizeof (u32));
break;
}
ZFCP_HEX_DUMP(ZFCP_LOG_LEVEL_DEBUG,
(char *) &header->fsf_status_qual,
sizeof (union fsf_status_qual));
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_s_phand_nv");
zfcp_erp_adapter_reopen(unit->port->adapter, 0, 112,
(u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
ZFCP_HEX_DUMP(ZFCP_LOG_LEVEL_NORMAL,
(char *) &header->fsf_status_qual,
sizeof (union fsf_status_qual));
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_s_uhand_nv");
zfcp_erp_port_reopen(unit->port, 0, 113, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
ZFCP_HEX_DUMP(ZFCP_LOG_LEVEL_NORMAL,
(char *) &header->fsf_status_qual,
sizeof (union fsf_status_qual));
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_s_hand_mis");
zfcp_erp_adapter_reopen(unit->port->adapter, 0, 114,
(u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
zfcp_get_busid_by_unit(unit),
ZFCP_FC_SERVICE_CLASS_DEFAULT);
/* stop operation for this adapter */
- debug_text_exception(fsf_req->adapter->erp_dbf, 0,
- "fsf_s_class_nsup");
zfcp_erp_adapter_shutdown(unit->port->adapter, 0, 132,
(u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
ZFCP_HEX_DUMP(ZFCP_LOG_LEVEL_DEBUG,
(char *) &header->fsf_status_qual,
sizeof (union fsf_status_qual));
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_s_fcp_lun_nv");
zfcp_erp_port_reopen(unit->port, 0, 115, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
break;
}
}
- debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_s_access");
zfcp_erp_unit_access_denied(unit, 61, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
break;
zfcp_get_busid_by_unit(unit),
fsf_req->qtcb->bottom.io.data_direction);
/* stop operation for this adapter */
- debug_text_event(fsf_req->adapter->erp_dbf, 0,
- "fsf_s_dir_ind_nv");
zfcp_erp_adapter_shutdown(unit->port->adapter, 0, 133,
(u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
zfcp_get_busid_by_unit(unit),
fsf_req->qtcb->bottom.io.fcp_cmnd_length);
/* stop operation for this adapter */
- debug_text_event(fsf_req->adapter->erp_dbf, 0,
- "fsf_s_cmd_len_nv");
zfcp_erp_adapter_shutdown(unit->port->adapter, 0, 134,
(u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
ZFCP_LOG_DEBUG("The remote port 0x%016Lx on adapter %s "
"needs to be reopened\n",
unit->port->wwpn, zfcp_get_busid_by_unit(unit));
- debug_text_event(fsf_req->adapter->erp_dbf, 2, "fsf_s_pboxed");
zfcp_erp_port_boxed(unit->port, 53, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR |
ZFCP_STATUS_FSFREQ_RETRY;
"wwpn=0x%016Lx, fcp_lun=0x%016Lx)\n",
zfcp_get_busid_by_unit(unit),
unit->port->wwpn, unit->fcp_lun);
- debug_text_event(fsf_req->adapter->erp_dbf, 1, "fsf_s_lboxed");
zfcp_erp_unit_boxed(unit, 54, (u64)fsf_req);
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR
| ZFCP_STATUS_FSFREQ_RETRY;
switch (header->fsf_status_qual.word[0]) {
case FSF_SQ_INVOKE_LINK_TEST_PROCEDURE:
/* re-establish link to port */
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_sq_ltest");
zfcp_test_link(unit->port);
break;
case FSF_SQ_ULP_DEPENDENT_ERP_REQUIRED:
/* FIXME(hw) need proper specs for proper action */
/* let scsi stack deal with retries and escalation */
- debug_text_event(fsf_req->adapter->erp_dbf, 1,
- "fsf_sq_ulp");
break;
default:
ZFCP_LOG_NORMAL
("Unknown status qualifier 0x%x arrived.\n",
header->fsf_status_qual.word[0]);
- debug_text_event(fsf_req->adapter->erp_dbf, 0,
- "fsf_sq_inval:");
- debug_exception(fsf_req->adapter->erp_dbf, 0,
- &header->fsf_status_qual.word[0],
- sizeof(u32));
break;
}
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
case FSF_FCP_RSP_AVAILABLE:
break;
-
- default:
- debug_text_event(fsf_req->adapter->erp_dbf, 0, "fsf_s_inval:");
- debug_exception(fsf_req->adapter->erp_dbf, 0,
- &header->fsf_status, sizeof(u32));
- break;
}
skip_fsfstatus:
"was presented on the adapter %s\n",
header->fsf_status,
zfcp_get_busid_by_adapter(adapter));
- debug_text_event(fsf_req->adapter->erp_dbf, 0, "fsf_sq_inval");
- debug_exception(fsf_req->adapter->erp_dbf, 0,
- &header->fsf_status_qual.word[0], sizeof(u32));
fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR;
retval = -EINVAL;
break;
volatile struct qdio_buffer_element *sbale;
int inc_seq_no;
int new_distance_from_int;
- u64 dbg_tmp[2];
int retval = 0;
adapter = fsf_req->adapter;
QDIO_FLAG_SYNC_OUTPUT,
0, fsf_req->sbal_first, fsf_req->sbal_number, NULL);
- dbg_tmp[0] = (unsigned long) sbale[0].addr;
- dbg_tmp[1] = (u64) retval;
- debug_event(adapter->erp_dbf, 4, (void *) dbg_tmp, 16);
-
if (unlikely(retval)) {
/* Queues are down..... */
retval = -EIO;