08 Aug, 2020

1 commit

  • As said by Linus:

    A symmetric naming is only helpful if it implies symmetries in use.
    Otherwise it's actively misleading.

    In "kzalloc()", the z is meaningful and an important part of what the
    caller wants.

    In "kzfree()", the z is actively detrimental, because maybe in the
    future we really _might_ want to use that "memfill(0xdeadbeef)" or
    something. The "zero" part of the interface isn't even _relevant_.

    The main reason that kzfree() exists is to clear sensitive information
    that should not be leaked to other future users of the same memory
    objects.

    Rename kzfree() to kfree_sensitive() to follow the example of the recently
    added kvfree_sensitive() and make the intention of the API more explicit.
    In addition, memzero_explicit() is used to clear the memory to make sure
    that it won't get optimized away by the compiler.

    The renaming is done by using the command sequence:

    git grep -w --name-only kzfree |\
    xargs sed -i 's/kzfree/kfree_sensitive/'

    followed by some editing of the kfree_sensitive() kerneldoc and adding
    a kzfree backward compatibility macro in slab.h.

    [akpm@linux-foundation.org: fs/crypto/inline_crypt.c needs linux/slab.h]
    [akpm@linux-foundation.org: fix fs/crypto/inline_crypt.c some more]

    Suggested-by: Joe Perches
    Signed-off-by: Waiman Long
    Signed-off-by: Andrew Morton
    Acked-by: David Howells
    Acked-by: Michal Hocko
    Acked-by: Johannes Weiner
    Cc: Jarkko Sakkinen
    Cc: James Morris
    Cc: "Serge E. Hallyn"
    Cc: Joe Perches
    Cc: Matthew Wilcox
    Cc: David Rientjes
    Cc: Dan Carpenter
    Cc: "Jason A . Donenfeld"
    Link: http://lkml.kernel.org/r/20200616154311.12314-3-longman@redhat.com
    Signed-off-by: Linus Torvalds

    Waiman Long
     

20 Apr, 2020

5 commits

  • When window is opened, pid reference is taken for user space
    windows. Not needed for kernel windows. So remove 'pid' in
    vas_tx_win_attr struct.

    Signed-off-by: Haren Myneni
    Acked-by: Herbert Xu
    Signed-off-by: Michael Ellerman
    Link: https://lore.kernel.org/r/1587114674.2275.1132.camel@hbabu-laptop

    Haren Myneni
     
  • Changes to probe GZIP device-tree nodes, open RX windows and setup
    GZIP compression type. No plans to provide GZIP usage in kernel right
    now, but this patch enables GZIP for user space usage.

    Signed-off-by: Haren Myneni
    Acked-by: Herbert Xu
    Signed-off-by: Michael Ellerman
    Link: https://lore.kernel.org/r/1587114624.2275.1129.camel@hbabu-laptop

    Haren Myneni
     
  • Make setup and enable code generic to support new GZIP compression type.
    Changed nx842 reference to nx and moved some code to new functions.
    Functionality is not changed except sparse warning fix - setting NULL
    instead of 0 for per_cpu send window in nx_delete_coprocs().

    Signed-off-by: Haren Myneni
    Acked-by: Herbert Xu
    Signed-off-by: Michael Ellerman
    Link: https://lore.kernel.org/r/1587114569.2275.1126.camel@hbabu-laptop

    Haren Myneni
     
  • Rename nx-842-powernv.c to nx-common-powernv.c to add code for setup
    and enable new GZIP compression type. The actual functionality is not
    changed in this patch.

    Signed-off-by: Haren Myneni
    Acked-by: Herbert Xu
    Signed-off-by: Michael Ellerman
    Link: https://lore.kernel.org/r/1587114200.2275.1113.camel@hbabu-laptop

    Haren Myneni
     
  • coproc entry is initialized during NX probe on power9, but not on P8.
    nx842_delete_coprocs() is used for both and frees receive window if it
    is allocated. Getting crash for rmmod on P8 since coproc->vas.rxwin
    is not initialized.

    This patch replaces kmalloc with kzalloc in nx842_powernv_probe()

    Signed-off-by: Haren Myneni
    Acked-by: Herbert Xu
    Signed-off-by: Michael Ellerman
    Link: https://lore.kernel.org/r/1587114163.2275.1110.camel@hbabu-laptop

    Haren Myneni
     

