[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 04/12] mini-os: use alloc_file_type() and get_file_from_fd() in tpm_tis
On Tue, Jan 11, 2022 at 3:29 PM Andrew Cooper <amc96@xxxxxxxx> wrote: > > On 11/01/2022 15:12, Juergen Gross wrote: > > diff --git a/tpm_tis.c b/tpm_tis.c > > index 477f555..abea7a1 100644 > > --- a/tpm_tis.c > > +++ b/tpm_tis.c > > @@ -1093,6 +1097,23 @@ ssize_t tpm_getcap(struct tpm_chip *chip, uint32_t > > subcap_id, cap_t *cap, > > return rc; > > } > > > > +static void shutdown_tpm_tis(struct tpm_chip* tpm){ > > Style, as you're moving it. Also in the function. > > > @@ -1360,6 +1369,35 @@ int tpm_tis_posix_fstat(int fd, struct stat* buf) > > return 0; > > } > > > > +static struct file_ops tpm_tis_ops = { > > + .name = "tpm_tis", > > + .read = tpm_tis_posix_read, > > + .write = tpm_tis_posix_write, > > + .lseek = lseek_default, > > + .close = tpm_tis_close, > > + .fstat = tpm_tis_posix_fstat, > > +}; > > + > > +int tpm_tis_open(struct tpm_chip* tpm) > > Style. > > > +{ > > + struct file *file; > > + static unsigned int ftype_tis; > > + > > + /* Silently prevent multiple opens */ > > + if(tpm->fd != -1) { > > + return tpm->fd; > > + } > > Another WTF moment. We silently swallow multiple open()s, but don't > refcout close()s ? > > This cannot be correct, or sensible, behaviour. > > Jason/Daniel - thoughts? Looks like vtpmmgr only opens a single global fd, so it has not been a problem in practice. You need some sort of synchronization to let multiple entities access the TPM. So limiting to only a single entity/single FD is a reasonable restriction. Regards, Jason
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |