kernel - opencrypto - optimize chained synchronous callbacks for soft crypto
* When a crypto operation is dispatched to a crypto thread and makes a
synchronous callback from that thread, and the callback function
dispatches a followup crypto as part of a chain, we ignore F_BATCH
and run the followup crypto directly.
Since we are already in a crypto thread there's no point dispatching
the followup crypto to another crypto thread.
Increases dm_crypt's essiv performance w/software crypto by 7%.
* Warning: The chain length for crypto operations with synchronous
callbacks should be limited to 2 or 3 to avoid blowing up the kernel's
thread stack.