06 Mar, 2020

1 commit

  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva
    Reviewed-by: Horia Geantă
    Signed-off-by: Herbert Xu

    Gustavo A. R. Silva
     

17 Nov, 2019

1 commit


25 Oct, 2019

1 commit


23 Oct, 2019

4 commits

  • Convert the PowerPC Nest (NX) implementation of AES-CTR from the
    deprecated "blkcipher" API to the "skcipher" API. This is needed in
    order for the blkcipher API to be removed.

    Signed-off-by: Eric Biggers
    Reviewed-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • Convert the PowerPC Nest (NX) implementation of AES-CBC from the
    deprecated "blkcipher" API to the "skcipher" API. This is needed in
    order for the blkcipher API to be removed.

    Signed-off-by: Eric Biggers
    Reviewed-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • Convert the PowerPC Nest (NX) implementation of AES-ECB from the
    deprecated "blkcipher" API to the "skcipher" API. This is needed in
    order for the blkcipher API to be removed.

    Signed-off-by: Eric Biggers
    Reviewed-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu

    Eric Biggers
     
  • The NX crypto driver is using 'struct blkcipher_desc' to pass the IV
    around, even for AEADs (for which it creates the struct on the stack).
    This is not appropriate since this structure is part of the "blkcipher"
    API, which is deprecated and will be removed.

    Just pass around the IV directly instead.

    Signed-off-by: Eric Biggers
    Reviewed-by: Ard Biesheuvel
    Signed-off-by: Herbert Xu

    Eric Biggers
     

30 Aug, 2019

1 commit


02 Aug, 2019

1 commit

  • Each iteration of for_each_compatible_node puts the previous node, but
    in the case of a return from the middle of the loop, there is no put,
    thus causing a memory leak. Add an of_node_put before the return.
    Issue found with Coccinelle.

    Acked-by: Stewart Smith
    Signed-off-by: Nishka Dasgupta
    Signed-off-by: Herbert Xu

    Nishka Dasgupta
     

09 Jul, 2019

1 commit

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

    API:
    - Test shash interface directly in testmgr
    - cra_driver_name is now mandatory

    Algorithms:
    - Replace arc4 crypto_cipher with library helper
    - Implement 5 way interleave for ECB, CBC and CTR on arm64
    - Add xxhash
    - Add continuous self-test on noise source to drbg
    - Update jitter RNG

    Drivers:
    - Add support for SHA204A random number generator
    - Add support for 7211 in iproc-rng200
    - Fix fuzz test failures in inside-secure
    - Fix fuzz test failures in talitos
    - Fix fuzz test failures in qat"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (143 commits)
    crypto: stm32/hash - remove interruptible condition for dma
    crypto: stm32/hash - Fix hmac issue more than 256 bytes
    crypto: stm32/crc32 - rename driver file
    crypto: amcc - remove memset after dma_alloc_coherent
    crypto: ccp - Switch to SPDX license identifiers
    crypto: ccp - Validate the the error value used to index error messages
    crypto: doc - Fix formatting of new crypto engine content
    crypto: doc - Add parameter documentation
    crypto: arm64/aes-ce - implement 5 way interleave for ECB, CBC and CTR
    crypto: arm64/aes-ce - add 5 way interleave routines
    crypto: talitos - drop icv_ool
    crypto: talitos - fix hash on SEC1.
    crypto: talitos - move struct talitos_edesc into talitos.h
    lib/scatterlist: Fix mapping iterator when sg->offset is greater than PAGE_SIZE
    crypto/NX: Set receive window credits to max number of CRBs in RxFIFO
    crypto: asymmetric_keys - select CRYPTO_HASH where needed
    crypto: serpent - mark __serpent_setkey_sbox noinline
    crypto: testmgr - dynamically allocate crypto_shash
    crypto: testmgr - dynamically allocate testvec_config
    crypto: talitos - eliminate unneeded 'done' functions at build time
    ...

    Linus Torvalds
     

28 Jun, 2019

1 commit

  • System gets checkstop if RxFIFO overruns with more requests than the
    maximum possible number of CRBs in FIFO at the same time. The max number
    of requests per window is controlled by window credits. So find max
    CRBs from FIFO size and set it to receive window credits.

    Fixes: b0d6c9bab5e4 ("crypto/nx: Add P9 NX support for 842 compression engine")
    CC: stable@vger.kernel.org # v4.14+
    Signed-off-by:Haren Myneni

    Signed-off-by: Herbert Xu

    Haren Myneni
     

