On Tue, Feb 03, 2009 at 01:10:38AM -0800, Andrew Morton wrote: > > > +{ > > + struct cryptd_cpu_queue *cpu_queue; > > + struct crypto_async_request *req, *backlog; > > + > > + cpu_queue = container_of(work, struct cryptd_cpu_queue, work); > > + /* Only handle one request at a time to avoid hogging crypto > > + * workqueue */ > > Not sure what that means. It looks like this was copied from chainiv which put the work in eventd, which is obviously no longer the case here. > > + if (!req) > > + goto out; > > + > > + if (backlog) > > + backlog->complete(backlog, -EINPROGRESS); > > + req->complete(req, 0); > > +out: > > + if (cpu_queue->queue.qlen) > > + queue_work(kcrypto_wq, &cpu_queue->work); > > Again, unclear and needs commentary. > > If we come here via the `goto out;' path above, this CPU queue has no > more work do do, I think? If so, why does it requeue itself? This looks like another vestige from chainiv. Thanks, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html