Re: [PATCH 3/6] async_tx: Handle DMA devices having support for fewer PQ coefficients

From: Dan Williams
Date: Thu Feb 02 2017 - 01:01:26 EST


On Wed, Feb 1, 2017 at 8:47 PM, Anup Patel <anup.patel@xxxxxxxxxxxx> wrote:
> The DMAENGINE framework assumes that if PQ offload is supported by a
> DMA device then all 256 PQ coefficients are supported. This assumption
> does not hold anymore because we now have BCM-SBA-RAID offload engine
> which supports PQ offload with limited number of PQ coefficients.
>
> This patch extends async_tx APIs to handle DMA devices with support
> for fewer PQ coefficients.
>
> Signed-off-by: Anup Patel <anup.patel@xxxxxxxxxxxx>
> Reviewed-by: Scott Branden <scott.branden@xxxxxxxxxxxx>
> ---
> crypto/async_tx/async_pq.c | 3 +++
> crypto/async_tx/async_raid6_recov.c | 12 ++++++++++--
> include/linux/dmaengine.h | 19 +++++++++++++++++++
> include/linux/raid/pq.h | 3 +++
> 4 files changed, 35 insertions(+), 2 deletions(-)

So, I hate the way async_tx does these checks on each operation, and
it's ok for me to say that because it's my fault. Really it's md that
should be validating engine offload capabilities once at the beginning
of time. I'd rather we move in that direction than continue to pile
onto a bad design.