20 Jun, 2019

1 commit

  • When calling debugfs functions, there is no need to ever check the
    return value. The function can work or not, but the code logic should
    never do something different based on this.

    Also, there is no need to store the individual debugfs file names,
    especially as the whole directiry is deleted at once, so remove the
    unneeded structure entirely.

    Cc: "Breno Leitão"
    Cc: Nayna Jain
    Cc: Paulo Flabiano Smorigo
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Michael Ellerman
    Cc: Herbert Xu
    Cc: "David S. Miller"
    Cc: linux-crypto@vger.kernel.org
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: Herbert Xu

    Greg Kroah-Hartman
     

17 Jun, 2019

1 commit


05 Jun, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation version 2 only this program is
    distributed in the hope that it will be useful but without any
    warranty without even the implied warranty of merchantability or
    fitness for a particular purpose see the gnu general public license
    for more details you should have received a copy of the gnu general
    public license along with this program if not write to the free
    software foundation inc 675 mass ave cambridge ma 02139 usa

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 15 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Richard Fontana
    Reviewed-by: Allison Randal
    Reviewed-by: Alexios Zavras
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190529141902.274594435@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

03 Jun, 2019

2 commits

  • Now that atomic64_read() returns s64 consistently, we don't need to
    explicitly cast its return value. Drop the redundant casts.

    Signed-off-by: Mark Rutland
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Herbert Xu
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Will Deacon
    Cc: aou@eecs.berkeley.edu
    Cc: arnd@arndb.de
    Cc: bp@alien8.de
    Cc: catalin.marinas@arm.com
    Cc: davem@davemloft.net
    Cc: fenghua.yu@intel.com
    Cc: heiko.carstens@de.ibm.com
    Cc: ink@jurassic.park.msu.ru
    Cc: jhogan@kernel.org
    Cc: linux@armlinux.org.uk
    Cc: mattst88@gmail.com
    Cc: mpe@ellerman.id.au
    Cc: palmer@sifive.com
    Cc: paul.burton@mips.com
    Cc: paulus@samba.org
    Cc: ralf@linux-mips.org
    Cc: rth@twiddle.net
    Cc: tony.luck@intel.com
    Cc: vgupta@synopsys.com
    Link: https://lkml.kernel.org/r/20190522132250.26499-18-mark.rutland@arm.com
    Signed-off-by: Ingo Molnar

    Mark Rutland
     
  • The return type of atomic64_read() varies by architecture. It may return
    long (e.g. powerpc), long long (e.g. arm), or s64 (e.g. x86_64). This is
    somewhat painful, and mandates the use of explicit casts in some cases
    (e.g. when printing the return value).

    To ameliorate matters, subsequent patches will make the atomic64 API
    consistently use s64.

    As a preparatory step, this patch updates the nx-842 code to treat the
    return value of atomic64_read() as s64, using explicit casts. These
    casts will be removed once the s64 conversion is complete.

    Signed-off-by: Mark Rutland
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Herbert Xu
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Will Deacon
    Cc: aou@eecs.berkeley.edu
    Cc: arnd@arndb.de
    Cc: bp@alien8.de
    Cc: catalin.marinas@arm.com
    Cc: davem@davemloft.net
    Cc: fenghua.yu@intel.com
    Cc: heiko.carstens@de.ibm.com
    Cc: ink@jurassic.park.msu.ru
    Cc: jhogan@kernel.org
    Cc: linux@armlinux.org.uk
    Cc: mattst88@gmail.com
    Cc: mpe@ellerman.id.au
    Cc: palmer@sifive.com
    Cc: paul.burton@mips.com
    Cc: paulus@samba.org
    Cc: ralf@linux-mips.org
    Cc: rth@twiddle.net
    Cc: tony.luck@intel.com
    Cc: vgupta@synopsys.com
    Link: https://lkml.kernel.org/r/20190522132250.26499-2-mark.rutland@arm.com
    Signed-off-by: Ingo Molnar

    Mark Rutland
     

31 May, 2019

