Message ID | 1407164781-32486-3-git-send-email-lkurusa@redhat.com |
---|---|
State | New |
Headers | show |
On Mon, Aug 04, 2014 at 05:06:21PM +0200, Levente Kurusa wrote: > It was expecting an integer, however the sole usecase of it just > checked whether it was assigned to or not. Hence, remove integerness, > and add a new bitfield instead. > > Signed-off-by: Levente Kurusa <lkurusa@redhat.com> This might break some existing scripts. If you want to address this, add a new type that can accept both integer and bool. > --- > hw/misc/ivshmem.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c > index 79603c0..eac85ad 100644 > --- a/hw/misc/ivshmem.c > +++ b/hw/misc/ivshmem.c > @@ -34,6 +34,7 @@ > > #define IVSHMEM_IOEVENTFD 0 > #define IVSHMEM_MSI 1 > +#define IVSHMEM_64BIT 2 > > #define IVSHMEM_PEER 0 > #define IVSHMEM_MASTER 1 > @@ -83,7 +84,6 @@ typedef struct IVShmemState { > MemoryRegion ivshmem; > uint64_t ivshmem_size; /* size of shared memory region */ > uint32_t ivshmem_attr; > - uint32_t ivshmem_64bit; > int shm_fd; /* shared memory file descriptor */ > > Peer *peers; > @@ -706,7 +706,7 @@ static int pci_ivshmem_init(PCIDevice *dev) > memory_region_init(&s->bar, OBJECT(s), "ivshmem-bar2-container", s->ivshmem_size); > s->ivshmem_attr = PCI_BASE_ADDRESS_SPACE_MEMORY | > PCI_BASE_ADDRESS_MEM_PREFETCH; > - if (s->ivshmem_64bit) { > + if (ivshmem_has_feature(s, IVSHMEM_64BIT)) { > s->ivshmem_attr |= PCI_BASE_ADDRESS_MEM_TYPE_64; > } > > @@ -804,7 +804,7 @@ static Property ivshmem_properties[] = { > DEFINE_PROP_BIT("msi", IVShmemState, features, IVSHMEM_MSI, true), > DEFINE_PROP_STRING("shm", IVShmemState, shmobj), > DEFINE_PROP_STRING("role", IVShmemState, role), > - DEFINE_PROP_UINT32("use64", IVShmemState, ivshmem_64bit, 1), > + DEFINE_PROP_BIT("use64", IVShmemState, features, IVSHMEM_64BIT, true), > DEFINE_PROP_END_OF_LIST(), > }; > > -- > 1.9.3
> On Mon, Aug 04, 2014 at 05:06:21PM +0200, Levente Kurusa wrote: > > It was expecting an integer, however the sole usecase of it just > > checked whether it was assigned to or not. Hence, remove integerness, > > and add a new bitfield instead. > > > > Signed-off-by: Levente Kurusa <lkurusa@redhat.com> > > This might break some existing scripts. > If you want to address this, add a new type that > can accept both integer and bool. Yea, makes sense. I don't really know whether adding a new type is worth the effort; let's just drop this patch and keep the interface as it is, since it makes no harm. Should I resend the first patch as a separate patch or can it be applied as it is? Oh, and are we taking the ivshmem command line as set in stone? I'm asking because I don't really see the point in that, given that ivshmem is still experimental and broken in many cases. Thanks, Levente Kurusa
diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 79603c0..eac85ad 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -34,6 +34,7 @@ #define IVSHMEM_IOEVENTFD 0 #define IVSHMEM_MSI 1 +#define IVSHMEM_64BIT 2 #define IVSHMEM_PEER 0 #define IVSHMEM_MASTER 1 @@ -83,7 +84,6 @@ typedef struct IVShmemState { MemoryRegion ivshmem; uint64_t ivshmem_size; /* size of shared memory region */ uint32_t ivshmem_attr; - uint32_t ivshmem_64bit; int shm_fd; /* shared memory file descriptor */ Peer *peers; @@ -706,7 +706,7 @@ static int pci_ivshmem_init(PCIDevice *dev) memory_region_init(&s->bar, OBJECT(s), "ivshmem-bar2-container", s->ivshmem_size); s->ivshmem_attr = PCI_BASE_ADDRESS_SPACE_MEMORY | PCI_BASE_ADDRESS_MEM_PREFETCH; - if (s->ivshmem_64bit) { + if (ivshmem_has_feature(s, IVSHMEM_64BIT)) { s->ivshmem_attr |= PCI_BASE_ADDRESS_MEM_TYPE_64; } @@ -804,7 +804,7 @@ static Property ivshmem_properties[] = { DEFINE_PROP_BIT("msi", IVShmemState, features, IVSHMEM_MSI, true), DEFINE_PROP_STRING("shm", IVShmemState, shmobj), DEFINE_PROP_STRING("role", IVShmemState, role), - DEFINE_PROP_UINT32("use64", IVShmemState, ivshmem_64bit, 1), + DEFINE_PROP_BIT("use64", IVShmemState, features, IVSHMEM_64BIT, true), DEFINE_PROP_END_OF_LIST(), };
It was expecting an integer, however the sole usecase of it just checked whether it was assigned to or not. Hence, remove integerness, and add a new bitfield instead. Signed-off-by: Levente Kurusa <lkurusa@redhat.com> --- hw/misc/ivshmem.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)