Message ID | 1456771254-17511-27-git-send-email-armbru@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi On Mon, Feb 29, 2016 at 7:40 PM, Markus Armbruster <armbru@redhat.com> wrote: > The chardev must be capable of transmitting SCM_RIGHTS ancillary > messages. We check it by comparing CharDriverState member filename to > "unix:". That's almost as brittle as it is disgusting. > > When the actual transmission all happened asynchronously, this check > was all we could do in realize(), and thus better than nothing. But > now we receive at least one SCM_RIGHTS synchronously in realize(), > it's not worth its keep anymore. Drop it. > > Signed-off-by: Markus Armbruster <armbru@redhat.com> > --- Didn't look that horrible to me, and could be actually more useful than a later error. But I don't think this is an issue, so why not drop a few lines.. Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> > hw/misc/ivshmem.c | 9 --------- > 1 file changed, 9 deletions(-) > > diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c > index 8f976ca..e578b8a 100644 > --- a/hw/misc/ivshmem.c > +++ b/hw/misc/ivshmem.c > @@ -961,15 +961,6 @@ static void pci_ivshmem_realize(PCIDevice *dev, Error **errp) > memory_region_add_subregion(&s->bar, 0, mr); > pci_register_bar(PCI_DEVICE(s), 2, attr, &s->bar); > } else if (s->server_chr != NULL) { > - /* FIXME do not rely on what chr drivers put into filename */ > - if (strncmp(s->server_chr->filename, "unix:", 5)) { > - error_setg(errp, "chardev is not a unix client socket"); > - return; > - } > - > - /* if we get a UNIX socket as the parameter we will talk > - * to the ivshmem server to receive the memory region */ > - > IVSHMEM_DPRINTF("using shared memory server (socket = %s)\n", > s->server_chr->filename); > > -- > 2.4.3 > >
diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 8f976ca..e578b8a 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -961,15 +961,6 @@ static void pci_ivshmem_realize(PCIDevice *dev, Error **errp) memory_region_add_subregion(&s->bar, 0, mr); pci_register_bar(PCI_DEVICE(s), 2, attr, &s->bar); } else if (s->server_chr != NULL) { - /* FIXME do not rely on what chr drivers put into filename */ - if (strncmp(s->server_chr->filename, "unix:", 5)) { - error_setg(errp, "chardev is not a unix client socket"); - return; - } - - /* if we get a UNIX socket as the parameter we will talk - * to the ivshmem server to receive the memory region */ - IVSHMEM_DPRINTF("using shared memory server (socket = %s)\n", s->server_chr->filename);
The chardev must be capable of transmitting SCM_RIGHTS ancillary messages. We check it by comparing CharDriverState member filename to "unix:". That's almost as brittle as it is disgusting. When the actual transmission all happened asynchronously, this check was all we could do in realize(), and thus better than nothing. But now we receive at least one SCM_RIGHTS synchronously in realize(), it's not worth its keep anymore. Drop it. Signed-off-by: Markus Armbruster <armbru@redhat.com> --- hw/misc/ivshmem.c | 9 --------- 1 file changed, 9 deletions(-)