From 204d9e2d46e92b3185ee383fc5a3a48961fee560 Mon Sep 17 00:00:00 2001 From: Ron Mercer Date: Sun, 7 Jun 2009 13:58:25 +0000 Subject: [PATCH] --- yaml --- r: 150725 b: refs/heads/master c: d6f58c2e63b4197cba99edd3a4c5c7f4935708fb h: refs/heads/master i: 150723: d252279be1436c2716c44440b4bb80273b2e8f4d v: v3 --- [refs] | 2 +- trunk/drivers/net/qlge/qlge_mpi.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 90939ae6fae9..2b07e6181c96 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: df911e2dc4c59e259b65c502fe0679ade309b575 +refs/heads/master: d6f58c2e63b4197cba99edd3a4c5c7f4935708fb diff --git a/trunk/drivers/net/qlge/qlge_mpi.c b/trunk/drivers/net/qlge/qlge_mpi.c index 9f81b797f10b..7cb30fdc9bac 100644 --- a/trunk/drivers/net/qlge/qlge_mpi.c +++ b/trunk/drivers/net/qlge/qlge_mpi.c @@ -831,13 +831,19 @@ void ql_mpi_work(struct work_struct *work) container_of(work, struct ql_adapter, mpi_work.work); struct mbox_params mbc; struct mbox_params *mbcp = &mbc; + int err = 0; mutex_lock(&qdev->mpi_mutex); while (ql_read32(qdev, STS) & STS_PI) { memset(mbcp, 0, sizeof(struct mbox_params)); mbcp->out_count = 1; - ql_mpi_handler(qdev, mbcp); + /* Don't continue if an async event + * did not complete properly. + */ + err = ql_mpi_handler(qdev, mbcp); + if (err) + break; } mutex_unlock(&qdev->mpi_mutex);