Re: [Ocf-linux-users] crypto_dispatch update for 20080917
Brought to you by:
david-m
|
From: David M. <Dav...@se...> - 2009-04-30 11:08:45
|
Jivin Kennedy, Brendan lays it down ...
> Thanks David,
>
> So is that patch going to be in the next release? :-) Just it definitely
> changes how error cases need to be handled in the drivers...
If it fixes the problem you are seeing I will commit it and it will be in
the next release :-) I should do one really, it has the 2.6.29 updates
etc in there now and quite a few more little updates.
> Yep, it's EINVAL or EFAULT. The fault code seems to only matter if it's
> ERESTART though??
Basically I just wanted to know what a driver was doing that would return
an error other than full. EINVAL sprang to mind if the kery sizes or
something similar didn't match.
I was concerned if it was something that would normally happen, as I
haven't been seeing it myself.
Thanks again,
Cheers,
Davidm
> -----Original Message-----
> From: David McCullough [mailto:Dav...@se...]
> Sent: 30 April 2009 00:03
> To: Kennedy, Brendan
> Cc: ocf...@li...
> Subject: Re: [Ocf-linux-users] crypto_dispatch update for 20080917
>
>
> Jivin Kennedy, Brendan lays it down ...
> > Hi All,
> >
> > I am having trouble understanding the update to the crypto_dispatch function in crypto.c for ocf-linux-20080917 from ocf-linux-2071215:
> >
> > 2007 code:
> > if (!cap->cc_qblocked) {
> > result = crypto_invoke(cap, crp, 0);
> > if (result != ERESTART)
> > return (result);
> >
> > 2008 code:
> > result = crypto_invoke(cap, crp, 0);
> > CRYPTO_Q_LOCK();
> > if (result != ERESTART)
> > crypto_drivers[hid].cc_qblocked = 0;
> >
> > In the 2008 code an error is not returned to cryptodev.c if crypto_invoke returns an error code.
> > Should we now always call crypto_done() if there is a fail in the driver invoke function?
> >
> > I ask because I've tried this but am getting a soft lockup when using crypto-tools and testing some fail case scenarios if I set the crp->etype before calling crypto-done.
>
> Yeah, I can't explain it either and I made that change. It was part of a
> SMP/locking problem and it looks like I lost the result code. Here is a
> quick patch (untested :-) that I think will return the functionality that
> was lost. Let me know how it goes.
>
> Out of interest, what is the condition error that the driver you are using
> is reporting ? EINVAL perhaps ?
>
> Thanks for tracking this down,
>
> Cheers,
> Davidm
>
> Index: ocf/crypto.c
> ===================================================================
> RCS file: ocf/crypto.c,v
> retrieving revision 1.42
> diff -u -r1.42 crypto.c
> --- ocf/crypto.c 31 Mar 2009 00:41:14 -0000 1.42
> +++ ocf/crypto.c 29 Apr 2009 23:01:08 -0000
> @@ -838,13 +838,15 @@
> */
> list_add(&crp->crp_next, &crp_q);
> cryptostats.cs_blocks++;
> + result = 0;
> } else if (result == -1) {
> TAILQ_INSERT_TAIL(&crp_q, crp, crp_next);
> + result = 0;
> }
> if (crp_sleep)
> wake_up_interruptible(&cryptoproc_wait);
> CRYPTO_Q_UNLOCK();
> - return 0;
> + return result;
> }
>
> /*
>
>
> --
> David McCullough, dav...@se..., Ph:+61 734352815
> McAfee - SnapGear http://www.snapgear.com http://www.uCdot.org
> ---------------------------------------------------------------------
> Intel Shannon Limited
> Registered in Ireland
> Registered Office: One Spencer Dock, North Wall Quay, Dublin 1
> Registered Number: 308263
> Business address: Dromore House, East Park, Shannon, Co. Clare
>
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
>
--
David McCullough, dav...@se..., Ph:+61 734352815
McAfee - SnapGear http://www.snapgear.com http://www.uCdot.org
|