Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 213342
b: refs/heads/master
c: d99e5f4
h: refs/heads/master
v: v3
  • Loading branch information
Brian King authored and James Bottomley committed Sep 17, 2010
1 parent 1506952 commit d631aa9
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 25 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e6a4202aa920a25db76f0e02dabe133179293ec0
refs/heads/master: d99e5f488ae28d9dfccc84435f4fd29bd1fe1b9b
74 changes: 50 additions & 24 deletions trunk/drivers/scsi/ibmvscsi/ibmvfc.c
Original file line number Diff line number Diff line change
Expand Up @@ -2501,41 +2501,66 @@ static void ibmvfc_terminate_rport_io(struct fc_rport *rport)
LEAVE;
}

static const struct {
enum ibmvfc_async_event ae;
const char *desc;
} ae_desc [] = {
{ IBMVFC_AE_ELS_PLOGI, "PLOGI" },
{ IBMVFC_AE_ELS_LOGO, "LOGO" },
{ IBMVFC_AE_ELS_PRLO, "PRLO" },
{ IBMVFC_AE_SCN_NPORT, "N-Port SCN" },
{ IBMVFC_AE_SCN_GROUP, "Group SCN" },
{ IBMVFC_AE_SCN_DOMAIN, "Domain SCN" },
{ IBMVFC_AE_SCN_FABRIC, "Fabric SCN" },
{ IBMVFC_AE_LINK_UP, "Link Up" },
{ IBMVFC_AE_LINK_DOWN, "Link Down" },
{ IBMVFC_AE_LINK_DEAD, "Link Dead" },
{ IBMVFC_AE_HALT, "Halt" },
{ IBMVFC_AE_RESUME, "Resume" },
{ IBMVFC_AE_ADAPTER_FAILED, "Adapter Failed" },
static const struct ibmvfc_async_desc ae_desc [] = {
{ IBMVFC_AE_ELS_PLOGI, "PLOGI", IBMVFC_DEFAULT_LOG_LEVEL + 1 },
{ IBMVFC_AE_ELS_LOGO, "LOGO", IBMVFC_DEFAULT_LOG_LEVEL + 1 },
{ IBMVFC_AE_ELS_PRLO, "PRLO", IBMVFC_DEFAULT_LOG_LEVEL + 1 },
{ IBMVFC_AE_SCN_NPORT, "N-Port SCN", IBMVFC_DEFAULT_LOG_LEVEL + 1 },
{ IBMVFC_AE_SCN_GROUP, "Group SCN", IBMVFC_DEFAULT_LOG_LEVEL + 1 },
{ IBMVFC_AE_SCN_DOMAIN, "Domain SCN", IBMVFC_DEFAULT_LOG_LEVEL },
{ IBMVFC_AE_SCN_FABRIC, "Fabric SCN", IBMVFC_DEFAULT_LOG_LEVEL },
{ IBMVFC_AE_LINK_UP, "Link Up", IBMVFC_DEFAULT_LOG_LEVEL },
{ IBMVFC_AE_LINK_DOWN, "Link Down", IBMVFC_DEFAULT_LOG_LEVEL },
{ IBMVFC_AE_LINK_DEAD, "Link Dead", IBMVFC_DEFAULT_LOG_LEVEL },
{ IBMVFC_AE_HALT, "Halt", IBMVFC_DEFAULT_LOG_LEVEL },
{ IBMVFC_AE_RESUME, "Resume", IBMVFC_DEFAULT_LOG_LEVEL },
{ IBMVFC_AE_ADAPTER_FAILED, "Adapter Failed", IBMVFC_DEFAULT_LOG_LEVEL },
};

static const char *unknown_ae = "Unknown async";
static const struct ibmvfc_async_desc unknown_ae = {
0, "Unknown async", IBMVFC_DEFAULT_LOG_LEVEL
};

/**
* ibmvfc_get_ae_desc - Get text description for async event
* @ae: async event
*
**/
static const char *ibmvfc_get_ae_desc(u64 ae)
static const struct ibmvfc_async_desc *ibmvfc_get_ae_desc(u64 ae)
{
int i;

for (i = 0; i < ARRAY_SIZE(ae_desc); i++)
if (ae_desc[i].ae == ae)
return ae_desc[i].desc;
return &ae_desc[i];

return &unknown_ae;
}

static const struct {
enum ibmvfc_ae_link_state state;
const char *desc;
} link_desc [] = {
{ IBMVFC_AE_LS_LINK_UP, " link up" },
{ IBMVFC_AE_LS_LINK_BOUNCED, " link bounced" },
{ IBMVFC_AE_LS_LINK_DOWN, " link down" },
{ IBMVFC_AE_LS_LINK_DEAD, " link dead" },
};

/**
* ibmvfc_get_link_state - Get text description for link state
* @state: link state
*
**/
static const char *ibmvfc_get_link_state(enum ibmvfc_ae_link_state state)
{
int i;

for (i = 0; i < ARRAY_SIZE(link_desc); i++)
if (link_desc[i].state == state)
return link_desc[i].desc;

return unknown_ae;
return "";
}

/**
Expand All @@ -2547,11 +2572,12 @@ static const char *ibmvfc_get_ae_desc(u64 ae)
static void ibmvfc_handle_async(struct ibmvfc_async_crq *crq,
struct ibmvfc_host *vhost)
{
const char *desc = ibmvfc_get_ae_desc(crq->event);
const struct ibmvfc_async_desc *desc = ibmvfc_get_ae_desc(crq->event);
struct ibmvfc_target *tgt;

ibmvfc_log(vhost, 3, "%s event received. scsi_id: %llx, wwpn: %llx,"
" node_name: %llx\n", desc, crq->scsi_id, crq->wwpn, crq->node_name);
ibmvfc_log(vhost, desc->log_level, "%s event received. scsi_id: %llx, wwpn: %llx,"
" node_name: %llx%s\n", desc->desc, crq->scsi_id, crq->wwpn, crq->node_name,
ibmvfc_get_link_state(crq->link_state));

switch (crq->event) {
case IBMVFC_AE_RESUME:
Expand Down
6 changes: 6 additions & 0 deletions trunk/drivers/scsi/ibmvscsi/ibmvfc.h
Original file line number Diff line number Diff line change
Expand Up @@ -541,6 +541,12 @@ enum ibmvfc_async_event {
IBMVFC_AE_ADAPTER_FAILED = 0x1000,
};

struct ibmvfc_async_desc {
enum ibmvfc_async_event ae;
const char *desc;
int log_level;
};

struct ibmvfc_crq {
volatile u8 valid;
volatile u8 format;
Expand Down

0 comments on commit d631aa9

Please sign in to comment.