RE: [PATCH v2 03/11] async_tx: structify submission arguments, addscribble
From: Sosnowski, Maciej
Date: Fri May 29 2009 - 09:43:24 EST
Dan Williams wrote:
> Prepare the api for the arrival of a new parameter, 'scribble'. This
> will allow callers to identify scratchpad memory for dma address or page
> address conversions. As this adds yet another parameter, take this
> opportunity to convert the common submission parameters (flags,
> dependency, callback, and callback argument) into an object that is
> passed by reference.
>
> [ Impact: moves api pass-by-value parameters to a pass-by-reference struct ]
>
> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
> ---
> crypto/async_tx/async_memcpy.c | 21 ++++-----
> crypto/async_tx/async_memset.c | 23 ++++------
> crypto/async_tx/async_tx.c | 34 +++++++--------
> crypto/async_tx/async_xor.c | 93 +++++++++++++++++-----------------------
> drivers/md/raid5.c | 59 +++++++++++++++----------
> include/linux/async_tx.h | 84 +++++++++++++++++++++++-------------
> 6 files changed, 161 insertions(+), 153 deletions(-)
(...)
> @@ -811,13 +818,11 @@ ops_run_postxor(struct stripe_head *sh, struct
> dma_async_tx_descriptor *tx)
>
> atomic_inc(&sh->count);
>
> - if (unlikely(count == 1)) {
> - flags &= ~(ASYNC_TX_XOR_DROP_DST | ASYNC_TX_XOR_ZERO_DST);
> - tx = async_memcpy(xor_dest, xor_srcs[0], 0, 0, STRIPE_SIZE,
> - flags, tx, ops_complete_postxor, sh);
> - } else
> - tx = async_xor(xor_dest, xor_srcs, 0, count, STRIPE_SIZE,
> - flags, tx, ops_complete_postxor, sh);
> + init_async_submit(&submit, flags, tx, ops_complete_postxor, sh, NULL);
> + if (unlikely(count == 1))
> + tx = async_memcpy(xor_dest, xor_srcs[0], 0, 0, STRIPE_SIZE, &submit);
> + else
> + tx = async_xor(xor_dest, xor_srcs, 0, count, STRIPE_SIZE, &submit);
> }
What about ASYNC_TX_XOR_DROP_DST and ASYNC_TX_XOR_ZERO_DST flags clearing before async_memcpy?
Maciej--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/