qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] vfio/pci: replace 1 with PCI_CAP_LIST_NEXT to make code self-explain
@ 2016-02-11  0:54 Wei Yang
  2016-03-16 11:27 ` Michael Tokarev
  0 siblings, 1 reply; 4+ messages in thread
From: Wei Yang @ 2016-02-11  0:54 UTC (permalink / raw)
  To: alex.williamson; +Cc: qemu-trivial, qemu-devel, Wei Yang

Use the macro PCI_CAP_LIST_NEXT instead of 1, so that the code would be
more self-explain.

This patch makes this change and also fixs one typo in comment.

Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
---
 hw/vfio/pci.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
index 1fb868c..17d1462 100644
--- a/hw/vfio/pci.c
+++ b/hw/vfio/pci.c
@@ -1472,7 +1472,7 @@ static uint8_t vfio_std_cap_max_size(PCIDevice *pdev, uint8_t pos)
     uint8_t tmp, next = 0xff;
 
     for (tmp = pdev->config[PCI_CAPABILITY_LIST]; tmp;
-         tmp = pdev->config[tmp + 1]) {
+         tmp = pdev->config[tmp + PCI_CAP_LIST_NEXT]) {
         if (tmp > pos && tmp < next) {
             next = tmp;
         }
@@ -1661,7 +1661,7 @@ static int vfio_add_std_cap(VFIOPCIDevice *vdev, uint8_t pos)
     int ret;
 
     cap_id = pdev->config[pos];
-    next = pdev->config[pos + 1];
+    next = pdev->config[pos + PCI_CAP_LIST_NEXT];
 
     /*
      * If it becomes important to configure capabilities to their actual
@@ -1675,7 +1675,7 @@ static int vfio_add_std_cap(VFIOPCIDevice *vdev, uint8_t pos)
      * pci_add_capability always inserts the new capability at the head
      * of the chain.  Therefore to end up with a chain that matches the
      * physical device, we insert from the end by making this recursive.
-     * This is also why we pre-caclulate size above as cached config space
+     * This is also why we pre-calculate size above as cached config space
      * will be changed as we unwind the stack.
      */
     if (next) {
@@ -1691,7 +1691,7 @@ static int vfio_add_std_cap(VFIOPCIDevice *vdev, uint8_t pos)
     }
 
     /* Use emulated next pointer to allow dropping caps */
-    pci_set_byte(vdev->emulated_config_bits + pos + 1, 0xff);
+    pci_set_byte(vdev->emulated_config_bits + pos + PCI_CAP_LIST_NEXT, 0xff);
 
     switch (cap_id) {
     case PCI_CAP_ID_MSI:
-- 
2.5.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH] vfio/pci: replace 1 with PCI_CAP_LIST_NEXT to make code self-explain
  2016-02-11  0:54 [Qemu-devel] [PATCH] vfio/pci: replace 1 with PCI_CAP_LIST_NEXT to make code self-explain Wei Yang
@ 2016-03-16 11:27 ` Michael Tokarev
  2016-03-16 11:52   ` Paolo Bonzini
  0 siblings, 1 reply; 4+ messages in thread
From: Michael Tokarev @ 2016-03-16 11:27 UTC (permalink / raw)
  To: Wei Yang, alex.williamson; +Cc: qemu-trivial, qemu-devel

11.02.2016 03:54, Wei Yang wrote:
> Use the macro PCI_CAP_LIST_NEXT instead of 1, so that the code would be
> more self-explain.
> 
> This patch makes this change and also fixs one typo in comment.
> 

>      for (tmp = pdev->config[PCI_CAPABILITY_LIST]; tmp;
> -         tmp = pdev->config[tmp + 1]) {
> +         tmp = pdev->config[tmp + PCI_CAP_LIST_NEXT]) {

> -    next = pdev->config[pos + 1];
> +    next = pdev->config[pos + PCI_CAP_LIST_NEXT];

Hmm. I'm not sure the new version is better, to me "+1" reads
easier than the new symbolic constant variant.

If it were something like pdev->config[PCI_CAP_LIST_NEXT], that'd be
nice, but not "pos + PCI_CAP_LIST_NEXT".

But again, I'm not pci config space expert and don't understand
the basics :)

Thanks,

/mjt

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH] vfio/pci: replace 1 with PCI_CAP_LIST_NEXT to make code self-explain
  2016-03-16 11:27 ` Michael Tokarev
