qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PULL v1 0/1] Merge tpm 2023/09/12 v1
@ 2023-09-12 21:41 Stefan Berger
  2023-09-12 21:41 ` [PULL v1 1/1] tpm: fix crash when FD >= 1024 Stefan Berger
  2023-09-13  5:57 ` [PULL v1 0/1] Merge tpm 2023/09/12 v1 Philippe Mathieu-Daudé
  0 siblings, 2 replies; 5+ messages in thread
From: Stefan Berger @ 2023-09-12 21:41 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, Stefan Berger

Hello!

  This PR contains a fix for the case where the TPM file descriptor is >= 1024
and the select() call cannot be used.

Regards,
   Stefan

The following changes since commit 9ef497755afc252fb8e060c9ea6b0987abfd20b6:

  Merge tag 'pull-vfio-20230911' of https://github.com/legoater/qemu into staging (2023-09-11 09:13:08 -0400)

are available in the Git repository at:

  https://github.com/stefanberger/qemu-tpm.git tags/pull-tpm-2023-09-12-1

for you to fetch changes up to 8557de964dfaae5c6eea09d488f85f4aa6cb3ce7:

  tpm: fix crash when FD >= 1024 (2023-09-12 17:30:12 -0400)

----------------------------------------------------------------
Marc-Andr޸ Lureau (1):
      tpm: fix crash when FD >= 1024

 backends/tpm/tpm_util.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

-- 
2.41.0



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PULL v1 1/1] tpm: fix crash when FD >= 1024
  2023-09-12 21:41 [PULL v1 0/1] Merge tpm 2023/09/12 v1 Stefan Berger
@ 2023-09-12 21:41 ` Stefan Berger
  2023-09-13  6:41   ` Michael Tokarev
  2023-09-13  5:57 ` [PULL v1 0/1] Merge tpm 2023/09/12 v1 Philippe Mathieu-Daudé
  1 sibling, 1 reply; 5+ messages in thread
From: Stefan Berger @ 2023-09-12 21:41 UTC (permalink / raw)
  To: qemu-devel
  Cc: peter.maydell, Marc-Andr޸ Lureau, qemu-stable,
	Michael Tokarev, Stefan Berger

From: Marc-Andr޸ Lureau <marcandre.lureau@redhat.com>

Replace select() with poll() to fix a crash when QEMU has a large number
of FDs.

Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=2020133

Cc: qemu-stable@nongnu.org
Fixes: 56a3c24ffc ("tpm: Probe for connected TPM 1.2 or TPM 2")
Signed-off-by: Marc-Andr޸ Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
---
 backends/tpm/tpm_util.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/backends/tpm/tpm_util.c b/backends/tpm/tpm_util.c
index a6e6d3e72f..1856589c3b 100644
--- a/backends/tpm/tpm_util.c
+++ b/backends/tpm/tpm_util.c
@@ -112,12 +112,8 @@ static int tpm_util_request(int fd,
                             void *response,
                             size_t responselen)
 {
-    fd_set readfds;
+    GPollFD fds[1] = { {.fd = fd, .events = G_IO_IN } };
     int n;
-    struct timeval tv = {
-        .tv_sec = 1,
-        .tv_usec = 0,
-    };
 
     n = write(fd, request, requestlen);
     if (n < 0) {
@@ -127,11 +123,8 @@ static int tpm_util_request(int fd,
         return -EFAULT;
     }
 
-    FD_ZERO(&readfds);
-    FD_SET(fd, &readfds);
-
     /* wait for a second */
-    n = select(fd + 1, &readfds, NULL, NULL, &tv);
+    n = RETRY_ON_EINTR(g_poll(fds, 1, 1000));
     if (n != 1) {
         return -errno;
     }
-- 
2.41.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PULL v1 0/1] Merge tpm 2023/09/12 v1
  2023-09-12 21:41 [PULL v1 0/1] Merge tpm 2023/09/12 v1 Stefan Berger
  2023-09-12 21:41 ` [PULL v1 1/1] tpm: fix crash when FD >= 1024 Stefan Berger
@ 2023-09-13  5:57 ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2023-09-13  5:57 UTC (permalink / raw)
  To: Stefan Berger, qemu-devel; +Cc: peter.maydell

