summaryrefslogtreecommitdiff
path: root/drivers/crypto
AgeCommit message (Collapse)Author
2012-05-22crypto: ux500: hash: device_prep_slave_sg() has a new context param in 3.4securityPhilippe Langlais
Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org>
2012-05-22mach-ux500, drivers: u9540 security fixMichel JAOUEN
ST-Ericsson ID: 409625 ST-Ericsson FOSS-OUT ID: trivial ST-Ericsson Linux next: NA Depends-On: Iff4121811d2afbf581eec0905077c58bff96ce09 Change-Id: I43d5d593a4b6183d39322851db930e687177eead Signed-off-by: Michel JAOUEN <michel.jaouen@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/45317 Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com> Reviewed-by: Berne HEBARK <berne.hebark@stericsson.com> Reviewed-by: Linus WALLEIJ <linus.walleij@stericsson.com>
2012-05-22crypto: ux500: hash: Performance improvementsBerne Hebark
- writel and readl changed to writel/readl_relaxed. - changed to writesl in HASH_SET_DIN macro. - DMA limitation to use CPU mode for datasize < 1kB. ST-Ericsson ID: 371579 ST-Ericsson Linux next: Not tested, ER 320876 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I111351fbdbc874a35dbc5bce2dd9dbe3f4411253 Signed-off-by: Berne Hebark <berne.hebark@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/36618 Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: Per FORLIN <per.forlin@stericsson.com>
2012-05-22crypto: ux500: hash: Coverity correctionBerne Hebark
Coverity found invalid usage of device_data->dev. ST-Ericsson ID: 361610 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I78e756eb36af833e6620d0b02eda25c36741c94a Signed-off-by: Berne Hebark <berne.hebark@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/36480 Reviewed-by: QATOOLS Reviewed-by: QABUILD
2012-05-22crypto: ux500: hash: DMA supportBerne Hebark
- Support for DMA. - Direct to CPU mode for data size < 4 byte data. - Workaround to handle data sizes not modulo wordsize. - Error message/check for HMAC empty message with keysize > 0. - Error message/check for HMAC DMA for u5500, since not working. - Additional, update cryp driver dma code according to this patch and make minor adjustments to comply with mainline code and design are covered by AP370178. ST-Ericsson ID: 280691 ST-Ericsson Linux next: Not tested, ER 320876 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I14d64d1577f007969b372ed4ef04556eca8bc0d6 Signed-off-by: Berne Hebark <berne.hebark@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/33983 Reviewed-by: Per FORLIN <per.forlin@stericsson.com> Reviewed-by: QATOOLS Reviewed-by: QABUILD
2012-05-22crypto: Move atomic regulator header filePhilippe Langlais
Atomic regulators should be placed in a regulator include file, not in mfd. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/32136
2012-05-22crypto: ux500: update prcmu header file pathMian Yousaf Kaukab
File path updated according to the mainline version of prcmu driver. Change-Id: Iddf4b63a209f1191d0c60d5c5f20b8c663fba34c Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/32118 Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com> Tested-by: Jonas ABERG <jonas.aberg@stericsson.com>
2012-05-22crypto: ux500: hash: Block size data fix.Berne Hebark
- Include fix for block size data (64 byte). ST-Ericsson ID: 352122 ST-Ericsson Linux next: Not tested, ER 320876 ST-Ericsson FOSS-OUT ID: Trivial Ref: Commit-id: I069aba31d8620e01e74e2b1a5987a0642e74af01 Signed-off-by: Avinash A <Avinash.a@stericsson.com> Change-Id: Idea6cc1e34d6263066188b99d97fafae0f1225aa Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/30440 Reviewed-by: Avinash A <avinash.a@stericsson.com> Tested-by: Avinash A <avinash.a@stericsson.com>
2012-05-22ux500: cryp/hash: Updated for both u8500 & u5500Berne Hebark
cryp1 & hash1 updated to be compatible on both u8500 and u5500: - added to u5500_defconfig. - settings from devices.c to board-mop500.c & board-u5500.c. - dynamic driver registration in board-mop500.c & board-u5500.c. - added cryp1 to clock-db5500.c and renamed cryp to cryp0. - added function dbx500_add_platform_device_noirq to devices-common.c. - added cryp1 and hash1 inline functions to devices-common.h (dbx500_add_cryp1). - defines added to devices-db5500.h and devices-db8500.h. - u8500_cryp/hash changed to ux500_cryp/hash. - update to handle different value for CRYP_PERIPHERAL_ID2 between u8500 and u5500 (more info in ER336742). ST-Ericsson ID: 257104 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Ref: Commit-id: Ibe72c72d8f9d781008164f1bf24ceafa82ac9083 Signed-off-by: Avinash A <Avinash.a@stericsson.com> Change-Id: I08a8f71acb89be99cbf8b54390be569e2369c73b Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/30437 Reviewed-by: Avinash A <avinash.a@stericsson.com> Tested-by: Avinash A <avinash.a@stericsson.com>
2012-05-22crypto: ux500: hash: HMAC (sha1/sha256) supportBerne Hebark
- HMAC (sha1/sha256) support to the hash driver. - Empty message fix ST-Ericsson ID: 348475 ST-Ericsson Linux next: Not tested, ER 320876 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I38961f4e8c1af927ad650743a74ebcf1e8ab4ad4 Signed-off-by: Berne Hebark <berne.hebark@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/25652 Reviewed-by: QATOOLS Reviewed-by: QATEST Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
2012-05-22crypto: ux500: hash: Empty message supportBerne Hebark
Added support for empty message (pre-calculated) digests. Support for data > blocksize, bug introduced in commit using ahash. ST-Ericsson ID: 344561 ST-Ericsson Linux next: Not tested, ER 320876 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I7d9615b074438d1e072bd6c291d392e4ff5e7768 Signed-off-by: Berne Hebark <berne.hebark@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/24825 Reviewed-by: QATEST Reviewed-by: QATOOLS
2012-05-22crypto: align u5500 PRCMU & CPUFREQ management with u8500 (multiple commits ↵Philippe Langlais
in one) Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org> Merge of following commits too: u5500: add support for sysclk basic sysclk support added in PRCMU driver and clock framework driver updated. Signed-off-by: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com> U5500: Support for ESRAM12 EPOD in PRCMU driver Signed-off-by: Vijaya Kumar Kilari <vijay.kilari@stericsson.com> ux500: regulator: handle different base offset of ePOD ID 5500 ePOD ids are offseted for some reason in the PRCMU driver. Adjust the ids to index the local arrays to avoid memory corruption. Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> ux500: pm: support PRCMU status check on 5500 This also removes unused 8500v1 code. Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> arm: ux500: prcmu_ac_wake_req workaround This patch adds a check in prcmu_ac_wake_req that the modem is awake (in terms of the value in the PRCM_MOD_AWAKE_STATUS register) after the AC_WAKE_ACK has been received from the PRCMU FW. If the check fails, a retry is made. This seems to be necessary, since the modem can generate an AC_WAKE_ACK, and then still go to sleep. Signed-off-by: Mattias Nilsson <mattias.i.nilsson@stericsson.com> U5500: Add support for PRCMU Mailbox0 Add PRCMU mailbox 0 support for irq wakeup enable and disable Signed-off-by: Vijaya Kumar K <vijay.kilari@stericsson.com> U5500: Add support for power state transition PRCMU driver is updated to provide API for system power state transition Signed-off-by: Vijaya Kumar K <vijay.kilari@stericsson.com> ARM: ux500: prcmu: Add A9 watchdog interface Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> U5500 : ab5500 core interrupt hander update AB5500 interrupts will be now handled by PRCMU and then routed to AB5500 core driver.AB5500 irq handler will no more read the latch registers to find the interrupt reason.Instead PRCMU will read the latch registers and provide the values to core driver. Signed-off-by: Bibek Basu <bibek.basu@stericsson.com> ARM: ux500: prcmu-dbg: Tiny code clean-up Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> u5500: add mailbox1 and related function support Add cpufreq-db5500.c file for db5500 CPUfreq support. PRCMU mailbox1 and related functions' support is added. List of functions implemented: - prcmu_get/set_arm_opp - read_mailbox_1 Signed-off-by: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com> Fix for PRCMU u5500: PRCMU IRQ should be NO_SUSPEND As on 8500. Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> ARM: u5500: PRCMU reset API Added API for rebooting the board and for getting the last reboot code. Signed-off-by: Pawel Szyszuk <pawel.szyszuk@stericsson.com> Conflicts: arch/arm/mach-ux500/board-u5500-regulators.c arch/arm/mach-ux500/board-u5500.c arch/arm/mach-ux500/clock-db5500.c arch/arm/mach-ux500/cpu.c arch/arm/mach-ux500/devices-db5500.c arch/arm/mach-ux500/include/mach/prcmu.h arch/arm/mach-ux500/pm/Kconfig arch/arm/mach-ux500/pm/pm.c arch/arm/mach-ux500/pm/runtime.c arch/arm/mach-ux500/pm/suspend.c arch/arm/mach-ux500/prcmu-debug.c drivers/cpufreq/db8500-cpufreq.c drivers/mfd/ab5500-core.c drivers/mfd/db5500-prcmu.c drivers/mfd/db8500-prcmu.c drivers/regulator/db5500-prcmu.c drivers/regulator/dbx500-prcmu.c include/linux/mfd/db5500-prcmu.h include/linux/mfd/db8500-prcmu.h include/linux/regulator/db5500-prcmu.h
2012-05-22ux500: cryp: Use relaxed versions of writel/readlJoakim Bech
- Use readl_relaxed instead of readl. - Use writel_relaxed instead of writel. - Use writesl where a stream of data is written to the crypto hardware. - Use readsl where a stream of data is read from the crypto hardware. The above changes will increase performance when doing cryptographic operations. We noticed about 30%-50% better throughput when running the cryptographic test module tcrypt. ST-Ericsson ID: 343394 ST-Ericsson Linux next: Not tested, ER 320876 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I32d9229f93a8b86257d5a9ab9729cfc4337caa52 Signed-off-by: Joakim Bech <joakim.xx.bech@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/24275 Reviewed-by: QATEST Reviewed-by: Berne HEBARK <berne.hebark@stericsson.com> Reviewed-by: Linus WALLEIJ <linus.walleij@stericsson.com>
2012-05-22ux500: cryp: Remove register accessJoakim Bech
Remove unnecessary call to function cryp_configure_for_dma when running in CPU mode only (we will gain performance by not calling this function, since it read and write to registers in the crypto hardware). ST-Ericsson ID: 343001 ST-Ericsson Linux next: Not tested, ER 320876 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Ie5e99d2f96e6c9218ec767a76eb65a6683ad17dd Signed-off-by: Joakim Bech <joakim.xx.bech@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/24150 Reviewed-by: QATEST Reviewed-by: QATOOLS Reviewed-by: Berne HEBARK <berne.hebark@stericsson.com>
2012-05-22cryp: Session handling for software contextJoakim Bech
- Add a session id to the software crypto context in ux500 crypto driver. - Add a static global session id which is a counter that increases when a new job is started (it is ok that this variable loop back to zero when it reach the maximum value). - These session id's will be used to decide if the hardware registers needs be restored or not for continous jobs. As a result we gain performance when we don't need to restore hardware registers. ST-Ericsson ID: 342659 ST-Ericsson Linux next: Not tested, ER 320876 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I1a1f508e9969e438204d1b4a803f1d637c1e0d60 Signed-off-by: Joakim Bech <joakim.xx.bech@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/24019 Reviewed-by: QATOOLS Reviewed-by: QATEST Reviewed-by: Berne HEBARK <berne.hebark@stericsson.com>
2012-05-22cryp: CPU mode register read/write optimizationsJoakim Bech
- Minimize the number of read/write to the cryp hardware. - Write direct to hardware instead of going through functions that aren't inlined to get rid of function prologues/epilogues. - Remove NULL checks where performance is needed and the check itself is unnecessary since it is catched earlier in the callstack. - Remove unused defines/includes that are not used any longer due to above optimizations. ST-Ericsson ID: 341921 ST-Ericsson Linux next: Not tested, ER 320876 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I9efff1714f851672f8cb04e0c946a753a4b3f4b8 Signed-off-by: Joakim Bech <joakim.xx.bech@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/23719 Reviewed-by: Berne HEBARK <berne.hebark@stericsson.com> Reviewed-by: QATEST Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
2012-05-22crypto: ux500: hash: converted to ahash.Philippe Langlais
- Removed cryp1 and hash1 from u8500_v2_prcc_clocks, added comment that they already are included in u8500_v1_v2_prcc_clocks. - Re-activated hash1 accelerator in u8500__defconfig. - Updated clock-db8500.c with correct clk for hash1. - Added -O0 in hash Makefile, to remove optimization in debug mode. - Converted to ahash (from shash). - Updated infrastructure (klist functionality). - Dependencies to hcl_defs removed. - Changed power_state_mutex to spinlock and also use the atomic regulator interfaces, which removes the kernel printout BUG: sleeping function... - Removed the clear_bit function call and instead use the HASH_CLEAR_BITS macro. - Re-arranged the code to collect the external functions in the bottom of the file. - Removed page_to_phys/phys_to_virt calls in hash_hw_update, data directly accessed in walk.data. - Removed unused defines. ST-Ericsson ID: 319847, 280690 ST-Ericsson Linux next: Not tested, ER 320876 ST-Ericsson FOSS-OUT ID: NA Change-Id: I732b7320cd8302d1dc86e4acb1954880e175773a Signed-off-by: Berne Hebark <berne.hebark@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/23294 Reviewed-by: Joakim BECH <joakim.xx.bech@stericsson.com>
2012-05-22cryp: Updates according to corrected design specPhilippe Langlais
- Change names of context registers so they corresponds to the name in the DS. - Follow the design specification strictly and with the additional missing steps that we have got from IP developers. - Remove unused functions from u8500. - Call atomic version of power enable/disable functions to get rid of sleeping while atomic BUG prints. - Replace mutex with spinlock in the crypto context to get rid of sleeping while atomic BUG prints. - Replace completion in interrupt mode with polling for the remaining data length of data to get rid of sleeping in invalid context BUG print. - Correct optimization bug which occured when building without debug information (the compiler optimized it incorrectly). - Update of irq, fixed interrupt mask handling. - Correct bug regarding keysize when doing context save. - BUG! DES hangs when encrypting data not modulo 16 using DMA. The reason for this is that the CRYP IP only supports burst size of 4 words. Due to this reason DMA for DES have been replaced by CPU mode instead. ST-Ericsson ID: 283399, 340779 ST-Ericsson Linux next: Not tested, ER 320876 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I23dbc123dd2fb7e47f5713025ed71423efbb5b18 Signed-off-by: Joakim Bech <joakim.xx.bech@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/23297 Reviewed-by: QATEST Reviewed-by: Berne HEBARK <berne.hebark@stericsson.com>
2012-05-22crypto: ux500: Add crypto and hash accelerationPhilippe Langlais
Adds device driver support for crypto and hash acceleration for the u8500 chip. ST-Ericsson Linux next: Builds and boot, but fails on cryp probe ER320876. ST-Ericsson ID: AP 270734 crypto: ux500: cryp: Add power-awareness Adds power awareness to the cryp part of the device driver for accelerating crypto in u8500. ST-Ericsson ID: ER277473 crypto: ux500: cryp: Fix of NULL pointer dereference in power-save Fix of NULL pointer dereference in cryp_disable_power. ST-Ericsson ID: ER277473 crypto: ux500: cryp/hash: Power-awareness - Hash: Adds power awareness to the hash part of the device driver for accelerating hashing in u8500. - Cryp: - Removed erroneous call to cryp_enable_power() in u8500_cryp_resume(). - Added spinlocks to protect usage of current_ctx. - Corrected erroneous gotos in hw_cryp_noxts(). - Added down_interruptible()/up() in suspend/resume, to make sure the device is not allocated during suspend. ST-Ericsson ID: ER280692 crypto: ux500: AES ECB converted to ablk_cipher and supports DMA. - DMA support for AES_ECB added. - ablk_cipher support added to the driver. In this commit AES_ECB is using this asynchronous API. This is a must since you will get miscellaneous sleep warning- error-messages from the crypto testmgr which runs sanity tests when loading a module in synchrounous mode using DMA. Therefore DMA operations should use the ablk_cipher (asynchronous) API, - Added scatterlist walk function for ablk_cipher for the non DMA version. - Added power awarness to DMA related code in this cryp driver. - Refactored code in hw_cryp_noxts with functions calls when getting the device and when setting up the context. - Renamed registers so they corresponds to the names in the design spec. ST-Ericsson ID: AP277474 ST-Ericsson Linux next: ER320876, v-ape regulator missing. crypto: ux500: cryp: DES ECB converted to ablk_cipher. ablk_cipher support added to the driver. In this commit DES_ECB and DES3_ECB is using this asynchronous API. This removes the log printout: BUG: sleeping function called from invalid context at kernel/mutex.c:94. ST-Ericsson ID: ER322583 crypto: ux500: cryp: More algorithms converted to use ablk_cipher. In this commit AES_CBC, AES_CTR, DES_CBC and DES3_CBC is using the asynchronous API. These algorithms also support DMA, except for givciphers. ST-Ericsson ID: AP277474 crypto: ux500: cryp: Power save redesign, to improve performance - Enable and disable power moved to be called only at beginning and end of algorithm calls. - Removed compiler warnings (uninitialized variables) visible using Linux-next compiler. Note! Those warnings not visible using default compiler in the android forest. ST-Ericsson ID: AP277474 crypto: Fixes after 2.6.35 merge Signed-off-by: Berne Hebark <berne.hebark@stericsson.com> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org> Conflicts: arch/arm/mach-ux500/board-mop500.c
2012-05-22HCL driver implementation (hash).Robert Marklund
Major refactoring, checkpatch fixes, documentation of functions, structures, enums. Also moved a lot of code from hash_alg.c to hash_core.c. Fixed problem with incorrect digest when doing HMAC calculations. The problem was that the function that did message pad seems to handle padding for keys incorrectly. Now we do not say how many valid bits there are in the last word when it comes to the key and then the hardware seems to handle the key correctly. Fixed contextsaving so hmac(sha1) passes. There was an if statement checking the DINF bit which was never set. I have removed this and then contextsaving for hmac(sha1) is working. Code up to date with the new arch/arm/mach-ux500 folder structure. Signed-off-by: Joakim Bech <joakim.xx.bech@stericsson.com> ux500: switch to DMAENGINE-based DMA driver Switch all DMA clients to the DMA Engine API, and add the platform hooks for the DMA Engine-based DMA40 driver. Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> Signed-off-by: Robert Marklund <robert.marklund@stericsson.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
2012-05-15crypto: mv_cesa requires on CRYPTO_HASH to buildAlexander Clouter
Without CRYPTO_HASH being selected, mv_cesa has a lot of hooks into undefined exports. ---- MODPOST 81 modules Kernel: arch/arm/boot/Image is ready AS arch/arm/boot/compressed/head.o GZIP arch/arm/boot/compressed/piggy.gzip CC arch/arm/boot/compressed/misc.o CC arch/arm/boot/compressed/decompress.o ERROR: "crypto_ahash_type" [drivers/crypto/mv_cesa.ko] undefined! ERROR: "crypto_shash_final" [drivers/crypto/mv_cesa.ko] undefined! ERROR: "crypto_register_ahash" [drivers/crypto/mv_cesa.ko] undefined! ERROR: "crypto_unregister_ahash" [drivers/crypto/mv_cesa.ko] undefined! ERROR: "crypto_shash_update" [drivers/crypto/mv_cesa.ko] undefined! ERROR: "crypto_shash_digest" [drivers/crypto/mv_cesa.ko] undefined! ERROR: "crypto_shash_setkey" [drivers/crypto/mv_cesa.ko] undefined! ERROR: "crypto_alloc_shash" [drivers/crypto/mv_cesa.ko] undefined! make[1]: *** [__modpost] Error 1 make: *** [modules] Error 2 make: *** Waiting for unfinished jobs.... ---- Signed-off-by: Alexander Clouter <alex@digriz.org.uk> Signed-off-by: Jason Cooper <jason@lakedaemon.net> Cc: stable@vger.kernel.org
2012-04-09crypto: talitos - properly lock access to global talitos registersHoria Geanta
Access to global talitos registers must be protected for the case when affinities are configured such that primary and secondary talitos irqs run on different cpus. Signed-off-by: Horia Geanta <horia.geanta@freescale.com> Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2012-04-05crypto: ixp4xx - include fixMichał Wróbel
Before commit de47725421ad5627a5c905f4e40bb844ebc06d29 ("include: replace linux/module.h with "struct module" wherever possible") <linux/module.h> was implicitly included through <linux/platform_device.h> -> <linux/device.h>. Signed-off-by: Michał Wróbel <michal.wrobel@flytronic.pl> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2012-03-22Merge branch 'for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 patches from Martin Schwidefsky: "The biggest patch is the rework of the smp code, something I wanted to do for some time. There are some patches for our various dump methods and one new thing: z/VM LGR detection. LGR stands for linux-guest- relocation and is the guest migration feature of z/VM. For debugging purposes we keep a log of the systems where a specific guest has lived." Fix up trivial conflict in arch/s390/kernel/smp.c due to the scheduler cleanup having removed some code next to removed s390 code. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: [S390] kernel: Pass correct stack for smp_call_ipl_cpu() [S390] Ensure that vmcore_info pointer is never accessed directly [S390] dasd: prevent validate server for offline devices [S390] Remove monolithic build option for zcrypt driver. [S390] stack dump: fix indentation in output [S390] kernel: Add OS info memory interface [S390] Use block_sigmask() [S390] kernel: Add z/VM LGR detection [S390] irq: external interrupt code passing [S390] irq: set __ARCH_IRQ_EXIT_IRQS_DISABLED [S390] zfcpdump: Implement async sdias event processing [S390] Use copy_to_absolute_zero() instead of "stura/sturg" [S390] rework idle code [S390] rework smp code [S390] rename lowcore field [S390] Fix gcc 4.6.0 compile warning
2012-03-21Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6Linus Torvalds
Pull crypto update from Herbert Xu: "* sha512 bug fixes (already in your tree). * SHA224/SHA384 AEAD support in caam. * X86-64 optimised version of Camellia. * Tegra AES support. * Bulk algorithm registration interface to make driver registration easier. * padata race fixes. * Misc fixes." * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (31 commits) padata: Fix race on sequence number wrap padata: Fix race in the serialization path crypto: camellia - add assembler implementation for x86_64 crypto: camellia - rename camellia.c to camellia_generic.c crypto: camellia - fix checkpatch warnings crypto: camellia - rename camellia module to camellia_generic crypto: tcrypt - add more camellia tests crypto: testmgr - add more camellia test vectors crypto: camellia - simplify key setup and CAMELLIA_ROUNDSM macro crypto: twofish-x86_64/i586 - set alignmask to zero crypto: blowfish-x86_64 - set alignmask to zero crypto: serpent-sse2 - combine ablk_*_init functions crypto: blowfish-x86_64 - use crypto_[un]register_algs crypto: twofish-x86_64-3way - use crypto_[un]register_algs crypto: serpent-sse2 - use crypto_[un]register_algs crypto: serpent-sse2 - remove dead code from serpent_sse2_glue.c::serpent_sse2_init() crypto: twofish-x86 - Remove dead code from twofish_glue_3way.c::init() crypto: In crypto_add_alg(), 'exact' wants to be initialized to 0 crypto: caam - fix gcc 4.6 warning crypto: Add bulk algorithm registration interface ...
2012-03-21Merge branch 'kmap_atomic' of git://github.com/congwang/linuxLinus Torvalds
Pull kmap_atomic cleanup from Cong Wang. It's been in -next for a long time, and it gets rid of the (no longer used) second argument to k[un]map_atomic(). Fix up a few trivial conflicts in various drivers, and do an "evil merge" to catch some new uses that have come in since Cong's tree. * 'kmap_atomic' of git://github.com/congwang/linux: (59 commits) feature-removal-schedule.txt: schedule the deprecated form of kmap_atomic() for removal highmem: kill all __kmap_atomic() [swarren@nvidia.com: highmem: Fix ARM build break due to __kmap_atomic rename] drbd: remove the second argument of k[un]map_atomic() zcache: remove the second argument of k[un]map_atomic() gma500: remove the second argument of k[un]map_atomic() dm: remove the second argument of k[un]map_atomic() tomoyo: remove the second argument of k[un]map_atomic() sunrpc: remove the second argument of k[un]map_atomic() rds: remove the second argument of k[un]map_atomic() net: remove the second argument of k[un]map_atomic() mm: remove the second argument of k[un]map_atomic() lib: remove the second argument of k[un]map_atomic() power: remove the second argument of k[un]map_atomic() kdb: remove the second argument of k[un]map_atomic() udf: remove the second argument of k[un]map_atomic() ubifs: remove the second argument of k[un]map_atomic() squashfs: remove the second argument of k[un]map_atomic() reiserfs: remove the second argument of k[un]map_atomic() ocfs2: remove the second argument of k[un]map_atomic() ntfs: remove the second argument of k[un]map_atomic() ...
2012-03-20crypto: remove the second argument of k[un]map_atomic()Cong Wang
Signed-off-by: Cong Wang <amwang@redhat.com>
2012-03-11[S390] Remove monolithic build option for zcrypt driver.Holger Dengler
Remove the option to build a single module z90crypt that contains ap bus, request router and card drivers. Signed-off-by: Holger Dengler <hd@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2012-03-09Merge 3.3-rc6 into driver-core-nextGreg Kroah-Hartman
This was done to resolve a conflict in the drivers/base/cpu.c file. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-03-03Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6Linus Torvalds
Pull from Herbert Xu: "This push fixes a bug in mv_cesa that causes all hash operations that supply data on a final operation to fail." * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: mv_cesa - fix final callback not ignoring input data
2012-02-28crypto: mv_cesa - fix final callback not ignoring input dataPhil Sutter
Broken by commit 6ef84509f3d439ed2d43ea40080643efec37f54f for users passing a request with non-zero 'nbytes' field, like e.g. testmgr. Cc: <stable@kernel.org> # 3.0+ Signed-off-by: Phil Sutter <phil.sutter@viprinet.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2012-01-26crypto: Add support for x86 cpuid auto loading for x86 crypto driversAndi Kleen
Add support for auto-loading of crypto drivers based on cpuid features. This enables auto-loading of the VIA and Intel specific drivers for AES, hashing and CRCs. Requires the earlier infrastructure patch to add x86 modinfo. I kept it all in a single patch for now. I dropped the printks when the driver cpuid doesn't match (imho drivers never should print anything in such a case) One drawback is that udev doesn't know if the drivers are used or not, so they will be unconditionally loaded at boot up. That's better than not loading them at all, like it often happens. Cc: Dave Jones <davej@redhat.com> Cc: Kay Sievers <kay.sievers@vrfy.org> Cc: Jen Axboe <axboe@kernel.dk> Cc: Herbert Xu <herbert@gondor.apana.org.au> Cc: Huang Ying <ying.huang@intel.com> Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: Thomas Renninger <trenn@suse.de> Acked-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-26crypto: caam - fix gcc 4.6 warningKim Phillips
drivers/crypto/caam/ctrl.c: In function 'caam_probe': drivers/crypto/caam/ctrl.c:49:6: warning: unused variable 'd' [-Wunused-variable] Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2012-01-13crypto: caam - be less noisy on startupKim Phillips
sha224 and 384 support extends caam noise to 21 lines. Do the same as commit 5b859b6 "crypto: talitos - be less noisy on startup", but for caam, and display: caam ffe300000.crypto: fsl,sec-v4.0 algorithms registered in /proc/crypto Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2012-01-13crypto: caam - add sha224 and sha384 variants to existing AEAD algorithmsHemant Agrawal
Signed-off-by: Hemant Agrawal <hemant@freescale.com> Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2012-01-13crypto: ixp4xx - convert GFP_KERNEL to GFP_ATOMICJulia Lawall
The function is called with locks held and thus should not use GFP_KERNEL. The semantic patch that makes this report is available in scripts/coccinelle/locks/call_kern.cocci. More information about semantic patching is available at http://coccinelle.lip6.fr/ Signed-off-by: Julia Lawall <julia.lawall@lip6.fr> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2012-01-13crypto: Add CRYPTO_ALG_KERN_DRIVER_ONLY flagNikos Mavrogiannopoulos
The added CRYPTO_ALG_KERN_DRIVER_ONLY indicates whether a cipher is only available via a kernel driver. If the cipher implementation might be available by using an instruction set or by porting the kernel code, then it must not be set. Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2012-01-13crypto: driver for Tegra AES hardwareVarun Wadekar
driver supports ecb/cbc/ofb/ansi_x9.31rng modes, 128, 192 and 256-bit key sizes Signed-off-by: Varun Wadekar <vwadekar@nvidia.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2012-01-10Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (54 commits) crypto: gf128mul - remove leftover "(EXPERIMENTAL)" in Kconfig crypto: serpent-sse2 - remove unneeded LRW/XTS #ifdefs crypto: serpent-sse2 - select LRW and XTS crypto: twofish-x86_64-3way - remove unneeded LRW/XTS #ifdefs crypto: twofish-x86_64-3way - select LRW and XTS crypto: xts - remove dependency on EXPERIMENTAL crypto: lrw - remove dependency on EXPERIMENTAL crypto: picoxcell - fix boolean and / or confusion crypto: caam - remove DECO access initialization code crypto: caam - fix polarity of "propagate error" logic crypto: caam - more desc.h cleanups crypto: caam - desc.h - convert spaces to tabs crypto: talitos - convert talitos_error to struct device crypto: talitos - remove NO_IRQ references crypto: talitos - fix bad kfree crypto: convert drivers/crypto/* to use module_platform_driver() char: hw_random: convert drivers/char/hw_random/* to use module_platform_driver() crypto: serpent-sse2 - should select CRYPTO_CRYPTD crypto: serpent - rename serpent.c to serpent_generic.c crypto: serpent - cleanup checkpatch errors and warnings ...
2011-12-20crypto: picoxcell - fix boolean and / or confusionJamie Iles
The AES engine only supports 128 and 256 bit keys so we should correctly test for that. Cc: Herbert Xu <herbert@gondor.apana.org.au> Reported-by: Joe Perches <joe@perches.com> Signed-off-by: Jamie Iles <jamie@jamieiles.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2011-12-20crypto: caam - remove DECO access initialization codeKim Phillips
Access to the SEC4 DECOs (DEscriptor COntrollers) (for debug purposes) isn't supported or used, and its register access initialization code erroneously makes illegal i/o accesses that show up as errors when run under simulation. Remove it until proper support (via DECORR) is added. Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2011-12-20crypto: caam - fix polarity of "propagate error" logicKim Phillips
the polarity of the definition for error propagation was reverse in the initial desc.h. Fix desc.h and its users. Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2011-12-20crypto: caam - more desc.h cleanupsKim Phillips
manual removal of double-spaces - no non-whitespace changes. Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2011-12-20crypto: caam - desc.h - convert spaces to tabsKim Phillips
this is the result of running unexpand -a on desc.h. Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2011-12-20crypto: talitos - convert talitos_error to struct deviceKim Phillips
SEC2/3 h/w doesn't have a dedicated interrupt for errors, and the only callsite for talitos_error has already done the type conversion, so simplify talitos_error to take a pointer to a struct device. Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2011-12-20crypto: talitos - remove NO_IRQ referencesKim Phillips
As prescribed by Linus: https://lkml.org/lkml/2011/12/2/290 Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2011-12-20crypto: talitos - fix bad kfreeKim Phillips
Fix a kfree to an invalid address which causes an oops when running on SEC v2.0 h/w (introduced in commit 702331b "crypto: talitos - add hmac algorithms"). Signed-off-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2011-11-30crypto: convert drivers/crypto/* to use module_platform_driver()Axel Lin
This patch converts the drivers in drivers/crypto/* to use the module_platform_driver() macro which makes the code smaller and a bit simpler. Cc: James Hsiao <jhsiao@amcc.com> Cc: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Cc: Kim Phillips <kim.phillips@freescale.com> Cc: "David S. Miller" <davem@davemloft.net> Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Vladimir Zapolskiy <vzapolskiy@gmail.com> Acked-by: Jamie Iles <jamie@jamieiles.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2011-11-25Merge git://github.com/herbertx/cryptoLinus Torvalds
* git://github.com/herbertx/crypto: crypto: mv_cesa - fix hashing of chunks > 1920 bytes
2011-11-21crypto: mv_cesa - fix hashing of chunks > 1920 bytesPhil Sutter
This was broken by commit 7759995c75ae0cbd4c861582908449f6b6208e7a (yes, myself). The basic problem here is since the digest state is only saved after the last chunk, the state array is only valid when handling the first chunk of the next buffer. Broken since linux-3.0. Signed-off-by: Phil Sutter <phil.sutter@viprinet.com> Cc: <stable@kernel.org> # 3.1.x Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>