|
@@ -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);
|
|
|
}
|
|
|
|