1. 03 Jun, 2021 14 commits
  2. 28 May, 2021 26 commits
    • Longfang Liu's avatar
      crypto: hisilicon/qm - support address prefetching · a5c164b1
      Longfang Liu authored
      Kunpeng930 hardware supports address prefetching to improve performance
      before doing tasks in SVA scenario.
      
      This patch enables this function in device initialization by writing
      hardware registers. In the process of reset, address prefetching is
      disabled to avoid the failure of interaction between accelerator device
      and SMMU.
      Signed-off-by: default avatarLongfang Liu <liulongfang@huawei.com>
      Signed-off-by: default avatarWeili Qian <qianweili@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      a5c164b1
    • Weili Qian's avatar
      crypto: hisilicon/qm - add MSI detection steps on Kunpeng930 · 9b75e311
      Weili Qian authored
      Compared with Kunpeng920, Kunpeng930 adds MSI configuration steps to wait
      for the interrupt to be emptied. In order to be compatible with the
      kunpeng920 driver, 'set_msi' callback is added in 'hisi_qm_hw_ops' to
      configure hardware register. Call 'set_msi' to disable or enable MSI
      during reset.
      Signed-off-by: default avatarWeili Qian <qianweili@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      9b75e311
    • Hui Tang's avatar
      crypto: ecdh - add test suite for NIST P384 · 8e568fc2
      Hui Tang authored
      Add test vector params for NIST P384, add test vector for
      NIST P384 on vector of tests.
      
      Vector param from:
      https://datatracker.ietf.org/doc/html/rfc5903#section-3.1Signed-off-by: default avatarHui Tang <tanghui20@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      8e568fc2
    • Hui Tang's avatar
      crypto: ecdh - register NIST P384 tfm · 81541325
      Hui Tang authored
      Add ecdh_nist_p384_init_tfm and register and unregister P384 tfm.
      Signed-off-by: default avatarHui Tang <tanghui20@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      81541325
    • Hui Tang's avatar
      crypto: ecdh - fix 'ecdh_init' · 8fd28fa5
      Hui Tang authored
      NIST P192 is not unregistered if failed to register NIST P256,
      actually it need to unregister the algorithms already registered.
      Signed-off-by: default avatarHui Tang <tanghui20@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      8fd28fa5
    • Hui Tang's avatar
      crypto: ecdh - fix ecdh-nist-p192's entry in testmgr · 6889fc21
      Hui Tang authored
      Add a comment that p192 will fail to register in FIPS mode.
      
      Fix ecdh-nist-p192's entry in testmgr by removing the ifdefs
      and not setting fips_allowed.
      Signed-off-by: default avatarHui Tang <tanghui20@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      6889fc21
    • Kai Ye's avatar
      crypto: hisilicon/qm - fix the process of VF's list adding · 0dbcf1a2
      Kai Ye authored
      If Kunpeng 920 enabled the sva mode, the "qm alg register" process will
      return directly. So the list of VF wasn't added to QM list.
      Signed-off-by: default avatarKai Ye <yekai13@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      0dbcf1a2
    • Kai Ye's avatar
      crypto: hisilicon/qm - add dfx log if not use hardware crypto algs · dc118034
      Kai Ye authored
      Add print information necessary if not use hardware crypto algs.
      Signed-off-by: default avatarKai Ye <yekai13@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      dc118034
    • Jiapeng Chong's avatar
      crypto: qce - Fix inconsistent indenting · e5764377
      Jiapeng Chong authored
      Eliminate the follow smatch warning:
      
      drivers/crypto/qce/aead.c:85 qce_aead_done() warn: inconsistent
      indenting.
      Reported-by: default avatarAbaci Robot <abaci@linux.alibaba.com>
      Signed-off-by: default avatarJiapeng Chong <jiapeng.chong@linux.alibaba.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      e5764377
    • Shaokun Zhang's avatar
      crypto: nx - Fix typo in comment · 3f4a8567
      Shaokun Zhang authored
      Fix typo '@workmem' -> '@wmem'.
      
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarShaokun Zhang <zhangshaokun@hisilicon.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      3f4a8567
    • Thara Gopinath's avatar
      MAINTAINERS: Add maintainer for Qualcomm crypto drivers · abf790a9
      Thara Gopinath authored
      There is no maintainer for Qualcomm crypto drivers and we are seeing more
      development in this area. Add myself as the maintainer so that I can help
      in reviewing the changes submitted to these drivers.
      Signed-off-by: default avatarThara Gopinath <thara.gopinath@linaro.org>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      abf790a9
    • Thara Gopinath's avatar
      crypto: qce: skcipher: Fix incorrect sg count for dma transfers · 1339a7c3
      Thara Gopinath authored
      Use the sg count returned by dma_map_sg to call into
      dmaengine_prep_slave_sg rather than using the original sg count. dma_map_sg
      can merge consecutive sglist entries, thus making the original sg count
      wrong. This is a fix for memory coruption issues observed while testing
      encryption/decryption of large messages using libkcapi framework.
      
      Patch has been tested further by running full suite of tcrypt.ko tests
      including fuzz tests.
      Signed-off-by: default avatarThara Gopinath <thara.gopinath@linaro.org>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      1339a7c3
    • Stephan Müller's avatar
      crypto: DRBG - switch to HMAC SHA512 DRBG as default DRBG · 9b7b9468
      Stephan Müller authored
      The default DRBG is the one that has the highest priority. The priority
      is defined based on the order of the list drbg_cores[] where the highest
      priority is given to the last entry by drbg_fill_array.
      
      With this patch the default DRBG is switched from HMAC SHA256 to HMAC
      SHA512 to support compliance with SP800-90B and SP800-90C (current
      draft).
      
      The user of the crypto API is completely unaffected by the change.
      Signed-off-by: default avatarStephan Mueller <smueller@chronox.de>
      Acked-by: default avatarsimo Sorce <simo@redhat.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      9b7b9468
    • YueHaibing's avatar
      hwrng: core - Use DEVICE_ATTR_<RW|RO> macro · 98f481f2
      YueHaibing authored
      Use DEVICE_ATTR_RW()/DEVICE_ATTR_RO() helper instead of
      plain DEVICE_ATTR, which makes the code a bit shorter and
      easier to read.
      Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      98f481f2
    • Ard Biesheuvel's avatar
      crypto: tcrypt - enable tests for xxhash and blake2 · aa22cd7f
      Ard Biesheuvel authored
      Fill some of the recently freed up slots in tcrypt with xxhash64 and
      blake2b/blake2s, so we can easily benchmark their kernel implementations
      from user space.
      Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      aa22cd7f
    • Lee Jones's avatar
      crypto: ccp: ccp-dev: Fix a little doc-rot · 01df08b9
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/crypto/ccp/ccp-dev.c:476: warning: Function parameter or member 'sp' not described in 'ccp_alloc_struct'
       drivers/crypto/ccp/ccp-dev.c:476: warning: Excess function parameter 'dev' description in 'ccp_alloc_struct'
       drivers/crypto/ccp/ccp-dev.c:476: warning: Function parameter or member 'sp' not described in 'ccp_alloc_struct'
       drivers/crypto/ccp/ccp-dev.c:476: warning: Excess function parameter 'dev' description in 'ccp_alloc_struct'
      
      Cc: Tom Lendacky <thomas.lendacky@amd.com>
      Cc: John Allen <john.allen@amd.com>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Gary R Hook <gary.hook@amd.com>
      Cc: linux-crypto@vger.kernel.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      01df08b9
    • Lee Jones's avatar
      crypto: nx: nx-aes-gcm: Kernel-doc formatting should not be used for headers · c215b513
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/crypto/nx/nx-aes-gcm.c:26: warning: Function parameter or member 'tfm' not described in 'gcm_aes_nx_set_key'
       drivers/crypto/nx/nx-aes-gcm.c:26: warning: Function parameter or member 'in_key' not described in 'gcm_aes_nx_set_key'
       drivers/crypto/nx/nx-aes-gcm.c:26: warning: Function parameter or member 'key_len' not described in 'gcm_aes_nx_set_key'
       drivers/crypto/nx/nx-aes-gcm.c:26: warning: expecting prototype for Nest Accelerators driver(). Prototype was for gcm_aes_nx_set_key() instead
       drivers/crypto/nx/nx-aes-ecb.c:24: warning: Function parameter or member 'tfm' not described in 'ecb_aes_nx_set_key'
       drivers/crypto/nx/nx-aes-ecb.c:24: warning: Function parameter or member 'in_key' not described in 'ecb_aes_nx_set_key'
       drivers/crypto/nx/nx-aes-ecb.c:24: warning: Function parameter or member 'key_len' not described in 'ecb_aes_nx_set_key'
       drivers/crypto/nx/nx-aes-ecb.c:24: warning: expecting prototype for Nest Accelerators driver(). Prototype was for ecb_aes_nx_set_key() instead
       drivers/crypto/nx/nx-aes-ccm.c:26: warning: Function parameter or member 'tfm' not described in 'ccm_aes_nx_set_key'
       drivers/crypto/nx/nx-aes-ccm.c:26: warning: Function parameter or member 'in_key' not described in 'ccm_aes_nx_set_key'
       drivers/crypto/nx/nx-aes-ccm.c:26: warning: Function parameter or member 'key_len' not described in 'ccm_aes_nx_set_key'
       drivers/crypto/nx/nx-aes-ccm.c:26: warning: expecting prototype for Nest Accelerators driver(). Prototype was for ccm_aes_nx_set_key() instead
       drivers/crypto/nx/nx-aes-ctr.c:25: warning: Function parameter or member 'tfm' not described in 'ctr_aes_nx_set_key'
       drivers/crypto/nx/nx-aes-ctr.c:25: warning: Function parameter or member 'in_key' not described in 'ctr_aes_nx_set_key'
       drivers/crypto/nx/nx-aes-ctr.c:25: warning: Function parameter or member 'key_len' not described in 'ctr_aes_nx_set_key'
       drivers/crypto/nx/nx-aes-ctr.c:25: warning: expecting prototype for Nest Accelerators driver(). Prototype was for ctr_aes_nx_set_key() instead
       drivers/crypto/nx/nx-aes-xcbc.c:22: warning: cannot understand function prototype: 'struct xcbc_state '
       drivers/crypto/nx/nx-sha256.c:21: warning: Function parameter or member 'tfm' not described in 'nx_crypto_ctx_sha256_init'
       drivers/crypto/nx/nx-sha256.c:21: warning: expecting prototype for SHA(). Prototype was for nx_crypto_ctx_sha256_init() instead
       drivers/crypto/nx/nx-sha512.c:20: warning: Function parameter or member 'tfm' not described in 'nx_crypto_ctx_sha512_init'
       drivers/crypto/nx/nx-sha512.c:20: warning: expecting prototype for SHA(). Prototype was for nx_crypto_ctx_sha512_init() instead
       drivers/crypto/nx/nx-842-pseries.c:280: warning: Function parameter or member 'wmem' not described in 'nx842_pseries_compress'
       drivers/crypto/nx/nx-842-pseries.c:280: warning: Excess function parameter 'wrkmem' description in 'nx842_pseries_compress'
       drivers/crypto/nx/nx-842-pseries.c:410: warning: Function parameter or member 'wmem' not described in 'nx842_pseries_decompress'
       drivers/crypto/nx/nx-842-pseries.c:410: warning: Excess function parameter 'wrkmem' description in 'nx842_pseries_decompress'
       drivers/crypto/nx/nx-842-pseries.c:523: warning: Function parameter or member 'devdata' not described in 'nx842_OF_set_defaults'
       drivers/crypto/nx/nx-842-pseries.c:548: warning: Function parameter or member 'prop' not described in 'nx842_OF_upd_status'
       drivers/crypto/nx/nx-842-pseries.c:582: warning: Function parameter or member 'devdata' not described in 'nx842_OF_upd_maxsglen'
       drivers/crypto/nx/nx-842-pseries.c:582: warning: Function parameter or member 'prop' not described in 'nx842_OF_upd_maxsglen'
       drivers/crypto/nx/nx-842-pseries.c:630: warning: Function parameter or member 'devdata' not described in 'nx842_OF_upd_maxsyncop'
       drivers/crypto/nx/nx-842-pseries.c:630: warning: Function parameter or member 'prop' not described in 'nx842_OF_upd_maxsyncop'
       drivers/crypto/nx/nx-842-pseries.c:692: warning: Cannot understand  *
       drivers/crypto/nx/nx-842-pseries.c:825: warning: Function parameter or member 'data' not described in 'nx842_OF_notifier'
       drivers/crypto/nx/nx-842-pseries.c:825: warning: Excess function parameter 'update' description in 'nx842_OF_notifier'
      
      Cc: Haren Myneni <haren@us.ibm.com>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Robert Jennings <rcj@linux.vnet.ibm.com>
      Cc: Seth Jennings <sjenning@linux.vnet.ibm.com>
      Cc: linux-crypto@vger.kernel.org
      Cc: linuxppc-dev@lists.ozlabs.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      c215b513
    • Lee Jones's avatar
      crypto: cavium: Fix a bunch of kernel-doc related issues · c4d7d318
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/crypto/cavium/nitrox/nitrox_main.c:41: warning: cannot understand function prototype: 'const struct pci_device_id nitrox_pci_tbl[] = '
       drivers/crypto/cavium/nitrox/nitrox_main.c:73: warning: Function parameter or member 'ndev' not described in 'write_to_ucd_unit'
       drivers/crypto/cavium/nitrox/nitrox_main.c:73: warning: Function parameter or member 'ucode_size' not described in 'write_to_ucd_unit'
       drivers/crypto/cavium/nitrox/nitrox_main.c:73: warning: Function parameter or member 'ucode_data' not described in 'write_to_ucd_unit'
       drivers/crypto/cavium/nitrox/nitrox_main.c:73: warning: Function parameter or member 'block_num' not described in 'write_to_ucd_unit'
       drivers/crypto/cavium/nitrox/nitrox_reqmgr.c:46: warning: Function parameter or member 'index' not described in 'incr_index'
       drivers/crypto/cavium/nitrox/nitrox_reqmgr.c:46: warning: Function parameter or member 'count' not described in 'incr_index'
       drivers/crypto/cavium/nitrox/nitrox_reqmgr.c:46: warning: Function parameter or member 'max' not described in 'incr_index'
       drivers/crypto/cavium/nitrox/nitrox_reqmgr.c:46: warning: expecting prototype for Response codes from SE microcode(). Prototype was for incr_index() instead
       drivers/crypto/cavium/nitrox/nitrox_reqmgr.c:287: warning: Function parameter or member 'cmdq' not described in 'post_se_instr'
       drivers/crypto/cavium/nitrox/nitrox_reqmgr.c:381: warning: Function parameter or member 'callback' not described in 'nitrox_process_se_request'
       drivers/crypto/cavium/nitrox/nitrox_reqmgr.c:381: warning: Function parameter or member 'cb_arg' not described in 'nitrox_process_se_request'
       drivers/crypto/cavium/nitrox/nitrox_reqmgr.c:381: warning: expecting prototype for nitrox_se_request(). Prototype was for nitrox_process_se_request() instead
       drivers/crypto/cavium/nitrox/nitrox_reqmgr.c:535: warning: Function parameter or member 'cmdq' not described in 'process_response_list'
       drivers/crypto/cavium/nitrox/nitrox_reqmgr.c:535: warning: expecting prototype for process_request_list(). Prototype was for process_response_list() instead
       drivers/crypto/cavium/nitrox/nitrox_reqmgr.c:584: warning: Function parameter or member 'data' not described in 'pkt_slc_resp_tasklet'
       drivers/crypto/cavium/nitrox/nitrox_mbx.c:14: warning: cannot understand function prototype: 'enum mbx_msg_type '
       drivers/crypto/cavium/nitrox/nitrox_mbx.c:24: warning: cannot understand function prototype: 'enum mbx_msg_opcode '
       drivers/crypto/cavium/nitrox/nitrox_skcipher.c:26: warning: cannot understand function prototype: 'const struct nitrox_cipher flexi_cipher_table[] = '
       drivers/crypto/cavium/cpt/cptpf_main.c:411: warning: Function parameter or member 'cpt' not described in 'cpt_unload_microcode'
       drivers/crypto/cavium/cpt/cptpf_main.c:411: warning: expecting prototype for Ensure all cores are disengaged from all groups by(). Prototype was for cpt_unload_microcode() instead
       drivers/crypto/cavium/cpt/cptvf_reqmanager.c:17: warning: Function parameter or member 'q' not described in 'get_free_pending_entry'
       drivers/crypto/cavium/cpt/cptvf_reqmanager.c:17: warning: Function parameter or member 'qlen' not described in 'get_free_pending_entry'
      
      Cc: George Cherian <gcherian@marvell.com>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: linux-crypto@vger.kernel.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      c4d7d318
    • Shaokun Zhang's avatar
      hwrng: core - remove redundant initialization of variable err · cb028f16
      Shaokun Zhang authored
      'err' will be assigned later and cleanup the redundant initialization.
      
      Cc: PrasannaKumar Muralidharan <prasannatsmkumar@gmail.com>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarShaokun Zhang <zhangshaokun@hisilicon.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      cb028f16
    • Wei Yongjun's avatar
      crypto: qce - Fix some error handling path · 5c0ecc2e
      Wei Yongjun authored
      Fix to return negative error code from the error handling
      cases instead of 0.
      
      Fixes: 9363efb4 ("crypto: qce - Add support for AEAD algorithms")
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarWei Yongjun <weiyongjun1@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      5c0ecc2e
    • Hui Tang's avatar
      crypto: khazad,wp512 - remove leading spaces before tabs · 30836548
      Hui Tang authored
      There are a few leading spaces before tabs and remove it by running the
      following commard:
      
      	$ find . -name '*.c' | xargs sed -r -i 's/^[ ]+\t/\t/'
      
      At the same time, fix two warning by running checkpatch.pl:
      	WARNING: suspect code indent for conditional statements (16, 16)
      	WARNING: braces {} are not necessary for single statement blocks
      Signed-off-by: default avatarHui Tang <tanghui20@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      30836548
    • Zhen Lei's avatar
      crypto: header - Fix spelling errors · 155f7d32
      Zhen Lei authored
      Fix some spelling mistakes in comments:
      cipherntext ==> ciphertext
      syncronise ==> synchronise
      feeded ==> fed
      Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      155f7d32
    • Juerg Haefliger's avatar
      hwrng: Kconfig - Remove leading spaces · 11e0ca8f
      Juerg Haefliger authored
      Remove leading spaces before tabs in Kconfig file(s) by running the
      following command:
      
        $ find drivers/char/hw_random -name 'Kconfig*' | x\
          args sed -r -i 's/^[ ]+\t/\t/'
      Signed-off-by: default avatarJuerg Haefliger <juergh@canonical.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      11e0ca8f
    • Jack Xu's avatar
      crypto: qat - remove unused macro in FW loader · 9afe77cf
      Jack Xu authored
      Remove the unused macro ICP_DH895XCC_PESRAM_BAR_SIZE in the firmware
      loader.
      
      This is to fix the following warning when compiling the driver using the
      clang compiler with CC=clang W=2:
      
          drivers/crypto/qat/qat_common/qat_uclo.c:345:9: warning: macro is not used [-Wunused-macros]
      Signed-off-by: default avatarJack Xu <jack.xu@intel.com>
      Co-developed-by: default avatarZhehui Xiang <zhehui.xiang@intel.com>
      Signed-off-by: default avatarZhehui Xiang <zhehui.xiang@intel.com>
      Reviewed-by: default avatarGiovanni Cabiddu <giovanni.cabiddu@intel.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      9afe77cf
    • Jack Xu's avatar
      crypto: qat - check return code of qat_hal_rd_rel_reg() · 96b57229
      Jack Xu authored
      Check the return code of the function qat_hal_rd_rel_reg() and return it
      to the caller.
      
      This is to fix the following warning when compiling the driver with
      clang scan-build:
      
          drivers/crypto/qat/qat_common/qat_hal.c:1436:2: warning: 6th function call argument is an uninitialized value
      Signed-off-by: default avatarJack Xu <jack.xu@intel.com>
      Co-developed-by: default avatarZhehui Xiang <zhehui.xiang@intel.com>
      Signed-off-by: default avatarZhehui Xiang <zhehui.xiang@intel.com>
      Reviewed-by: default avatarGiovanni Cabiddu <giovanni.cabiddu@intel.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      96b57229
    • Jack Xu's avatar
      crypto: qat - report an error if MMP file size is too large · 78b4267a
      Jack Xu authored
      Change the return status to error if MMP file size is too large so the
      driver load fails early if a large MMP firmware is loaded.
      Signed-off-by: default avatarJack Xu <jack.xu@intel.com>
      Co-developed-by: default avatarZhehui Xiang <zhehui.xiang@intel.com>
      Signed-off-by: default avatarZhehui Xiang <zhehui.xiang@intel.com>
      Reviewed-by: default avatarGiovanni Cabiddu <giovanni.cabiddu@intel.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      78b4267a