1 commit

  • Based on 3 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version [author] [kishon] [vijay] [abraham]
    [i] [kishon]@[ti] [com] this program is distributed in the hope that
    it will be useful but without any warranty without even the implied
    warranty of merchantability or fitness for a particular purpose see
    the gnu general public license for more details

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version [author] [graeme] [gregory]
    [gg]@[slimlogic] [co] [uk] [author] [kishon] [vijay] [abraham] [i]
    [kishon]@[ti] [com] [based] [on] [twl6030]_[usb] [c] [author] [hema]
    [hk] [hemahk]@[ti] [com] this program is distributed in the hope
    that it will be useful but without any warranty without even the
    implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 1105 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Reviewed-by: Kate Stewart
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070033.202006027@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

21 May, 2019

2 commits

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details you
    should have received a copy of the gnu general public license along
    with this program if not write to the free software foundation 51
    franklin street fifth floor boston ma 02110 1301 usa

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 2 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Kate Stewart
    Reviewed-by: Steve Winslow
    Reviewed-by: Jilayne Lovejoy
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190519154042.432790911@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     
  • Add SPDX license identifiers to all Make/Kconfig files which:

    - Have no license information of any form

    These files fall under the project license, GPL v2 only. The resulting SPDX
    license identifier is:

    GPL-2.0-only

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

25 Apr, 2019

1 commit

  • The nx driver uses the MAY_SLEEP flag in shash_desc::flags as an
    indicator to not retry sending the operation to the hardware as many
    times before returning -EBUSY. This is bogus because (1) that's not
    what the MAY_SLEEP flag is for, and (2) the shash API doesn't allow
    failing if the hardware is busy anyway.

    For now, just make it always retry the larger number of times. This
    doesn't actually fix this driver, but it at least makes it not use the
    shash_desc::flags field anymore. Then this field can be removed, as no
    other drivers use it.

    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     

08 Apr, 2019

1 commit

  • Fixes gcc '-Wunused-but-set-variable' warning:

    drivers/crypto/nx/nx-842.c: In function 'decompress':
    drivers/crypto/nx/nx-842.c:356:25: warning: variable 'dpadding' set but not used [-Wunused-but-set-variable]
    drivers/crypto/nx/nx-842-pseries.c: In function 'nx842_pseries_compress':
    drivers/crypto/nx/nx-842-pseries.c:299:15: warning: variable 'max_sync_size' set but not used [-Wunused-but-set-variable]
    drivers/crypto/nx/nx-842-pseries.c: In function 'nx842_pseries_decompress':
    drivers/crypto/nx/nx-842-pseries.c:430:15: warning: variable 'max_sync_size' set but not used [-Wunused-but-set-variable]

    They are not used any more and can be removed.

    Signed-off-by: YueHaibing
    Reviewed-by: Mukesh Ojha
    Signed-off-by: Herbert Xu

    YueHaibing
     

23 Dec, 2018

1 commit

  • Remove dead code related to internal IV generators, which are no longer
    used since they've been replaced with the "seqiv" and "echainiv"
    templates. The removed code includes:

    - The "givcipher" (GIVCIPHER) algorithm type. No algorithms are
    registered with this type anymore, so it's unneeded.

    - The "const char *geniv" member of aead_alg, ablkcipher_alg, and
    blkcipher_alg. A few algorithms still set this, but it isn't used
    anymore except to show via /proc/crypto and CRYPTO_MSG_GETALG.
    Just hardcode "" or "" in those cases.

    - The 'skcipher_givcrypt_request' structure, which is never used.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     

18 Aug, 2018