On 12/9/23 23:41, Stefan Berger wrote:
> Hello!
> 
>    This PR contains a fix for the case where the TPM file descriptor is >= 1024
> and the select() call cannot be used.
> 
> Regards,
>     Stefan
> 
> The following changes since commit 9ef497755afc252fb8e060c9ea6b0987abfd20b6:
> 
>    Merge tag 'pull-vfio-20230911' of https://github.com/legoater/qemu into staging (2023-09-11 09:13:08 -0400)
> 
> are available in the Git repository at:
> 
>    https://github.com/stefanberger/qemu-tpm.git tags/pull-tpm-2023-09-12-1
> 
> for you to fetch changes up to 8557de964dfaae5c6eea09d488f85f4aa6cb3ce7:
> 
>    tpm: fix crash when FD >= 1024 (2023-09-12 17:30:12 -0400)
> 
> ----------------------------------------------------------------
> Marc-Andr޸ Lureau (1):

UTF-8 mojibake :/

>        tpm: fix crash when FD >= 1024
> 
>   backends/tpm/tpm_util.c | 11 ++---------
>   1 file changed, 2 insertions(+), 9 deletions(-)
> 



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PULL v1 1/1] tpm: fix crash when FD >= 1024
  2023-09-12 21:41 ` [PULL v1 1/1] tpm: fix crash when FD >= 1024 Stefan Berger
@ 2023-09-13  6:41   ` Michael Tokarev
  2023-09-13  8:09     ` Daniel P. Berrangé
  0 siblings, 1 reply; 5+ messages in thread
From: Michael Tokarev @ 2023-09-13  6:41 UTC (permalink / raw)
  To: Stefan Berger, qemu-devel
  Cc: peter.maydell, Marc-André Lureau, qemu-stable

13.09.2023 00:41, Stefan Berger wrote:
> From: Marc-Andr޸ Lureau <marcandre.lureau@redhat.com>
> 
> Replace select() with poll() to fix a crash when QEMU has a large number
> of FDs.
> 
> Fixes:
> https://bugzilla.redhat.com/show_bug.cgi?id=2020133

Please keep these on the same line next time.

And there's an UTF8 issue with Marc-André's name writing
as Phil already pointed out (fixing in Cc of this email).
Git usually DTRT here, dunno how that can happen.

BTW, it would also be good to mention newly introduced
usage of non-EINTR operation, - before this change, EINTR
were returned to the caller, now it is not anymore.

I'm sorry for late notes..

/mjt


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PULL v1 1/1] tpm: fix crash when FD >= 1024
  2023-09-13  6:41   ` Michael Tokarev
@ 2023-09-13  8:09     ` Daniel P. Berrangé
  0 siblings, 0 replies; 5+ messages in thread
From: Daniel P. Berrangé @ 2023-09-13  8:09 UTC (permalink / raw)
  To: Michael Tokarev
  Cc: Stefan Berger, qemu-devel, peter.maydell, Marc-André Lureau,
	qemu-stable

On Wed, Sep 13, 2023 at 09:41:48AM +0300, Michael Tokarev wrote:
> 13.09.2023 00:41, Stefan Berger wrote:
> > From: Marc-Andr޸ Lureau <marcandre.lureau@redhat.com>
> > 
> > Replace select() with poll() to fix a crash when QEMU has a large number
> > of FDs.
> > 
> > Fixes:
> > https://bugzilla.redhat.com/show_bug.cgi?id=2020133
> 
> Please keep these on the same line next time.
> 
> And there's an UTF8 issue with Marc-André's name writing
> as Phil already pointed out (fixing in Cc of this email).
> Git usually DTRT here, dunno how that can happen.

It has often happened in the past when people have (mistakenly)
configured the tool used to send patches to use a non-UTF8
charset.


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-09-13  8:09 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-12 21:41 [PULL v1 0/1] Merge tpm 2023/09/12 v1 Stefan Berger
2023-09-12 21:41 ` [PULL v1 1/1] tpm: fix crash when FD >= 1024 Stefan Berger
2023-09-13  6:41   ` Michael Tokarev
2023-09-13  8:09     ` Daniel P. Berrangé
2023-09-13  5:57 ` [PULL v1 0/1] Merge tpm 2023/09/12 v1 Philippe Mathieu-Daudé

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).