RE: [EXTERNAL] Re: [PATCH 1/1] PCI: hv: Support for create interrupt v3

From: Sunil Muthuswamy
Date: Fri Jul 09 2021 - 12:42:18 EST


> > +/*
> > + * struct hv_msi_desc3 - 1.3 version of hv_msi_desc
> > + * Everything is the same as in 'hv_msi_desc2' except that the size
> > + * of the 'vector_count' field is larger to support bigger vector
> > + * values. For ex: LPI vectors on ARM.
> > + */
> > +struct hv_msi_desc3 {
> > + u32 vector;
> > + u8 delivery_mode;
> > + u8 reserved;
> > + u16 vector_count;
> > + u16 processor_count;
> > + u16 processor_array[32];
> > +} __packed;
> > +
> > /**
> > * struct tran_int_desc
> > * @reserved: unused, padding
> > @@ -383,6 +402,12 @@ struct pci_create_interrupt2 {
> > struct hv_msi_desc2 int_desc;
> > } __packed;
> >
> > +struct pci_create_interrupt3 {
> > + struct pci_message message_type;
> > + union win_slot_encoding wslot;
> > + struct hv_msi_desc3 int_desc;
> > +} __packed;
> > +
> > struct pci_delete_interrupt {
> > struct pci_message message_type;
> > union win_slot_encoding wslot;
> > @@ -1334,26 +1359,55 @@ static u32 hv_compose_msi_req_v1(
> > return sizeof(*int_pkt);
> > }
> >
> > +static void hv_compose_msi_req_get_cpu(struct cpumask *affinity, int *cpu,
> > + u16 *count)
>
> Isn't count redundant here? I don't see how this can be used safely for
> passing back more than 1 cpu, since if cpu is pointing to an array, its
> size is not specified.
>
> Wei.

Yes, it is at the moment. But, the function can be extended in the future to take
a size as well. But, it will always be 1 and I preferred keeping that information
with the implementation. If you have preference, I can hard code that in the
caller. It seems fine for me either ways.

- Sunil