[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/3] Add TPM 1.2 host device passthrough interfa
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH 1/3] Add TPM 1.2 host device passthrough interface |
Date: |
Thu, 26 Aug 2010 17:22:04 +0000 |
On Wed, Aug 25, 2010 at 8:46 PM, malc <address@hidden> wrote:
> On Wed, 25 Aug 2010, Blue Swirl wrote:
>
>> On Wed, Aug 25, 2010 at 4:33 PM, Andreas Niederl
>> <address@hidden> wrote:
>> > This implementation is based on the TPM 1.2 interface for virtualized TPM
>> > devices from the Xen-4.0.0 ioemu-qemu-xen fork.
>> >
>> > A separate thread is used for I/O to the host TPM device because the Linux
>> > TPM
>> > driver does not allow for non-blocking I/O.
>> >
>> > Signed-off-by: Andreas Niederl <address@hidden>
>>
>> In general, please read CODING_STYLE.
>>
>> Ideally, the host and guest devices should be decoupled so that the
>> guest visible device should still be functional without host TPM
>> support.
>>
>> > ---
>
> [..snip..]
>
>> > +static inline uint32_t tpm_get_size_from_buffer(const uint8_t *buffer)
>> > +{
>> > + uint32_t len = (buffer[4] << 8) + buffer[5];
>> > + return len;
>> > +}
>> > +
>> > +static inline uint8_t locality_from_addr(target_phys_addr_t addr)
>> > +{
>> > + return (uint8_t)((addr >> 12) & 0x7);
>> > +}
>> > +
>> > +
>> > +static void die2(int err, const char *what)
>> > +{
>> > + fprintf(stderr, "%s failed: %s\n", what, strerror(err));
>> > + abort();
>> > +}
>> > +
>> > +static void die(const char *what)
>> > +{
>> > + die2(errno, what);
>> > +}
>>
>> There's hw_error() and errx(), no need to reinvent the wheel.
>
> Since it looks as if this code was based on mine, i take issues with
> your analysis.
>
> Firstly hw_error is for hardware errors and does not print message
> corresponding to errno code
Right, the correct function should be error_report().
> and lastly there is no errx[1]
>
> [..snip..]
>
> [1] err(3):
> CONFORMING TO
> These functions are non-standard BSD extensions.
err() and errx() are already used somewhere. But these should be
converted to error_report etc., like other printf based local
functions.