1 commit

  • Pull powerpc updates from Michael Ellerman:
    "Notable changes:

    - A fix for a bug in our page table fragment allocator, where a page
    table page could be freed and reallocated for something else while
    still in use, leading to memory corruption etc. The fix reuses
    pt_mm in struct page (x86 only) for a powerpc only refcount.

    - Fixes to our pkey support. Several are user-visible changes, but
    bring us in to line with x86 behaviour and/or fix outright bugs.
    Thanks to Florian Weimer for reporting many of these.

    - A series to improve the hvc driver & related OPAL console code,
    which have been seen to cause hardlockups at times. The hvc driver
    changes in particular have been in linux-next for ~month.

    - Increase our MAX_PHYSMEM_BITS to 128TB when SPARSEMEM_VMEMMAP=y.

    - Remove Power8 DD1 and Power9 DD1 support, neither chip should be in
    use anywhere other than as a paper weight.

    - An optimised memcmp implementation using Power7-or-later VMX
    instructions

    - Support for barrier_nospec on some NXP CPUs.

    - Support for flushing the count cache on context switch on some IBM
    CPUs (controlled by firmware), as a Spectre v2 mitigation.

    - A series to enhance the information we print on unhandled signals
    to bring it into line with other arches, including showing the
    offending VMA and dumping the instructions around the fault.

    Thanks to: Aaro Koskinen, Akshay Adiga, Alastair D'Silva, Alexey
    Kardashevskiy, Alexey Spirkov, Alistair Popple, Andrew Donnellan,
    Aneesh Kumar K.V, Anju T Sudhakar, Arnd Bergmann, Bartosz Golaszewski,
    Benjamin Herrenschmidt, Bharat Bhushan, Bjoern Noetel, Boqun Feng,
    Breno Leitao, Bryant G. Ly, Camelia Groza, Christophe Leroy, Christoph
    Hellwig, Cyril Bur, Dan Carpenter, Daniel Klamt, Darren Stevens, Dave
    Young, David Gibson, Diana Craciun, Finn Thain, Florian Weimer,
    Frederic Barrat, Gautham R. Shenoy, Geert Uytterhoeven, Geoff Levand,
    Guenter Roeck, Gustavo Romero, Haren Myneni, Hari Bathini, Joel
    Stanley, Jonathan Neuschäfer, Kees Cook, Madhavan Srinivasan, Mahesh
    Salgaonkar, Markus Elfring, Mathieu Malaterre, Mauro S. M. Rodrigues,
    Michael Hanselmann, Michael Neuling, Michael Schmitz, Mukesh Ojha,
    Murilo Opsfelder Araujo, Nicholas Piggin, Parth Y Shah, Paul
    Mackerras, Paul Menzel, Ram Pai, Randy Dunlap, Rashmica Gupta, Reza
    Arbab, Rodrigo R. Galvao, Russell Currey, Sam Bobroff, Scott Wood,
    Shilpasri G Bhat, Simon Guo, Souptick Joarder, Stan Johnson, Thiago
    Jung Bauermann, Tyrel Datwyler, Vaibhav Jain, Vasant Hegde, Venkat
    Rao, zhong jiang"

    * tag 'powerpc-4.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (234 commits)
    powerpc/mm/book3s/radix: Add mapping statistics
    powerpc/uaccess: Enable get_user(u64, *p) on 32-bit
    powerpc/mm/hash: Remove unnecessary do { } while(0) loop
    powerpc/64s: move machine check SLB flushing to mm/slb.c
    powerpc/powernv/idle: Fix build error
    powerpc/mm/tlbflush: update the mmu_gather page size while iterating address range
    powerpc/mm: remove warning about ‘type’ being set
    powerpc/32: Include setup.h header file to fix warnings
    powerpc: Move `path` variable inside DEBUG_PROM
    powerpc/powermac: Make some functions static
    powerpc/powermac: Remove variable x that's never read
    cxl: remove a dead branch
    powerpc/powermac: Add missing include of header pmac.h
    powerpc/kexec: Use common error handling code in setup_new_fdt()
    powerpc/xmon: Add address lookup for percpu symbols
    powerpc/mm: remove huge_pte_offset_and_shift() prototype
    powerpc/lib: Use patch_site to patch copy_32 functions once cache is enabled
    powerpc/pseries: Fix endianness while restoring of r3 in MCE handler.
    powerpc/fadump: merge adjacent memory ranges to reduce PT_LOAD segements
    powerpc/fadump: handle crash memory ranges array index overflow
    ...

    Linus Torvalds
     

07 Aug, 2018

1 commit

  • NX increments readOffset by FIFO size in receive FIFO control register
    when CRB is read. But the index in RxFIFO has to match with the
    corresponding entry in FIFO maintained by VAS in kernel. Otherwise NX
    may be processing incorrect CRBs and can cause CRB timeout.

    VAS FIFO offset is 0 when the receive window is opened during
    initialization. When the module is reloaded or in kexec boot, readOffset
    in FIFO control register may not match with VAS entry. This patch adds
    nx_coproc_init OPAL call to reset readOffset and queued entries in FIFO
    control register for both high and normal FIFOs.

    Signed-off-by: Haren Myneni
    [mpe: Fixup uninitialized variable warning]
    Signed-off-by: Michael Ellerman

    Haren Myneni
     

09 Jul, 2018

