19 Aug, 2014

1 commit

  • commit 4c63f83c2c2e16a13ce274ee678e28246bd33645 upstream.

    Th AF_ALG socket was missing a security label (e.g. SELinux)
    which means that socket was in "unlabeled" state.

    This was recently demonstrated in the cryptsetup package
    (cryptsetup v1.6.5 and later.)
    See https://bugzilla.redhat.com/show_bug.cgi?id=1115120

    This patch clones the sock's label from the parent sock
    and resolves the issue (similar to AF_BLUETOOTH protocol family).

    Signed-off-by: Milan Broz
    Acked-by: Paul Moore
    Signed-off-by: Herbert Xu
    Signed-off-by: Jiri Slaby

    Milan Broz
     

23 Jun, 2014

1 commit

  • [ Upstream commit 90f62cf30a78721641e08737bda787552428061e ]

    It is possible by passing a netlink socket to a more privileged
    executable and then to fool that executable into writing to the socket
    data that happens to be valid netlink message to do something that
    privileged executable did not intend to do.

    To keep this from happening replace bare capable and ns_capable calls
    with netlink_capable, netlink_net_calls and netlink_ns_capable calls.
    Which act the same as the previous calls except they verify that the
    opener of the socket had the desired permissions as well.

    Reported-by: Andy Lutomirski
    Signed-off-by: "Eric W. Biederman"
    Signed-off-by: David S. Miller
    Signed-off-by: Jiri Slaby

    Eric W. Biederman
     

09 Jun, 2014

1 commit

  • commit 130fa5bc81b44b6cc1fbdea3abf6db0da22964e0 upstream.

    The crypto algorithm modules utilizing the crypto daemon could
    be used early when the system start up. Using module_init
    does not guarantee that the daemon's work queue is initialized
    when the cypto alorithm depending on crypto_wq starts. It is necessary
    to initialize the crypto work queue earlier at the subsystem
    init time to make sure that it is initialized
    when used.

    Signed-off-by: Tim Chen
    Signed-off-by: Herbert Xu
    Signed-off-by: Jiri Slaby

    Tim Chen
     

03 Apr, 2014

1 commit


20 Dec, 2013

1 commit


12 Dec, 2013

