|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] pci: constify domain parameter of pci_get_pdev_by_domain
>>> On 08.09.17 at 20:08, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 08/09/17 18:33, Roger Pau Monné wrote:
>> On Fri, Sep 08, 2017 at 10:00:41AM -0600, Jan Beulich wrote:
>>>>>> On 08.09.17 at 16:30, <roger.pau@xxxxxxxxxx> wrote:
>>>> On Fri, Sep 08, 2017 at 03:15:40PM +0100, Andrew Cooper wrote:
>>>>> On 08/09/17 14:34, Roger Pau Monne wrote:
>>>>>> While there fix the indentation.
>>>>>>
>>>>>> Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
>>>>>> ---
>>>>>> Cc: Jan Beulich <jbeulich@xxxxxxxx>
>>>>>> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
>>>>>> Cc: George Dunlap <George.Dunlap@xxxxxxxxxxxxx>
>>>>>> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
>>>>>> Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
>>>>>> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>
>>>>>> Cc: Tim Deegan <tim@xxxxxxx>
>>>>>> Cc: Wei Liu <wei.liu2@xxxxxxxxxx>
>>>>>> ---
>>>>>> xen/drivers/passthrough/pci.c | 4 ++--
>>>>>> xen/include/xen/pci.h | 4 ++--
>>>>>> 2 files changed, 4 insertions(+), 4 deletions(-)
>>>>>>
>>>>>> diff --git a/xen/drivers/passthrough/pci.c
>>>>>> b/xen/drivers/passthrough/pci.c
>>>>>> index 74829e5748..469dfc6c3d 100644
>>>>>> --- a/xen/drivers/passthrough/pci.c
>>>>>> +++ b/xen/drivers/passthrough/pci.c
>>>>>> @@ -532,8 +532,8 @@ struct pci_dev *pci_get_real_pdev(int seg, int bus,
>>>>>> int
>>>> devfn)
>>>>>> return pdev;
>>>>>> }
>>>>>>
>>>>>> -struct pci_dev *pci_get_pdev_by_domain(
>>>>>> - struct domain *d, int seg, int bus, int devfn)
>>>>>> +struct pci_dev *pci_get_pdev_by_domain(const struct domain *d, int seg,
>>>>>> + int bus, int devfn)
>>>>> I know this isn't strictly related to the patch, but having 3 register
>>>>> parameters (and load of places elsewhere) here is extremely wasteful for
>>>>> register scheduling. Could we introduce:
>>>>>
>>>>> typedef union {
>>>>> uint32_t sbdf;
>>>>> struct {
>>>>> uint16_t f : 3, /* Function */
>>>>> d : 5, /* Device */
>>>>> b : 8; /* Bus */
>>>>> uint16_t s; /* Segment */
>>>>> };
>>>>> } pci_sbdf_t;
>>>>>
>>>>> and try to start using it?
>>>> This is going to be kind of awkward to use with extended
>>>> functions...
>>>>
>>>> It's not like what we have now (devfn) is much better, but if we
>>>> switch to something else I would like to be able to get the correct
>>>> function value for both normal and extended function devices from the
>>>> same field.
>>> Why not unionize f and d with a uint8_t extfn (I'd also prefer the
>>> other two to be named func and dev)?
>> So something like:
>
> As as bdf is also quite a common unit, how about:
>
>>
>> typedef union {
>> uint32_t sbdf;
>> struct {
>
> union {
> uint16_t bdf;
> struct {
Yes.
>> union {
>> struct {
>> uint8_t func : 3, /* Function */
>> slot : 5; /* Device */
>
> dev or device, surely?
Yeah, comment and field name would better match (or the comments
could perhaps go away altogether). While "slot" is a common term
here, with this being inside something called "sbdf" I agree "device"
or "dev" (in the former case it should also be "function", but I prefer
the shorter variants) should be used here.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |