Message ID | 555606B3020000780007A8F1@mail.emea.novell.com |
---|---|
State | New |
Headers | show |
Ping? >>> On 15.05.15 at 14:46, <JBeulich@suse.com> wrote: > The code introduced to address XSA-126 allows simplification of other > code in xen_pt_initfn(): All we need to do is update "cmd" suitably, > as it'll be written back to the host register near the end of the > function anyway. > > Signed-off-by: Jan Beulich <jbeulich@suse.com> > > --- a/hw/xen/xen_pt.c > +++ b/hw/xen/xen_pt.c > @@ -698,10 +698,7 @@ static int xen_pt_initfn(PCIDevice *d) > machine_irq, pirq, rc); > > /* Disable PCI intx assertion (turn on bit10 of devctl) */ > - xen_host_pci_set_word(&s->real_device, > - PCI_COMMAND, > - pci_get_word(s->dev.config + PCI_COMMAND) > - | PCI_COMMAND_INTX_DISABLE); > + cmd |= PCI_COMMAND_INTX_DISABLE; > machine_irq = 0; > s->machine_irq = 0; > } else { > @@ -723,9 +720,7 @@ static int xen_pt_initfn(PCIDevice *d) > e_intx, rc); > > /* Disable PCI intx assertion (turn on bit10 of devctl) */ > - xen_host_pci_set_word(&s->real_device, PCI_COMMAND, > - *(uint16_t *)(&s->dev.config[PCI_COMMAND]) > - | PCI_COMMAND_INTX_DISABLE); > + cmd |= PCI_COMMAND_INTX_DISABLE; > xen_pt_mapped_machine_irq[machine_irq]--; > > if (xen_pt_mapped_machine_irq[machine_irq] == 0) { > > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel
On Fri, 15 May 2015, Jan Beulich wrote: > The code introduced to address XSA-126 allows simplification of other > code in xen_pt_initfn(): All we need to do is update "cmd" suitably, > as it'll be written back to the host register near the end of the > function anyway. > > Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> I'll add it to my queue. > --- a/hw/xen/xen_pt.c > +++ b/hw/xen/xen_pt.c > @@ -698,10 +698,7 @@ static int xen_pt_initfn(PCIDevice *d) > machine_irq, pirq, rc); > > /* Disable PCI intx assertion (turn on bit10 of devctl) */ > - xen_host_pci_set_word(&s->real_device, > - PCI_COMMAND, > - pci_get_word(s->dev.config + PCI_COMMAND) > - | PCI_COMMAND_INTX_DISABLE); > + cmd |= PCI_COMMAND_INTX_DISABLE; > machine_irq = 0; > s->machine_irq = 0; > } else { > @@ -723,9 +720,7 @@ static int xen_pt_initfn(PCIDevice *d) > e_intx, rc); > > /* Disable PCI intx assertion (turn on bit10 of devctl) */ > - xen_host_pci_set_word(&s->real_device, PCI_COMMAND, > - *(uint16_t *)(&s->dev.config[PCI_COMMAND]) > - | PCI_COMMAND_INTX_DISABLE); > + cmd |= PCI_COMMAND_INTX_DISABLE; > xen_pt_mapped_machine_irq[machine_irq]--; > > if (xen_pt_mapped_machine_irq[machine_irq] == 0) { > > >
--- a/hw/xen/xen_pt.c +++ b/hw/xen/xen_pt.c @@ -698,10 +698,7 @@ static int xen_pt_initfn(PCIDevice *d) machine_irq, pirq, rc); /* Disable PCI intx assertion (turn on bit10 of devctl) */ - xen_host_pci_set_word(&s->real_device, - PCI_COMMAND, - pci_get_word(s->dev.config + PCI_COMMAND) - | PCI_COMMAND_INTX_DISABLE); + cmd |= PCI_COMMAND_INTX_DISABLE; machine_irq = 0; s->machine_irq = 0; } else { @@ -723,9 +720,7 @@ static int xen_pt_initfn(PCIDevice *d) e_intx, rc); /* Disable PCI intx assertion (turn on bit10 of devctl) */ - xen_host_pci_set_word(&s->real_device, PCI_COMMAND, - *(uint16_t *)(&s->dev.config[PCI_COMMAND]) - | PCI_COMMAND_INTX_DISABLE); + cmd |= PCI_COMMAND_INTX_DISABLE; xen_pt_mapped_machine_irq[machine_irq]--; if (xen_pt_mapped_machine_irq[machine_irq] == 0) {
The code introduced to address XSA-126 allows simplification of other code in xen_pt_initfn(): All we need to do is update "cmd" suitably, as it'll be written back to the host register near the end of the function anyway. Signed-off-by: Jan Beulich <jbeulich@suse.com>