@ 2016-03-16 11:52   ` Paolo Bonzini
  2016-03-17 15:01     ` Wei Yang
  0 siblings, 1 reply; 4+ messages in thread
From: Paolo Bonzini @ 2016-03-16 11:52 UTC (permalink / raw)
  To: Michael Tokarev, Wei Yang, alex.williamson; +Cc: qemu-trivial, qemu-devel



On 16/03/2016 12:27, Michael Tokarev wrote:
>> >      for (tmp = pdev->config[PCI_CAPABILITY_LIST]; tmp;
>> > -         tmp = pdev->config[tmp + 1]) {
>> > +         tmp = pdev->config[tmp + PCI_CAP_LIST_NEXT]) {
>> > -    next = pdev->config[pos + 1];
>> > +    next = pdev->config[pos + PCI_CAP_LIST_NEXT];
> Hmm. I'm not sure the new version is better, to me "+1" reads
> easier than the new symbolic constant variant.
> 
> If it were something like pdev->config[PCI_CAP_LIST_NEXT], that'd be
> nice, but not "pos + PCI_CAP_LIST_NEXT".
> 
> But again, I'm not pci config space expert and don't understand
> the basics :)

Each capability is a node of a linked list, and the position of the next
capability is at offset 1 inside the capability (here it is at offset 1
from the tmp or pos base).  I think the patch is an improvement.

Paolo

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH] vfio/pci: replace 1 with PCI_CAP_LIST_NEXT to make code self-explain
  2016-03-16 11:52   ` Paolo Bonzini
@ 2016-03-17 15:01     ` Wei Yang
  0 siblings, 0 replies; 4+ messages in thread
From: Wei Yang @ 2016-03-17 15:01 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: qemu-trivial, alex.williamson, Michael Tokarev, qemu-devel, Wei Yang

On Wed, Mar 16, 2016 at 12:52:52PM +0100, Paolo Bonzini wrote:
>
>
>On 16/03/2016 12:27, Michael Tokarev wrote:
>>> >      for (tmp = pdev->config[PCI_CAPABILITY_LIST]; tmp;
>>> > -         tmp = pdev->config[tmp + 1]) {
>>> > +         tmp = pdev->config[tmp + PCI_CAP_LIST_NEXT]) {
>>> > -    next = pdev->config[pos + 1];
>>> > +    next = pdev->config[pos + PCI_CAP_LIST_NEXT];
>> Hmm. I'm not sure the new version is better, to me "+1" reads
>> easier than the new symbolic constant variant.
>> 
>> If it were something like pdev->config[PCI_CAP_LIST_NEXT], that'd be
>> nice, but not "pos + PCI_CAP_LIST_NEXT".
>> 
>> But again, I'm not pci config space expert and don't understand
>> the basics :)

Thanks Michael for your comment. By using the macro, audience is more easy to
understand it tries to get the position of next capability.

>
>Each capability is a node of a linked list, and the position of the next
>capability is at offset 1 inside the capability (here it is at offset 1
>from the tmp or pos base).  I think the patch is an improvement.
>

Thanks Paolo for your reply. :-) 

>Paolo

-- 
Wei Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-03-17 15:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-11  0:54 [Qemu-devel] [PATCH] vfio/pci: replace 1 with PCI_CAP_LIST_NEXT to make code self-explain Wei Yang
2016-03-16 11:27 ` Michael Tokarev
2016-03-16 11:52   ` Paolo Bonzini
2016-03-17 15:01     ` Wei Yang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).