From cc9fd83571e3ca7ce49a2fc55a1ffd666c84d1fb Mon Sep 17 00:00:00 2001 From: Javi Merino Date: Wed, 21 Dec 2011 11:19:00 +0100 Subject: [PATCH] --- yaml --- r: 279779 b: refs/heads/master c: f98b9a26fe08f7f9d7fb26ee3d9f167f79b2f6b6 h: refs/heads/master i: 279777: ba523e04035793089176419fb9e533016cc2c0ad 279775: e0c9c59467a42bfef9a4c7e34b76b859b59e0401 v: v3 --- [refs] | 2 +- trunk/arch/arm/common/pl330.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index e9f87db80895..891b2b6e1c68 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1ec332a3756a22405d2fbd5352e3afab556cb205 +refs/heads/master: f98b9a26fe08f7f9d7fb26ee3d9f167f79b2f6b6 diff --git a/trunk/arch/arm/common/pl330.c b/trunk/arch/arm/common/pl330.c index 8d8df744f7a5..d8e44a43047c 100644 --- a/trunk/arch/arm/common/pl330.c +++ b/trunk/arch/arm/common/pl330.c @@ -1467,13 +1467,19 @@ int pl330_update(const struct pl330_info *pi) /* Now that we are in no hurry, do the callbacks */ while (!list_empty(&pl330->req_done)) { + struct pl330_req *r; + rqdone = container_of(pl330->req_done.next, struct _pl330_req, rqd); list_del_init(&rqdone->rqd); + /* Detach the req */ + r = rqdone->r; + rqdone->r = NULL; + spin_unlock_irqrestore(&pl330->lock, flags); - _callback(rqdone->r, PL330_ERR_NONE); + _callback(r, PL330_ERR_NONE); spin_lock_irqsave(&pl330->lock, flags); }