1 commit

  • Many shash algorithms set .cra_flags = CRYPTO_ALG_TYPE_SHASH. But this
    is redundant with the C structure type ('struct shash_alg'), and
    crypto_register_shash() already sets the type flag automatically,
    clearing any type flag that was already there. Apparently the useless
    assignment has just been copy+pasted around.

    So, remove the useless assignment from all the shash algorithms.

    This patch shouldn't change any actual behavior.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     

19 May, 2018

1 commit


22 Feb, 2018

1 commit


29 Nov, 2017

1 commit


17 Nov, 2017

1 commit

  • Pull powerpc updates from Michael Ellerman:
    "A bit of a small release, I suspect in part due to me travelling for
    KS. But my backlog of patches to review is smaller than usual, so I
    think in part folks just didn't send as much this cycle.

    Non-highlights:

    - Five fixes for the >128T address space handling, both to fix bugs
    in our implementation and to bring the semantics exactly into line
    with x86.

    Highlights:

    - Support for a new OPAL call on bare metal machines which gives us a
    true NMI (ie. is not masked by MSR[EE]=0) for debugging etc.

    - Support for Power9 DD2 in the CXL driver.

    - Improvements to machine check handling so that uncorrectable errors
    can be reported into the generic memory_failure() machinery.

    - Some fixes and improvements for VPHN, which is used under PowerVM
    to notify the Linux partition of topology changes.

    - Plumbing to enable TM (transactional memory) without suspend on
    some Power9 processors (PPC_FEATURE2_HTM_NO_SUSPEND).

    - Support for emulating vector loads form cache-inhibited memory, on
    some Power9 revisions.

    - Disable the fast-endian switch "syscall" by default (behind a
    CONFIG), we believe it has never had any users.

    - A major rework of the API drivers use when initiating and waiting
    for long running operations performed by OPAL firmware, and changes
    to the powernv_flash driver to use the new API.

    - Several fixes for the handling of FP/VMX/VSX while processes are
    using transactional memory.

    - Optimisations of TLB range flushes when using the radix MMU on
    Power9.

    - Improvements to the VAS facility used to access coprocessors on
    Power9, and related improvements to the way the NX crypto driver
    handles requests.

    - Implementation of PMEM_API and UACCESS_FLUSHCACHE for 64-bit.

    Thanks to: Alexey Kardashevskiy, Alistair Popple, Allen Pais, Andrew
    Donnellan, Aneesh Kumar K.V, Arnd Bergmann, Balbir Singh, Benjamin
    Herrenschmidt, Breno Leitao, Christophe Leroy, Christophe Lombard,
    Cyril Bur, Frederic Barrat, Gautham R. Shenoy, Geert Uytterhoeven,
    Guilherme G. Piccoli, Gustavo Romero, Haren Myneni, Joel Stanley,
    Kamalesh Babulal, Kautuk Consul, Markus Elfring, Masami Hiramatsu,
    Michael Bringmann, Michael Neuling, Michal Suchanek, Naveen N. Rao,
    Nicholas Piggin, Oliver O'Halloran, Paul Mackerras, Pedro Miraglia
    Franco de Carvalho, Philippe Bergheaud, Sandipan Das, Seth Forshee,
    Shriya, Stephen Rothwell, Stewart Smith, Sukadev Bhattiprolu, Tyrel
    Datwyler, Vaibhav Jain, Vaidyanathan Srinivasan, and William A.
    Kennington III"

    * tag 'powerpc-4.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (151 commits)
    powerpc/64s: Fix Power9 DD2.0 workarounds by adding DD2.1 feature
    powerpc/64s: Fix masking of SRR1 bits on instruction fault
    powerpc/64s: mm_context.addr_limit is only used on hash
    powerpc/64s/radix: Fix 128TB-512TB virtual address boundary case allocation
    powerpc/64s/hash: Allow MAP_FIXED allocations to cross 128TB boundary
    powerpc/64s/hash: Fix fork() with 512TB process address space
    powerpc/64s/hash: Fix 128TB-512TB virtual address boundary case allocation
    powerpc/64s/hash: Fix 512T hint detection to use >= 128T
    powerpc: Fix DABR match on hash based systems
    powerpc/signal: Properly handle return value from uprobe_deny_signal()
    powerpc/fadump: use kstrtoint to handle sysfs store
    powerpc/lib: Implement UACCESS_FLUSHCACHE API
    powerpc/lib: Implement PMEM API
    powerpc/powernv/npu: Don't explicitly flush nmmu tlb
    powerpc/powernv/npu: Use flush_all_mm() instead of flush_tlb_mm()
    powerpc/powernv/idle: Round up latency and residency values
    powerpc/kprobes: refactor kprobe_lookup_name for safer string operations
    powerpc/kprobes: Blacklist emulate_update_regs() from kprobes
    powerpc/kprobes: Do not disable interrupts for optprobes and kprobes_on_ftrace
    powerpc/kprobes: Disable preemption before invoking probe handler for optprobes
    ...

    Linus Torvalds
     

