From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
To: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Cc: tpmdd-devel@lists.sourceforge.net,
Peter Huewe <peterhuewe@gmx.de>,
Marcel Selhorst <tpmdd@selhorst.net>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1 11/12] tpm: Driver for TPM 2.0 CRB Interface
Date: Wed, 24 Sep 2014 11:05:51 -0600 [thread overview]
Message-ID: <20140924170551.GF8898@obsidianresearch.com> (raw)
In-Reply-To: <1411549562-24242-12-git-send-email-jarkko.sakkinen@linux.intel.com>
On Wed, Sep 24, 2014 at 12:06:01PM +0300, Jarkko Sakkinen wrote:
> + offset = cca->rsp_pa - priv->cca_pa;
> + resp = (u8 *) ((unsigned long) cca + offset);
> + memcpy(buf, resp, 6);
> + expected = be32_to_cpu(*(__be32 *) (buf + 2));
be32_to_cpup?
> +static void crb_release(void *data)
> +{
> + struct tpm_chip *chip = (struct tpm_chip *) data;
> + tpm_remove_hardware(chip->dev);
> +}
Please use a proper remove function on the device driver, not a devm
function like this. 'tpm_remove_hardware' is the wrong name for a new
API, it must be 'tpm_chip_unregister' (ie the undo of 'tpm_chip_register')
> +static int crb_acpi_add(struct acpi_device *device)
> +{
> + struct tpm_chip *chip;
> + struct acpi_tpm2 *buf;
> + struct crb_priv *priv;
> + struct device *dev = &device->dev;
> + acpi_status status;
> + u32 sm;
> + int rc;
> +
> + chip = tpm_chip_alloc(dev, &tpm_crb);
> + if (!chip)
> + return -ENODEV;
Lets use ERRPTR here
> + chip->tpm2 = true;
> +
> + rc = tpm_chip_register(chip);
This is in the wrong place, it needs to be the last call in the probe
function - the driver must be fully operational when register is
called, that is one of the bugs the new interface must be fixing.
> + rc = tpm_do_selftest(chip);
> + if (rc) {
> + rc = -ENODEV;
> + goto out_err;
> + }
The common TPM command startup sequence should be in
tpm_chip_register(), so move this into there.
> + rc = devm_add_action(dev, crb_release, chip);
> + if (rc)
> + goto out_err;
> +
> + return 0;
> +out_err:
> + tpm_remove_hardware(chip->dev);
> + return rc;
> +}
> +
> +static struct acpi_device_id crb_device_ids[] = {
const? Not sure
Jason
next prev parent reply other threads:[~2014-09-24 17:06 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-24 9:05 [PATCH v1 00/12] tpm: TPM2 support Jarkko Sakkinen
2014-09-24 9:05 ` [PATCH v1 01/12] tpm: prepare TPM driver for adding " Jarkko Sakkinen
2014-09-24 16:49 ` Jason Gunthorpe
2014-09-24 9:05 ` [PATCH v1 02/12] tpm: TPM2 support for tpm_calc_ordinal_durations() Jarkko Sakkinen
2014-09-24 9:05 ` [PATCH v1 03/12] tpm: TPM2 support for tpm_pcr_read() Jarkko Sakkinen
2014-09-24 16:53 ` Jason Gunthorpe
2014-09-24 19:43 ` Jarkko Sakkinen
2014-09-24 20:14 ` Peter Hüwe
2014-09-24 20:16 ` Jason Gunthorpe
2014-09-24 9:05 ` [PATCH v1 04/12] tpm: TPM2 support for tpm_do_selftest() Jarkko Sakkinen
2014-09-24 9:05 ` [PATCH v1 05/12] tpm: added tpm2_get_tpm_pt() Jarkko Sakkinen
2014-09-24 9:05 ` [PATCH v1 06/12] tpm: TPM2 support for tpm_pcr_extend() Jarkko Sakkinen
2014-09-24 9:05 ` [PATCH v1 07/12] tpm: TPM2 support for tpm_get_random() Jarkko Sakkinen
2014-09-24 9:05 ` [PATCH v1 08/12] tpm: TPM2 support for tpm_startup() Jarkko Sakkinen
2014-09-24 9:05 ` [PATCH v1 09/12] tpm: TPM2 support for tpm_gen_interrupt() Jarkko Sakkinen
2014-09-24 9:06 ` [PATCH v1 10/12] tpm: TPM 2.0 FIFO Interface Jarkko Sakkinen
2014-09-24 16:59 ` Jason Gunthorpe
2014-09-24 19:30 ` Jarkko Sakkinen
2014-09-24 9:06 ` [PATCH v1 11/12] tpm: Driver for TPM 2.0 CRB Interface Jarkko Sakkinen
2014-09-24 17:05 ` Jason Gunthorpe [this message]
2014-09-24 19:28 ` Jarkko Sakkinen
2014-09-25 13:56 ` Jarkko Sakkinen
2014-09-24 9:06 ` [PATCH v1 12/12] tpm: TPM2 sysfs attributes Jarkko Sakkinen
2014-09-24 17:13 ` Jason Gunthorpe
2014-09-24 17:34 ` [tpmdd-devel] " Stefan Berger
2014-09-24 17:59 ` Jason Gunthorpe
2014-09-24 18:50 ` Jarkko Sakkinen
2014-09-24 20:39 ` Peter Hüwe
2014-09-24 20:50 ` Jason Gunthorpe
2014-09-24 18:36 ` Peter Hüwe
2014-09-24 19:02 ` Jarkko Sakkinen
2014-09-24 20:19 ` Jason Gunthorpe
2014-09-24 20:35 ` Peter Hüwe
2014-09-24 20:46 ` Jason Gunthorpe
2014-09-26 17:19 ` Jarkko Sakkinen
2014-09-30 20:07 ` [tpmdd-devel] " Jarkko Sakkinen
2014-09-30 20:12 ` Jason Gunthorpe
2014-10-02 12:30 ` Jarkko Sakkinen
2014-09-24 17:28 ` [PATCH v1 00/12] tpm: TPM2 support Jarkko Sakkinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140924170551.GF8898@obsidianresearch.com \
--to=jgunthorpe@obsidianresearch.com \
--cc=jarkko.sakkinen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peterhuewe@gmx.de \
--cc=tpmdd-devel@lists.sourceforge.net \
--cc=tpmdd@selhorst.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.