From 1dfb8ca06b6332b70aa9157605eed984620b50df Mon Sep 17 00:00:00 2001 From: Michael Weiser Date: Fri, 26 Feb 2010 18:35:49 +0100 Subject: cryptodev initialises its sg with sg_set_buf. Although I'm not sure, what the repercussions are, I changed it to sg_init_one with no ill effects. Added comment for wait_for_completion(). Signed-off-by: Nikos Mavrogiannopoulos --- cryptodev_cipher.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'cryptodev_cipher.c') diff --git a/cryptodev_cipher.c b/cryptodev_cipher.c index 97998fe..60a55db 100644 --- a/cryptodev_cipher.c +++ b/cryptodev_cipher.c @@ -148,7 +148,11 @@ static inline int waitfor (struct cryptodev_result* cr, ssize_t ret) case -EINPROGRESS: case -EBUSY: wait_for_completion(&cr->completion); - /* no error from wait_for_completion */ + /* At this point we known for sure the request has finished, + * because wait_for_completion above was not interruptible. + * This is important because otherwise hardware or driver + * might try to access memory which will be freed or reused for + * another request. */ if (cr->err) { dprintk(0,KERN_ERR,"error from async request: %zd \n", ret); -- cgit