Thread (9 messages) 9 messages, 4 authors, 2018-08-30

Re: Locking for HW crypto accelerators

From: Krzysztof Kozlowski <krzk@kernel.org>
Date: 2018-08-30 14:00:07
Also in: linux-crypto

On Thu, 30 Aug 2018 at 15:27, Kamil Konieczny
[off-list ref] wrote:
On 30.08.2018 15:09, Krzysztof Kozlowski wrote:
quoted
[...]
Thanks Stephan for hints. Let's assume the each of init, update and
final are atomic... but how about the relation between update and
final? I have two concurrent users in user-space but only one HW:

Process A:             Process B:
init() and set_key()
                       init() and different key
update(some_data)
                       update(different_data)
final()
                       final()

The final() from process A will now produce the result of hashing/CRC
of some_data and different_data (and even maybe mixed with init() for
different key). All because in the meantime process B added its own
data to the HW.

Best regards,
Krzysztof
Can your hardware do export/import ?

If yes, you can use workqueue and guard HW with spinlock,
as in exynos hash in s5p-sss.c (or see other drivers).
Yes, workqueue doing all necessary HW initialization would be the
solution here as well. The point is what later Herbert wrote - I need
to take care about the HW state because the requests even for shash
will be coming in random order.

Best regards,
Krzysztof
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help