15 Nov, 2017

1 commit

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

    API:

    - Disambiguate EBUSY when queueing crypto request by adding ENOSPC.
    This change touches code outside the crypto API.
    - Reset settings when empty string is written to rng_current.

    Algorithms:

    - Add OSCCA SM3 secure hash.

    Drivers:

    - Remove old mv_cesa driver (replaced by marvell/cesa).
    - Enable rfc3686/ecb/cfb/ofb AES in crypto4xx.
    - Add ccm/gcm AES in crypto4xx.
    - Add support for BCM7278 in iproc-rng200.
    - Add hash support on Exynos in s5p-sss.
    - Fix fallback-induced error in vmx.
    - Fix output IV in atmel-aes.
    - Fix empty GCM hash in mediatek.

    Others:

    - Fix DoS potential in lib/mpi.
    - Fix potential out-of-order issues with padata"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (162 commits)
    lib/mpi: call cond_resched() from mpi_powm() loop
    crypto: stm32/hash - Fix return issue on update
    crypto: dh - Remove pointless checks for NULL 'p' and 'g'
    crypto: qat - Clean up error handling in qat_dh_set_secret()
    crypto: dh - Don't permit 'key' or 'g' size longer than 'p'
    crypto: dh - Don't permit 'p' to be 0
    crypto: dh - Fix double free of ctx->p
    hwrng: iproc-rng200 - Add support for BCM7278
    dt-bindings: rng: Document BCM7278 RNG200 compatible
    crypto: chcr - Replace _manual_ swap with swap macro
    crypto: marvell - Add a NULL entry at the end of mv_cesa_plat_id_table[]
    hwrng: virtio - Virtio RNG devices need to be re-registered after suspend/resume
    crypto: atmel - remove empty functions
    crypto: ecdh - remove empty exit()
    MAINTAINERS: update maintainer for qat
    crypto: caam - remove unused param of ctx_map_to_sec4_sg()
    crypto: caam - remove unneeded edesc zeroization
    crypto: atmel-aes - Reset the controller before each use
    crypto: atmel-aes - properly set IV after {en,de}crypt
    hwrng: core - Reset user selected rng by writing "" to rng_current
    ...

    Linus Torvalds
     

12 Nov, 2017

3 commits

  • We are using percpu send window on P9 NX (powerNV) instead of opening
    / closing per each crypto session. Means txwin is removed from
    workmem. So we do not need to initialize workmem for each request.

    Signed-off-by: Haren Myneni
    Signed-off-by: Michael Ellerman

    Haren Myneni
     
  • For P9 NX, the send window is opened for each crypto session and
    closed upon free. But VAS supports 64K windows per chip for all
    coprocessors including in user space support. So there is a
    possibility of not getting the window for kernel requests.

    This patch reserves windows for each coprocessor type (NX842) and are
    available forever for kernel requests, Opens each window for each CPU
    on the corresponding chip during driver initialization. So then use
    the percpu txwin for NX requests depends on the CPU on which the
    process is executing.

    Signed-off-by: Haren Myneni
    Signed-off-by: Michael Ellerman

    Haren Myneni
     
  • Define a helper, chip_to_vas_id() to map a given chip id to corresponding
    vas id.

    Normally, callers of vas_rx_win_open() and vas_tx_win_open() want the VAS
    window to be on the same chip where the calling thread is executing. These
    callers can pass in -1 for the VAS id.

    This interface will be useful if a thread running on one chip wants to open
    a window on another chip (like the NX-842 driver does during start up).

    Signed-off-by: Sukadev Bhattiprolu
    Signed-off-by: Michael Ellerman

    Sukadev Bhattiprolu
     

07 Nov, 2017

1 commit