Message ID | 1600529318-8996-3-git-send-email-mjrosato@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Pass zPCI hardware information via VFIO | expand |
On 19.09.20 17:28, Matthew Rosato wrote: > We'll need to keep track of whether or not the byte string in util_str is > valid and thus needs to be passed to a vfio-pci passthrough device. > > Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com> If this goes via the vfio tree, Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> (please wait for an ack from Niklas Schnelle as well) > --- > arch/s390/include/asm/pci.h | 3 ++- > arch/s390/pci/pci_clp.c | 1 + > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/arch/s390/include/asm/pci.h b/arch/s390/include/asm/pci.h > index 882e233..32eb975 100644 > --- a/arch/s390/include/asm/pci.h > +++ b/arch/s390/include/asm/pci.h > @@ -132,7 +132,8 @@ struct zpci_dev { > u8 rid_available : 1; > u8 has_hp_slot : 1; > u8 is_physfn : 1; > - u8 reserved : 5; > + u8 util_avail : 1; > + u8 reserved : 4; > unsigned int devfn; /* DEVFN part of the RID*/ > > struct mutex lock; > diff --git a/arch/s390/pci/pci_clp.c b/arch/s390/pci/pci_clp.c > index 48bf316..d011134 100644 > --- a/arch/s390/pci/pci_clp.c > +++ b/arch/s390/pci/pci_clp.c > @@ -168,6 +168,7 @@ static int clp_store_query_pci_fn(struct zpci_dev *zdev, > if (response->util_str_avail) { > memcpy(zdev->util_str, response->util_str, > sizeof(zdev->util_str)); > + zdev->util_avail = 1; > } > zdev->mio_capable = response->mio_addr_avail; > for (i = 0; i < PCI_STD_NUM_BARS; i++) { >
Hi Matthew, On 9/19/20 5:28 PM, Matthew Rosato wrote: > We'll need to keep track of whether or not the byte string in util_str is > valid and thus needs to be passed to a vfio-pci passthrough device. > > Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com> > --- > arch/s390/include/asm/pci.h | 3 ++- > arch/s390/pci/pci_clp.c | 1 + > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/arch/s390/include/asm/pci.h b/arch/s390/include/asm/pci.h > index 882e233..32eb975 100644 > --- a/arch/s390/include/asm/pci.h > +++ b/arch/s390/include/asm/pci.h > @@ -132,7 +132,8 @@ struct zpci_dev { > u8 rid_available : 1; > u8 has_hp_slot : 1; > u8 is_physfn : 1; > - u8 reserved : 5; > + u8 util_avail : 1; Any reason you're not matching the util_str_avail name in the response struct? I think this is currently always an EBCDIC encoded string so the information that even if it looks like binary for anyone with a non-mainframe background it is in fact a string seems quite helpful. Other than that Acked-by: Niklas Schnelle <schnelle@linux.ibm.com> > + u8 reserved : 4; > unsigned int devfn; /* DEVFN part of the RID*/ > > struct mutex lock; > diff --git a/arch/s390/pci/pci_clp.c b/arch/s390/pci/pci_clp.c > index 48bf316..d011134 100644 > --- a/arch/s390/pci/pci_clp.c > +++ b/arch/s390/pci/pci_clp.c > @@ -168,6 +168,7 @@ static int clp_store_query_pci_fn(struct zpci_dev *zdev, > if (response->util_str_avail) { > memcpy(zdev->util_str, response->util_str, > sizeof(zdev->util_str)); > + zdev->util_avail = 1; > } > zdev->mio_capable = response->mio_addr_avail; > for (i = 0; i < PCI_STD_NUM_BARS; i++) { >
On 9/21/20 5:41 AM, Niklas Schnelle wrote: > Hi Matthew, > > On 9/19/20 5:28 PM, Matthew Rosato wrote: >> We'll need to keep track of whether or not the byte string in util_str is >> valid and thus needs to be passed to a vfio-pci passthrough device. >> >> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com> >> --- >> arch/s390/include/asm/pci.h | 3 ++- >> arch/s390/pci/pci_clp.c | 1 + >> 2 files changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/arch/s390/include/asm/pci.h b/arch/s390/include/asm/pci.h >> index 882e233..32eb975 100644 >> --- a/arch/s390/include/asm/pci.h >> +++ b/arch/s390/include/asm/pci.h >> @@ -132,7 +132,8 @@ struct zpci_dev { >> u8 rid_available : 1; >> u8 has_hp_slot : 1; >> u8 is_physfn : 1; >> - u8 reserved : 5; >> + u8 util_avail : 1; > > Any reason you're not matching the util_str_avail name in the response struct? > I think this is currently always an EBCDIC encoded string so the information that > even if it looks like binary for anyone with a non-mainframe background > it is in fact a string seems quite helpful. Frankly, the dropping of 'str_' was arbitrary on my part -- I'll go ahead and rename it to util_str_avail with v2. > Other than that > > Acked-by: Niklas Schnelle <schnelle@linux.ibm.com> > Thanks! >> + u8 reserved : 4; >> unsigned int devfn; /* DEVFN part of the RID*/ >> >> struct mutex lock; >> diff --git a/arch/s390/pci/pci_clp.c b/arch/s390/pci/pci_clp.c >> index 48bf316..d011134 100644 >> --- a/arch/s390/pci/pci_clp.c >> +++ b/arch/s390/pci/pci_clp.c >> @@ -168,6 +168,7 @@ static int clp_store_query_pci_fn(struct zpci_dev *zdev, >> if (response->util_str_avail) { >> memcpy(zdev->util_str, response->util_str, >> sizeof(zdev->util_str)); >> + zdev->util_avail = 1; >> } >> zdev->mio_capable = response->mio_addr_avail; >> for (i = 0; i < PCI_STD_NUM_BARS; i++) { >>
diff --git a/arch/s390/include/asm/pci.h b/arch/s390/include/asm/pci.h index 882e233..32eb975 100644 --- a/arch/s390/include/asm/pci.h +++ b/arch/s390/include/asm/pci.h @@ -132,7 +132,8 @@ struct zpci_dev { u8 rid_available : 1; u8 has_hp_slot : 1; u8 is_physfn : 1; - u8 reserved : 5; + u8 util_avail : 1; + u8 reserved : 4; unsigned int devfn; /* DEVFN part of the RID*/ struct mutex lock; diff --git a/arch/s390/pci/pci_clp.c b/arch/s390/pci/pci_clp.c index 48bf316..d011134 100644 --- a/arch/s390/pci/pci_clp.c +++ b/arch/s390/pci/pci_clp.c @@ -168,6 +168,7 @@ static int clp_store_query_pci_fn(struct zpci_dev *zdev, if (response->util_str_avail) { memcpy(zdev->util_str, response->util_str, sizeof(zdev->util_str)); + zdev->util_avail = 1; } zdev->mio_capable = response->mio_addr_avail; for (i = 0; i < PCI_STD_NUM_BARS; i++) {
We'll need to keep track of whether or not the byte string in util_str is valid and thus needs to be passed to a vfio-pci passthrough device. Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com> --- arch/s390/include/asm/pci.h | 3 ++- arch/s390/pci/pci_clp.c | 1 + 2 files changed, 3 insertions(+), 1 deletion(-)