Hi All,

I've a linux driver that writes to and reads from the device, and also
provides device control, such as setting the keys, ecb or cbc mode,
initialization vector for cbc. The driver is tested and working fine.
Now, to allow openssl to use my hardware device for different
cryptographic operations, I write an ENGINE that includes code that
calls my hardware using appropriate calls. This ENGINE is also
registered to provide the implementation of any algorithms it supports.
To make sure that openssl uses my hardware successfully, I used the
speed application of the openssl and issue this command at my side...

openssl speed -evp aes-128-cbc -engine myengine -elapsed

and it works fine with no problem but when I tried to run the same
command with -multi 20 option, it starts creating problem.
Sometimes 1 or 2 threads remain in running state and the applications
stops responding. This problems comes infrequently and only when I use
to run the speed test with high -multi values (10 or more). During hang
condition, I already cross-checked that there is no packet is left in
my driver code, so the culprit seems to be in the openssl side.

I am using the openssl-0.9.7e source code and Linux 2.6.15 kernel
combination.

Will anyone among you suggest me, what is going wrong??