22 Aug, 2008

1 commit

  • Authenc works in two stages for encryption, it first encrypts and
    then computes an ICV. The context memory of the request is used
    by both operations. The problem is that when an asynchronous
    encryption completes, we will compute the ICV and then reread the
    context memory of the encryption to get the original request.

    It just happens that we have a buffer of 16 bytes in front of the
    request pointer, so ICVs of 16 bytes (such as SHA1) do not trigger
    the bug. However, any attempt to uses a larger ICV instantly kills
    the machine when the first asynchronous encryption is completed.

    This patch fixes this by saving the request pointer before we start
    the ICV computation.

    Signed-off-by: Herbert Xu

    Herbert Xu
     

13 Aug, 2008

2 commits

  • The changeset ca786dc738f4f583b57b1bba7a335b5e8233f4b0

    crypto: hash - Fixed digest size check

    missed one spot for the digest type. This patch corrects that
    error.

    Signed-off-by: Herbert Xu

    Herbert Xu
     
  • My changeset 4b22f0ddb6564210c9ded7ba25b2a1007733e784

    crypto: tcrpyt - Remove unnecessary kmap/kunmap calls

    introduced a typo that broke AEAD chunk testing. In particular,
    axbuf should really be xbuf.

    There is also an issue with testing the last segment when encrypting.
    The additional part produced by AEAD wasn't tested. Similarly, on
    decryption the additional part of the AEAD input is mistaken for
    corruption.

    Signed-off-by: Herbert Xu

    Herbert Xu
     

06 Aug, 2008

1 commit


24 Jul, 2008

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (24 commits)
    I/OAT: I/OAT version 3.0 support
    I/OAT: tcp_dma_copybreak default value dependent on I/OAT version
    I/OAT: Add watchdog/reset functionality to ioatdma
    iop_adma: cleanup iop_chan_xor_slot_count
    iop_adma: document how to calculate the minimum descriptor pool size
    iop_adma: directly reclaim descriptors on allocation failure
    async_tx: make async_tx_test_ack a boolean routine
    async_tx: remove depend_tx from async_tx_sync_epilog
    async_tx: export async_tx_quiesce
    async_tx: fix handling of the "out of descriptor" condition in async_xor
    async_tx: ensure the xor destination buffer remains dma-mapped
    async_tx: list_for_each_entry_rcu() cleanup
    dmaengine: Driver for the Synopsys DesignWare DMA controller
    dmaengine: Add slave DMA interface
    dmaengine: add DMA_COMPL_SKIP_{SRC,DEST}_UNMAP flags to control dma unmap
    dmaengine: Add dma_client parameter to device_alloc_chan_resources
    dmatest: Simple DMA memcpy test client
    dmaengine: DMA engine driver for Marvell XOR engine
    iop-adma: fix platform driver hotplug/coldplug
    dmaengine: track the number of clients using a channel
    ...

    Fixed up conflict in drivers/dca/dca-sysfs.c manually

    Linus Torvalds
     

18 Jul, 2008

5 commits

  • All callers of async_tx_sync_epilog have called async_tx_quiesce on the
    depend_tx, so async_tx_sync_epilog need only call the callback to
    complete the operation.

    Signed-off-by: Dan Williams

    Dan Williams
     
  • Replace open coded "wait and acknowledge" instances with async_tx_quiesce.

    Signed-off-by: Dan Williams

    Dan Williams
     
  • Ensure forward progress is made when a dmaengine driver is unable to
    allocate an xor descriptor by breaking the dependency chain with
    async_tx_quisce() and issue any pending descriptors.

    Tested with iop-adma by setting device->max_xor = 2 to force multiple
    calls to device_prep_dma_xor for each call to async_xor and limiting the
    descriptor slot pool to 5. Discovered that the minimum descriptor pool
    size for iop-adma is 2 * iop_chan_xor_slot_cnt(device->max_xor) + 1.

    Signed-off-by: Dan Williams

    Dan Williams
     
  • When the number of source buffers for an xor operation exceeds the hardware
    channel maximum async_xor creates a chain of dependent operations. The result
    of one operation is reused as an input to the next to continue the xor
    calculation. The destination buffer should remain mapped for the duration of
    the entire chain. To provide this guarantee the code must no longer be allowed
    to fallback to the synchronous path as this will preclude the buffer from being
    unmapped, i.e. the dma-driver will potentially miss the descriptor with
    !DMA_COMPL_SKIP_DEST_UNMAP.

    Cc: Neil Brown
    Signed-off-by: Dan Williams

    Dan Williams
     
  • In the rcu update side, don't use list_for_each_entry_rcu().

    Signed-off-by: Li Zefan
    Signed-off-by: Dan Williams

    Li Zefan
     

16 Jul, 2008

2 commits


15 Jul, 2008

1 commit


11 Jul, 2008

1 commit


10 Jul, 2008

26 commits