3 commits

  • commit d3f7d56a7a4671d395e8af87071068a195257bf6 upstream.

    Commit 35f9c09fe (tcp: tcp_sendpages() should call tcp_push() once)
    added an internal flag MSG_SENDPAGE_NOTLAST, similar to
    MSG_MORE.

    algif_hash, algif_skcipher, and udp used MSG_MORE from tcp_sendpages()
    and need to see the new flag as identical to MSG_MORE.

    This fixes sendfile() on AF_ALG.

    v3: also fix udp

    Cc: Tom Herbert
    Cc: Eric Dumazet
    Cc: David S. Miller
    Reported-and-tested-by: Shawn Landden
    Original-patch: Richard Weinberger
    Signed-off-by: Shawn Landden
    Signed-off-by: David S. Miller
    Signed-off-by: Greg Kroah-Hartman

    Shawn Landden
     
  • commit fc019c7122dfcd69c50142b57a735539aec5da95 upstream.

    When performing an asynchronous ablkcipher operation the authenc
    completion callback routine is invoked, but it does not locate and use
    the proper IV.

    The callback routine, crypto_authenc_encrypt_done, is updated to use
    the same method of calculating the address of the IV as is done in
    crypto_authenc_encrypt function which sets up the callback.

    Signed-off-by: Tom Lendacky
    Signed-off-by: Herbert Xu
    Signed-off-by: Greg Kroah-Hartman

    Tom Lendacky
     
  • commit 5638cabf3e4883f38dfb246c30980cebf694fbda upstream.

    There are cases when cryptlen can be zero in crypto_ccm_auth():
    -encryptiom: input scatterlist length is zero (no plaintext)
    -decryption: input scatterlist contains only the mac
    plus the condition of having different source and destination buffers
    (or else scatterlist length = max(plaintext_len, ciphertext_len)).

    These are not handled correctly, leading to crashes like:

    root@p4080ds:~/crypto# insmod tcrypt.ko mode=45
    ------------[ cut here ]------------
    kernel BUG at crypto/scatterwalk.c:37!
    Oops: Exception in kernel mode, sig: 5 [#1]
    SMP NR_CPUS=8 P4080 DS
    Modules linked in: tcrypt(+) crc32c xts xcbc vmac pcbc ecb gcm ghash_generic gf128mul ccm ctr seqiv
    CPU: 3 PID: 1082 Comm: cryptomgr_test Not tainted 3.11.0 #14
    task: ee12c5b0 ti: eecd0000 task.ti: eecd0000
    NIP: c0204d98 LR: f9225848 CTR: c0204d80
    REGS: eecd1b70 TRAP: 0700 Not tainted (3.11.0)
    MSR: 00029002 CR: 22044022 XER: 20000000

    GPR00: f9225c94 eecd1c20 ee12c5b0 eecd1c28 ee879400 ee879400 00000000 ee607464
    GPR08: 00000001 00000001 00000000 006b0000 c0204d80 00000000 00000002 c0698e20
    GPR16: ee987000 ee895000 fffffff4 ee879500 00000100 eecd1d58 00000001 00000000
    GPR24: ee879400 00000020 00000000 00000000 ee5b2800 ee607430 00000004 ee607460
    NIP [c0204d98] scatterwalk_start+0x18/0x30
    LR [f9225848] get_data_to_compute+0x28/0x2f0 [ccm]
    Call Trace:
    [eecd1c20] [f9225974] get_data_to_compute+0x154/0x2f0 [ccm] (unreliable)
    [eecd1c70] [f9225c94] crypto_ccm_auth+0x184/0x1d0 [ccm]
    [eecd1cb0] [f9225d40] crypto_ccm_encrypt+0x60/0x2d0 [ccm]
    [eecd1cf0] [c020d77c] __test_aead+0x3ec/0xe20
    [eecd1e20] [c020f35c] test_aead+0x6c/0xe0
    [eecd1e40] [c020f420] alg_test_aead+0x50/0xd0
    [eecd1e60] [c020e5e4] alg_test+0x114/0x2e0
    [eecd1ee0] [c020bd1c] cryptomgr_test+0x4c/0x60
    [eecd1ef0] [c0047058] kthread+0xa8/0xb0
    [eecd1f40] [c000eb0c] ret_from_kernel_thread+0x5c/0x64
    Instruction dump:
    0f080000 81290024 552807fe 0f080000 5529003a 4bffffb4 90830000 39400000
    39000001 8124000c 2f890000 7d28579e 81240008 91230004 4e800020
    ---[ end trace 6d652dfcd1be37bd ]---

    Cc: Jussi Kivilinna
    Signed-off-by: Horia Geanta
    Signed-off-by: Herbert Xu
    Signed-off-by: Greg Kroah-Hartman

    Horia Geanta
     

08 Dec, 2013

2 commits

  • [ Upstream commit d3f7d56a7a4671d395e8af87071068a195257bf6 ]

    Commit 35f9c09fe (tcp: tcp_sendpages() should call tcp_push() once)
    added an internal flag MSG_SENDPAGE_NOTLAST, similar to
    MSG_MORE.

    algif_hash, algif_skcipher, and udp used MSG_MORE from tcp_sendpages()
    and need to see the new flag as identical to MSG_MORE.

    This fixes sendfile() on AF_ALG.

    v3: also fix udp

    Cc: Tom Herbert
    Cc: Eric Dumazet
    Cc: David S. Miller
    Cc: # 3.4.x + 3.2.x
    Reported-and-tested-by: Shawn Landden
    Original-patch: Richard Weinberger
    Signed-off-by: Shawn Landden
    Signed-off-by: David S. Miller
    Signed-off-by: Greg Kroah-Hartman

    Shawn Landden
     
  • [ Upstream commit f3d3342602f8bcbf37d7c46641cb9bca7618eb1c ]

    This patch now always passes msg->msg_namelen as 0. recvmsg handlers must
    set msg_namelen to the proper size
    Suggested-by: Eric Dumazet
    Signed-off-by: Hannes Frederic Sowa
    Signed-off-by: David S. Miller
    Signed-off-by: Greg Kroah-Hartman

    Hannes Frederic Sowa
     

05 Dec, 2013

1 commit

  • commit 124df926090b32a998483f6e43ebeccdbe5b5302 upstream.

    Remove the certificate date checks that are performed when a certificate is
    parsed. There are two checks: a valid from and a valid to. The first check is
    causing a lot of problems with system clocks that don't keep good time and the
    second places an implicit expiry date upon the kernel when used for module
    signing, so do we really need them?

    Signed-off-by: David Howells
    cc: David Woodhouse
    cc: Rusty Russell
    cc: Josh Boyer
    cc: Alexander Holler
    Signed-off-by: Greg Kroah-Hartman

    David Howells
     

30 Nov, 2013

1 commit

  • commit 714b33d15130cbb5ab426456d4e3de842d6c5b8a upstream.

    Stephan Mueller reported to me recently a error in random number generation in
    the ansi cprng. If several small requests are made that are less than the
    instances block size, the remainder for loop code doesn't increment
    rand_data_valid in the last iteration, meaning that the last bytes in the
    rand_data buffer gets reused on the subsequent smaller-than-a-block request for
    random data.

    The fix is pretty easy, just re-code the for loop to make sure that
    rand_data_valid gets incremented appropriately

    Signed-off-by: Neil Horman
    Reported-by: Stephan Mueller
    CC: Stephan Mueller
    CC: Petr Matousek
    CC: Herbert Xu
    CC: "David S. Miller"
    Signed-off-by: Herbert Xu
    Cc: Luis Henriques
    Signed-off-by: Greg Kroah-Hartman

    Neil Horman
     

12 Sep, 2013

1 commit

  • Unfortunately, even with a softdep some distros fail to include
    the necessary modules in the initrd. Therefore this patch adds
    a fallback path to restore existing behaviour where we cannot
    load the new crypto crct10dif algorithm.

    In order to do this, the underlying crct10dif has been split out
    from the crypto implementation so that it can be used on the
    fallback path.

    Signed-off-by: Herbert Xu

    Herbert Xu
     

08 Sep, 2013

2 commits

  • crypto_larval_lookup should only return a larval if it created one.
    Any larval created by another entity must be processed through
    crypto_larval_wait before being returned.

    Otherwise this will lead to a larval being killed twice, which
    will most likely lead to a crash.

    Cc: stable@vger.kernel.org
    Reported-by: Kees Cook
    Tested-by: Kees Cook
    Signed-off-by: Herbert Xu

    Herbert Xu
     
  • Pull crypto update from Herbert Xu:
    "Here is the crypto update for 3.12:

    - Added MODULE_SOFTDEP to allow pre-loading of modules.
    - Reinstated crct10dif driver using the module softdep feature.
    - Allow via rng driver to be auto-loaded.

    - Split large input data when necessary in nx.
    - Handle zero length messages correctly for GCM/XCBC in nx.
    - Handle SHA-2 chunks bigger than block size properly in nx.

    - Handle unaligned lengths in omap-aes.
    - Added SHA384/SHA512 to omap-sham.
    - Added OMAP5/AM43XX SHAM support.
    - Added OMAP4 TRNG support.

    - Misc fixes"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (66 commits)
    Reinstate "crypto: crct10dif - Wrap crc_t10dif function all to use crypto transform framework"
    hwrng: via - Add MODULE_DEVICE_TABLE
    crypto: fcrypt - Fix bitoperation for compilation with clang
    crypto: nx - fix SHA-2 for chunks bigger than block size
    crypto: nx - fix GCM for zero length messages
    crypto: nx - fix XCBC for zero length messages
    crypto: nx - fix limits to sg lists for AES-CCM
    crypto: nx - fix limits to sg lists for AES-XCBC
    crypto: nx - fix limits to sg lists for AES-GCM
    crypto: nx - fix limits to sg lists for AES-CTR
    crypto: nx - fix limits to sg lists for AES-CBC
    crypto: nx - fix limits to sg lists for AES-ECB
    crypto: nx - add offset to nx_build_sg_lists()
    padata - Register hotcpu notifier after initialization
    padata - share code between CPU_ONLINE and CPU_DOWN_FAILED, same to CPU_DOWN_PREPARE and CPU_UP_CANCELED
    hwrng: omap - reorder OMAP TRNG driver code
    crypto: omap-sham - correct dma burst size
    crypto: omap-sham - Enable Polling mode if DMA fails
    crypto: tegra-aes - bitwise vs logical and
    crypto: sahara - checking the wrong variable
    ...

    Linus Torvalds
     

07 Sep, 2013

2 commits


02 Sep, 2013

1 commit

  • v2: Fix bug in statement as pointed out by Herbert Xu. Kudos to pipacs.

    Author: PaX Team
    ML-Post: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120507/142707.html
    URL: http://llvm.linuxfoundation.org

    Merge: Jan-Simon Möller

    Description:

    Fix for warning:
    linux/crypto/fcrypt.c:143:47: warning: signed shift result (0x598000000) requires 36 bits to
    represent, but 'int' only has 32 bits [-Wshift-overflow]
    Z(0xef), Z(0x70), Z(0xcf), Z(0xc2), Z(0x2a), Z(0xb3), Z(0x61), Z(0xad),
    ^~~~~~~
    linux/crypto/fcrypt.c:113:29: note: expanded from macro 'Z'
    ^ ~~
    linux/include/uapi/linux/byteorder/little_endian.h:38:53: note: expanded from macro
    '__cpu_to_be32'
    ^
    linux/include/uapi/linux/swab.h:116:21: note: expanded from macro '__swab32'
    ___constant_swab32(x) : \
    ^
    linux/include/uapi/linux/swab.h:18:12: note: expanded from macro '___constant_swab32'
    (((__u32)(x) & (__u32)0x0000ff00UL) << 8) | \
    ^

    Solution - make sure we don't exceed the 32 bit range.
    #define Z(x) cpu_to_be32(((x & 0x1f) << 27) | (x >> 5))

    Signed-off-by: Jan-Simon Möller
    CC: pageexec@freemail.hu
    CC: llvmlinux@lists.linuxfoundation.org
    CC: behanw@converseincode.com
    CC: herbert@gondor.apana.org.au
    CC: davem@davemloft.net
    CC: linux-crypto@vger.kernel.org
    CC: linux-kernel@vger.kernel.org
    Signed-off-by: Herbert Xu

    Jan-Simon Möller
     

21 Aug, 2013

2 commits


20 Aug, 2013

1 commit


14 Aug, 2013

1 commit


01 Aug, 2013

1 commit


25 Jul, 2013

1 commit

  • Pull crypto fixes from Herbert Xu:
    "This push fixes a memory corruption issue in caam, as well as
    reverting the new optimised crct10dif implementation as it breaks boot
    on initrd systems.

    Hopefully crct10dif will be reinstated once the supporting code is
    added so that it doesn't break boot"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    Revert "crypto: crct10dif - Wrap crc_t10dif function all to use crypto transform framework"
    crypto: caam - Fixed the memory out of bound overwrite issue

    Linus Torvalds
     

24 Jul, 2013

1 commit

  • This reverts commits
    67822649d7305caf3dd50ed46c27b99c94eff996
    39761214eefc6b070f29402aa1165f24d789b3f7
    0b95a7f85718adcbba36407ef88bba0a7379ed03
    31d939625a9a20b1badd2d4e6bf6fd39fa523405
    2d31e518a42828df7877bca23a958627d60408bc

    Unfortunately this change broke boot on some systems that used an
    initrd which does not include the newly created crct10dif modules.
    As these modules are required by sd_mod under certain configurations
    this is a serious problem.

    Signed-off-by: Herbert Xu

    Herbert Xu
     

10 Jul, 2013

1 commit

  • Add support for lz4 and lz4hc compression algorithm using the lib/lz4/*
    codebase.

    [akpm@linux-foundation.org: fix warnings]
    Signed-off-by: Chanho Min
    Cc: "Darrick J. Wong"
    Cc: Bob Pearson
    Cc: Richard Weinberger
    Cc: Herbert Xu
    Cc: Yann Collet
    Cc: Kyungsik Lee
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chanho Min
     

06 Jul, 2013

1 commit

  • Pull crypto update from Herbert Xu:
    - Do not idle omap device between crypto operations in one session.
    - Added sha224/sha384 shims for SSSE3.
    - More optimisations for camellia-aesni-avx2.
    - Removed defunct blowfish/twofish AVX2 implementations.
    - Added unaligned buffer self-tests.
    - Added PCLMULQDQ optimisation for CRCT10DIF.
    - Added support for Freescale's DCP co-processor
    - Misc fixes.

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (44 commits)
    crypto: testmgr - test hash implementations with unaligned buffers
    crypto: testmgr - test AEADs with unaligned buffers
    crypto: testmgr - test skciphers with unaligned buffers
    crypto: testmgr - check that entries in alg_test_descs are in correct order
    Revert "crypto: twofish - add AVX2/x86_64 assembler implementation of twofish cipher"
    Revert "crypto: blowfish - add AVX2/x86_64 implementation of blowfish cipher"
    crypto: camellia-aesni-avx2 - tune assembly code for more performance
    hwrng: bcm2835 - fix MODULE_LICENSE tag
    hwrng: nomadik - use clk_prepare_enable()
    crypto: picoxcell - replace strict_strtoul() with kstrtoul()
    crypto: dcp - Staticize local symbols
    crypto: dcp - Use NULL instead of 0
    crypto: dcp - Use devm_* APIs
    crypto: dcp - Remove redundant platform_set_drvdata()
    hwrng: use platform_{get,set}_drvdata()
    crypto: omap-aes - Don't idle/start AES device between Encrypt operations
    crypto: crct10dif - Use PTR_RET
    crypto: ux500 - Cocci spatch "resource_size.spatch"
    crypto: sha256_ssse3 - add sha224 support
    crypto: sha512_ssse3 - add sha384 support
    ...

    Linus Torvalds
     

04 Jul, 2013

3 commits

  • There have never been any real users of MEMSET operations since they
    have been introduced in January 2007 by commit 7405f74badf4 ("dmaengine:
    refactor dmaengine around dma_async_tx_descriptor"). Therefore remove
    support for them for now, it can be always brought back when needed.

    [sebastian.hesselbarth@gmail.com: fix drivers/dma/mv_xor]
    Signed-off-by: Bartlomiej Zolnierkiewicz
    Signed-off-by: Kyungmin Park
    Signed-off-by: Sebastian Hesselbarth
    Cc: Vinod Koul
    Acked-by: Dan Williams
    Cc: Tomasz Figa
    Cc: Herbert Xu
    Cc: Olof Johansson
    Cc: Kevin Hilman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bartlomiej Zolnierkiewicz
     
  • For the workqueue creation interfaces that do not expect format strings,
    make sure they cannot accidently be parsed that way. Additionally, clean
    up calls made with a single parameter that would be handled as a format
    string. Many callers are passing potentially dynamic string content, so
    use "%s" in those cases to avoid any potential accidents.

    Signed-off-by: Kees Cook
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • The template lookup interface does not provide a way to use format
    strings, so make sure that the interface cannot be abused accidentally.

    Signed-off-by: Kees Cook
    Cc: Herbert Xu
    Cc: "David S. Miller"
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     

25 Jun, 2013

1 commit

  • On Thu, Jun 20, 2013 at 10:00:21AM +0200, Daniel Borkmann wrote:
    > After having fixed a NULL pointer dereference in SCTP 1abd165e ("net:
    > sctp: fix NULL pointer dereference in socket destruction"), I ran into
    > the following NULL pointer dereference in the crypto subsystem with
    > the same reproducer, easily hit each time:
    >
    > BUG: unable to handle kernel NULL pointer dereference at (null)
    > IP: [] __wake_up_common+0x31/0x90
    > PGD 0
    > Oops: 0000 [#1] SMP
    > Modules linked in: padlock_sha(F-) sha256_generic(F) sctp(F) libcrc32c(F) [..]
    > CPU: 6 PID: 3326 Comm: cryptomgr_probe Tainted: GF 3.10.0-rc5+ #1
    > Hardware name: Dell Inc. PowerEdge T410/0H19HD, BIOS 1.6.3 02/01/2011
    > task: ffff88007b6cf4e0 ti: ffff88007b7cc000 task.ti: ffff88007b7cc000
    > RIP: 0010:[] [] __wake_up_common+0x31/0x90
    > RSP: 0018:ffff88007b7cde08 EFLAGS: 00010082
    > RAX: ffffffffffffffe8 RBX: ffff88003756c130 RCX: 0000000000000000
    > RDX: 0000000000000000 RSI: 0000000000000003 RDI: ffff88003756c130
    > RBP: ffff88007b7cde48 R08: 0000000000000000 R09: ffff88012b173200
    > R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000282
    > R13: ffff88003756c138 R14: 0000000000000000 R15: 0000000000000000
    > FS: 0000000000000000(0000) GS:ffff88012fc60000(0000) knlGS:0000000000000000
    > CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    > CR2: 0000000000000000 CR3: 0000000001a0b000 CR4: 00000000000007e0
    > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    > Stack:
    > ffff88007b7cde28 0000000300000000 ffff88007b7cde28 ffff88003756c130
    > 0000000000000282 ffff88003756c128 ffffffff81227670 0000000000000000
    > ffff88007b7cde78 ffffffff810722b7 ffff88007cdcf000 ffffffff81a90540
    > Call Trace:
    > [] ? crypto_alloc_pcomp+0x20/0x20
    > [] complete_all+0x47/0x60
    > [] cryptomgr_probe+0x98/0xc0
    > [] ? crypto_alloc_pcomp+0x20/0x20
    > [] kthread+0xce/0xe0
    > [] ? kthread_freezable_should_stop+0x70/0x70
    > [] ret_from_fork+0x7c/0xb0
    > [] ? kthread_freezable_should_stop+0x70/0x70
    > Code: 41 56 41 55 41 54 53 48 83 ec 18 66 66 66 66 90 89 75 cc 89 55 c8
    > 4c 8d 6f 08 48 8b 57 08 41 89 cf 4d 89 c6 48 8d 42 e
    > RIP [] __wake_up_common+0x31/0x90
    > RSP
    > CR2: 0000000000000000
    > ---[ end trace b495b19270a4d37e ]---
    >
    > My assumption is that the following is happening: the minimal SCTP
    > tool runs under ``echo 1 > /proc/sys/net/sctp/auth_enable'', hence
    > it's making use of crypto_alloc_hash() via sctp_auth_init_hmacs().
    > It forks itself, heavily allocates, binds, listens and waits in
    > accept on sctp sockets, and then randomly kills some of them (no
    > need for an actual client in this case to hit this). Then, again,
    > allocating, binding, etc, and then killing child processes.
    >
    > The problem that might be happening here is that cryptomgr requests
    > the module to probe/load through cryptomgr_schedule_probe(), but
    > before the thread handler cryptomgr_probe() returns, we return from
    > the wait_for_completion_interruptible() function and probably already
    > have cleared up larval, thus we run into a NULL pointer dereference
    > when in cryptomgr_probe() complete_all() is being called.
    >
    > If we wait with wait_for_completion() instead, this panic will not
    > occur anymore. This is valid, because in case a signal is pending,
    > cryptomgr_probe() returns from probing anyway with properly calling
    > complete_all().

    The use of wait_for_completion_interruptible is intentional so that
    we don't lock up the thread if a bug causes us to never wake up.

    This bug is caused by the helper thread using the larval without
    holding a reference count on it. If the helper thread completes
    after the original thread requesting for help has gone away and
    destroyed the larval, then we get the crash above.

    So the fix is to hold a reference count on the larval.

    Cc: # 3.6+
    Reported-by: Daniel Borkmann
    Tested-by: Daniel Borkmann
    Signed-off-by: Herbert Xu

    Herbert Xu
     

21 Jun, 2013

6 commits


05 Jun, 2013

2 commits

  • It appears that the performance of 'vpgatherdd' is suboptimal for this kind of
    workload (tested on Core i5-4570) and causes blowfish-avx2 to be significantly
    slower than blowfish-amd64. So disable the AVX2 implementation to avoid
    performance regressions.

    Signed-off-by: Jussi Kivilinna
    Signed-off-by: Herbert Xu

    Jussi Kivilinna
     
  • It appears that the performance of 'vpgatherdd' is suboptimal for this kind of
    workload (tested on Core i5-4570) and causes twofish_avx2 to be significantly
    slower than twofish_avx. So disable the AVX2 implementation to avoid
    performance regressions.

    Signed-off-by: Jussi Kivilinna
    Signed-off-by: Herbert Xu

    Jussi Kivilinna
     

28 May, 2013

1 commit