From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752010AbcFZGO4 (ORCPT ); Sun, 26 Jun 2016 02:14:56 -0400 Received: from mga04.intel.com ([192.55.52.120]:65099 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751871AbcFZGOz (ORCPT ); Sun, 26 Jun 2016 02:14:55 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,529,1459839600"; d="scan'208";a="128632530" Date: Sun, 26 Jun 2016 09:14:49 +0300 From: Jarkko Sakkinen To: James Morris Cc: linux-security-module@vger.kernel.org, linux-kernel@vger.kernel.org, Jason Gunthorpe , Christophe Ricard , Stefan Berger Subject: [GIT PULL] tpmdd updates for Linux 4.8 Message-ID: <20160626061449.GA3751@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org James, This patch set contains two new major features: * Multi-instance TPM proxy driver * Rework of sharing common TIS code with different physical interfaces. In addition, there are a vast number of small fixes and cleanups. /Jarkko Multi-instance TPM proxy driver =============================== Using an ioctl on the provided /dev/vtpmx, a client-side vTPM device and a server side file descriptor is created. The file descriptor must be passed to a TPM emulator. The device driver will initialize the emulated TPM using TPM 1.2 or TPM 2 startup commands and it will read the command durations from the device in case of a TPM 1.2. The choice of emulated TPM device (1.2 or 2) must be provided with a flag in the ioctl. Rework of sharing common TIS code with different physical interfaces ==================================================================== There is a new common tpm_tis_core module that contains the core TIS interface and a callback API for sharing the behavior between different physical layers like LPC, SPI and I2C. For the 4.8 release adaptations for standard TCG MMIO and SPI have been provided. The following changes since commit 26703c636c1f3272b39bd0f6d04d2e970984f1b6: um/ptrace: run seccomp after ptrace (2016-06-14 10:54:47 -0700) are available in the git repository at: git://git.infradead.org/users/jjs/linux-tpmdd.git tags/tpmdd-next-20160626 for you to fetch changes up to f786b752098216fedb73ba2905c8cce12358534a: tpm_crb: fix address space of the return pointer in crb_map_res() (2016-06-25 17:28:57 +0300) ---------------------------------------------------------------- tpmdd updates for Linux 4.8 ---------------------------------------------------------------- Arnd Bergmann (2): tpm: fix tpm_bios_log_setup stub prototype tpm: select ANON_INODES for proxy driver Christophe Ricard (40): tpm/st33zp24/spi: Remove nbr_dummy_bytes variable usage tpm/st33zp24/spi: Use functions name with st33zp24_spi_ prefix tpm/st33zp24/spi: Remove useless use of memcpy. tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy structure tpm/st33zp24: Remove unneeded CONFIG_OF switches tpm/st33zp24: Auto-select core module tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency tpm/st33zp24: Extend Copyright headers tpm/st33zp24: Add support for acpi probing for i2c device. tpm: st33zp24: Add support for acpi probing for spi device. tpm/st33zp24/i2c: Change xxx_request_resources header tpm/st33zp24/spi: Change xxx_request_resources header tpm/st33zp24/spi: Remove nbr_dummy_bytes variable usage tpm/st33zp24/spi: Use functions name with st33zp24_spi_ prefix tpm/st33zp24/spi: Remove useless use of memcpy. tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy structure tpm/st33zp24: Remove unneeded CONFIG_OF switches tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency tpm/st33zp24: Extend Copyright headers tpm/st33zp24: Add support for acpi probing for i2c device. tpm: st33zp24: Add support for acpi probing for spi device. tpm/st33zp24/i2c: Change xxx_request_resources header tpm/st33zp24/spi: Change xxx_request_resources header tpm/st33zp24/i2c: Drop two useless checks in ACPI probe path tpm/st33zp24/spi: Drop two useless checks in ACPI probe path tpm/st33zp24: Remove unneeded tpm_reg in get_burstcount tpm: drop list from struct tpm_vendor_specific tpm: drop 'iobase' from struct tpm_vendor_specific tpm: drop 'irq' from struct tpm_vendor_specific tpm: drop 'read_queue' from struct tpm_vendor_specific tpm: drop 'locality' from struct tpm_vendor_specific tpm: Move tpm_vendor_specific data related with PTP specification to tpm_chip tpm: Remove useless priv field in struct tpm_vendor_specific tpm: Add include guards in tpm.h tpm: tpm_tis: Share common data between phys tpm_tis: Introduce intermediate layer for TPM access devicetree: Add infineon to vendor-prefix.txt devicetree: Add Trusted Computing Group to vendor-prefix.txt tpm/tpm_tis: Split tpm_tis driver into a core and TCG TIS compliant phy tpm/tpm_tis_spi: Add support for spi phy Jarkko Sakkinen (12): tpm: cleanup tpm_tis_remove() tpm: fix crash in tpm_tis deinitialization tpm_crb: drop struct resource res from struct crb_priv tpm_crb: fix mapping of the buffers tpm: check for TPM_CHIP_FLAG_TPM2 before calling tpm2_shutdown() tpm: drop int_queue from tpm_vendor_specific tpm: drop tpm_atmel specific fields from tpm_vendor_specific tpm: drop manufacturer_id from struct tpm_vendor_specific tpm: drop 'base' from struct tpm_vendor_specific tpm: drop the field 'time_expired' from struct tpm_chip tpm_vtpm_proxy: fix address space of a user pointer in vtpmx_fops_ioctl() tpm_crb: fix address space of the return pointer in crb_map_res() Jason Gunthorpe (6): tpm: Get rid of chip->pdev tpm: Get rid of devname tpm: Provide strong locking for device removal tpm: Split out the devm stuff from tpmm_chip_alloc tpm: Remove all uses of drvdata from the TPM Core tpm: Fix IRQ unwind ordering in TIS Stefan Berger (6): tpm: Get rid of module locking tpm: Replace device number bitmap with IDR tpm: Introduce TPM_CHIP_FLAG_VIRTUAL tpm: Proxy driver for supporting multiple emulated TPMs tpm: Add documentation for the tpm_vtpm_proxy device driver tpm: Fix suspend regression Stephen Rothwell (1): tpm: fix for typo in tpm/tpm_ibmvtpm.c .../bindings/security/tpm/tpm_tis_spi.txt | 24 + .../devicetree/bindings/vendor-prefixes.txt | 2 + Documentation/ioctl/ioctl-number.txt | 1 + Documentation/tpm/tpm_vtpm_proxy.txt | 71 ++ drivers/char/tpm/Kconfig | 30 + drivers/char/tpm/Makefile | 3 + drivers/char/tpm/st33zp24/Kconfig | 11 +- drivers/char/tpm/st33zp24/i2c.c | 70 +- drivers/char/tpm/st33zp24/spi.c | 184 +++-- drivers/char/tpm/st33zp24/st33zp24.c | 125 ++- drivers/char/tpm/st33zp24/st33zp24.h | 14 +- drivers/char/tpm/tpm-chip.c | 284 +++++-- drivers/char/tpm/tpm-dev.c | 15 +- drivers/char/tpm/tpm-interface.c | 105 +-- drivers/char/tpm/tpm-sysfs.c | 78 +- drivers/char/tpm/tpm.h | 78 +- drivers/char/tpm/tpm2-cmd.c | 11 +- drivers/char/tpm/tpm_atmel.c | 63 +- drivers/char/tpm/tpm_atmel.h | 16 +- drivers/char/tpm/tpm_crb.c | 75 +- drivers/char/tpm/tpm_eventlog.c | 2 +- drivers/char/tpm/tpm_eventlog.h | 4 +- drivers/char/tpm/tpm_i2c_atmel.c | 39 +- drivers/char/tpm/tpm_i2c_infineon.c | 55 +- drivers/char/tpm/tpm_i2c_nuvoton.c | 98 +-- drivers/char/tpm/tpm_ibmvtpm.c | 38 +- drivers/char/tpm/tpm_infineon.c | 22 +- drivers/char/tpm/tpm_nsc.c | 84 +- drivers/char/tpm/tpm_tis.c | 829 ++------------------ drivers/char/tpm/tpm_tis_core.c | 862 +++++++++++++++++++++ drivers/char/tpm/tpm_tis_core.h | 156 ++++ drivers/char/tpm/tpm_tis_spi.c | 272 +++++++ drivers/char/tpm/tpm_vtpm_proxy.c | 644 +++++++++++++++ drivers/char/tpm/xen-tpmfront.c | 36 +- include/linux/platform_data/st33zp24.h | 2 +- include/uapi/linux/Kbuild | 1 + include/uapi/linux/vtpm_proxy.h | 36 + 37 files changed, 3030 insertions(+), 1410 deletions(-) create mode 100644 Documentation/devicetree/bindings/security/tpm/tpm_tis_spi.txt create mode 100644 Documentation/tpm/tpm_vtpm_proxy.txt create mode 100644 drivers/char/tpm/tpm_tis_core.c create mode 100644 drivers/char/tpm/tpm_tis_core.h create mode 100644 drivers/char/tpm/tpm_tis_spi.c create mode 100644 drivers/char/tpm/tpm_vtpm_proxy.c create mode 100644 include/uapi/linux/vtpm_proxy.h