Messages in this thread | | | Date | Tue, 5 Apr 2022 09:48:29 -0400 | Subject | Re: [PATCH v5 14/21] KVM: s390: pci: provide routines for enabling/disabling interrupt forwarding | From | Matthew Rosato <> |
| |
On 4/5/22 9:39 AM, Niklas Schnelle wrote: > On Mon, 2022-04-04 at 13:43 -0400, Matthew Rosato wrote: >> These routines will be wired into a kvm ioctl in order to respond to >> requests to enable / disable a device for Adapter Event Notifications / >> Adapter Interuption Forwarding. >> >> Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com> >> --- >> arch/s390/kvm/pci.c | 247 +++++++++++++++++++++++++++++++++++++++ >> arch/s390/kvm/pci.h | 1 + >> arch/s390/pci/pci_insn.c | 1 + >> 3 files changed, 249 insertions(+) >> >> diff --git a/arch/s390/kvm/pci.c b/arch/s390/kvm/pci.c >> index 01bd8a2f503b..f0fd68569a9d 100644 >> --- a/arch/s390/kvm/pci.c >> +++ b/arch/s390/kvm/pci.c >> @@ -11,6 +11,7 @@ >> #include <linux/pci.h> >> #include <asm/pci.h> >> #include <asm/pci_insn.h> >> +#include <asm/pci_io.h> >> #include "pci.h" >> >> struct zpci_aift *aift; >> @@ -152,6 +153,252 @@ int kvm_s390_pci_aen_init(u8 nisc) >> return rc; >> } >> >> +/* Modify PCI: Register floating adapter interruption forwarding */ >> +static int kvm_zpci_set_airq(struct zpci_dev *zdev) >> +{ >> + u64 req = ZPCI_CREATE_REQ(zdev->fh, 0, ZPCI_MOD_FC_REG_INT); >> + struct zpci_fib fib = {}; > > Hmm this one uses '{}' as initializer while all current callers of > zpci_mod_fc() use '{0}'. As far as I know the empty braces are a GNU > extension so should work for the kernel but for consistency I'd go with > '{0}' or possibly '{.foo = bar, ...}' where that is more readable. > There too uninitialized fields will be set to 0. Unless of course there > is a conflicting KVM convention that I don't know about.
No convention that I'm aware of, I previously had fib = {0} based on the same rationale you describe and changed to fib = {} per review request from Pierre a few versions back. I don't have a strong preference, but I did not note any functional difference between the two and see a bunch of examples of both methods throughout the kernel.
| |