From c4d43ee343d7ea29dee61d75bcbcb5ed80e73a34 Mon Sep 17 00:00:00 2001 From: Ron Mercer Date: Tue, 3 Mar 2009 12:10:37 +0000 Subject: [PATCH] --- yaml --- r: 135049 b: refs/heads/master c: fc1f9ea51de726b3b8003539788d918814c9deff h: refs/heads/master i: 135047: 0f0bb1c82c90b9beee4e03529a94ea1f677c8793 v: v3 --- [refs] | 2 +- trunk/drivers/net/qlge/qlge_mpi.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 20de735d5095..21535a727e8a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bb6676705e41efdf4ba788340a885b19fd5a0215 +refs/heads/master: fc1f9ea51de726b3b8003539788d918814c9deff diff --git a/trunk/drivers/net/qlge/qlge_mpi.c b/trunk/drivers/net/qlge/qlge_mpi.c index f9a237165fc1..9f81b797f10b 100644 --- a/trunk/drivers/net/qlge/qlge_mpi.c +++ b/trunk/drivers/net/qlge/qlge_mpi.c @@ -284,6 +284,27 @@ static int ql_sfp_out(struct ql_adapter *qdev, struct mbox_params *mbcp) return status; } +static int ql_aen_lost(struct ql_adapter *qdev, struct mbox_params *mbcp) +{ + int status; + + mbcp->out_count = 6; + + status = ql_get_mb_sts(qdev, mbcp); + if (status) + QPRINTK(qdev, DRV, ERR, "Lost AEN broken!\n"); + else { + int i; + QPRINTK(qdev, DRV, ERR, "Lost AEN detected.\n"); + for (i = 0; i < mbcp->out_count; i++) + QPRINTK(qdev, DRV, ERR, "mbox_out[%d] = 0x%.08x.\n", + i, mbcp->mbox_out[i]); + + } + + return status; +} + static void ql_init_fw_done(struct ql_adapter *qdev, struct mbox_params *mbcp) { int status; @@ -421,6 +442,10 @@ static int ql_mpi_handler(struct ql_adapter *qdev, struct mbox_params *mbcp) status = -EIO; break; + case AEN_AEN_LOST: + ql_aen_lost(qdev, mbcp); + break; + default: QPRINTK(qdev, DRV, ERR, "Unsupported AE %.08x.\n", mbcp->mbox_out[0]);