fix some coding style problems

It has:
1. More newlines make the code block well separated.
2. Add more comments for msi_init.
3. Fix a indentation in vmxnet3.c.
4. ioh3420 & xio3130_downstream: put PCI Express capability init function
   together, make it more readable.

cc: Michael S. Tsirkin <mst@redhat.com>
cc: Markus Armbruster <armbru@redhat.com>
cc: Marcel Apfelbaum <marcel@redhat.com>
cc: Dmitry Fleytman <dmitry@daynix.com>
cc: Jason Wang <jasowang@redhat.com>

Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
master
Cao jin 2016-06-10 17:54:23 +08:00 committed by Michael S. Tsirkin
parent 97fe42f19b
commit 52ea63dea4
6 changed files with 35 additions and 3 deletions

View File

@ -348,7 +348,7 @@ typedef struct {
/* Interrupt management */ /* Interrupt management */
/* /*
*This function returns sign whether interrupt line is in asserted state * This function returns sign whether interrupt line is in asserted state
* This depends on the type of interrupt used. For INTX interrupt line will * This depends on the type of interrupt used. For INTX interrupt line will
* be asserted until explicit deassertion, for MSI(X) interrupt line will * be asserted until explicit deassertion, for MSI(X) interrupt line will
* be deasserted automatically due to notification semantics of the MSI(X) * be deasserted automatically due to notification semantics of the MSI(X)

View File

@ -106,12 +106,14 @@ static int ioh3420_initfn(PCIDevice *d)
if (rc < 0) { if (rc < 0) {
goto err_bridge; goto err_bridge;
} }
rc = msi_init(d, IOH_EP_MSI_OFFSET, IOH_EP_MSI_NR_VECTOR, rc = msi_init(d, IOH_EP_MSI_OFFSET, IOH_EP_MSI_NR_VECTOR,
IOH_EP_MSI_SUPPORTED_FLAGS & PCI_MSI_FLAGS_64BIT, IOH_EP_MSI_SUPPORTED_FLAGS & PCI_MSI_FLAGS_64BIT,
IOH_EP_MSI_SUPPORTED_FLAGS & PCI_MSI_FLAGS_MASKBIT); IOH_EP_MSI_SUPPORTED_FLAGS & PCI_MSI_FLAGS_MASKBIT);
if (rc < 0) { if (rc < 0) {
goto err_bridge; goto err_bridge;
} }
rc = pcie_cap_init(d, IOH_EP_EXP_OFFSET, PCI_EXP_TYPE_ROOT_PORT, p->port); rc = pcie_cap_init(d, IOH_EP_EXP_OFFSET, PCI_EXP_TYPE_ROOT_PORT, p->port);
if (rc < 0) { if (rc < 0) {
goto err_msi; goto err_msi;
@ -120,18 +122,21 @@ static int ioh3420_initfn(PCIDevice *d)
pcie_cap_arifwd_init(d); pcie_cap_arifwd_init(d);
pcie_cap_deverr_init(d); pcie_cap_deverr_init(d);
pcie_cap_slot_init(d, s->slot); pcie_cap_slot_init(d, s->slot);
pcie_cap_root_init(d);
pcie_chassis_create(s->chassis); pcie_chassis_create(s->chassis);
rc = pcie_chassis_add_slot(s); rc = pcie_chassis_add_slot(s);
if (rc < 0) { if (rc < 0) {
goto err_pcie_cap; goto err_pcie_cap;
} }
pcie_cap_root_init(d);
rc = pcie_aer_init(d, IOH_EP_AER_OFFSET, PCI_ERR_SIZEOF); rc = pcie_aer_init(d, IOH_EP_AER_OFFSET, PCI_ERR_SIZEOF);
if (rc < 0) { if (rc < 0) {
goto err; goto err;
} }
pcie_aer_root_init(d); pcie_aer_root_init(d);
ioh3420_aer_vector_update(d); ioh3420_aer_vector_update(d);
return 0; return 0;
err: err:

View File

@ -68,10 +68,12 @@ static int pci_bridge_dev_initfn(PCIDevice *dev)
/* MSI is not applicable without SHPC */ /* MSI is not applicable without SHPC */
bridge_dev->flags &= ~(1 << PCI_BRIDGE_DEV_F_MSI_REQ); bridge_dev->flags &= ~(1 << PCI_BRIDGE_DEV_F_MSI_REQ);
} }
err = slotid_cap_init(dev, 0, bridge_dev->chassis_nr, 0); err = slotid_cap_init(dev, 0, bridge_dev->chassis_nr, 0);
if (err) { if (err) {
goto slotid_error; goto slotid_error;
} }
if ((bridge_dev->flags & (1 << PCI_BRIDGE_DEV_F_MSI_REQ)) && if ((bridge_dev->flags & (1 << PCI_BRIDGE_DEV_F_MSI_REQ)) &&
msi_nonbroken) { msi_nonbroken) {
err = msi_init(dev, 0, 1, true, true); err = msi_init(dev, 0, 1, true, true);
@ -79,6 +81,7 @@ static int pci_bridge_dev_initfn(PCIDevice *dev)
goto msi_error; goto msi_error;
} }
} }
if (shpc_present(dev)) { if (shpc_present(dev)) {
/* TODO: spec recommends using 64 bit prefetcheable BAR. /* TODO: spec recommends using 64 bit prefetcheable BAR.
* Check whether that works well. */ * Check whether that works well. */
@ -86,6 +89,7 @@ static int pci_bridge_dev_initfn(PCIDevice *dev)
PCI_BASE_ADDRESS_MEM_TYPE_64, &bridge_dev->bar); PCI_BASE_ADDRESS_MEM_TYPE_64, &bridge_dev->bar);
} }
return 0; return 0;
msi_error: msi_error:
slotid_cap_cleanup(dev); slotid_cap_cleanup(dev);
slotid_error: slotid_error:

View File

@ -70,11 +70,13 @@ static int xio3130_downstream_initfn(PCIDevice *d)
if (rc < 0) { if (rc < 0) {
goto err_bridge; goto err_bridge;
} }
rc = pci_bridge_ssvid_init(d, XIO3130_SSVID_OFFSET, rc = pci_bridge_ssvid_init(d, XIO3130_SSVID_OFFSET,
XIO3130_SSVID_SVID, XIO3130_SSVID_SSID); XIO3130_SSVID_SVID, XIO3130_SSVID_SSID);
if (rc < 0) { if (rc < 0) {
goto err_bridge; goto err_bridge;
} }
rc = pcie_cap_init(d, XIO3130_EXP_OFFSET, PCI_EXP_TYPE_DOWNSTREAM, rc = pcie_cap_init(d, XIO3130_EXP_OFFSET, PCI_EXP_TYPE_DOWNSTREAM,
p->port); p->port);
if (rc < 0) { if (rc < 0) {
@ -83,12 +85,14 @@ static int xio3130_downstream_initfn(PCIDevice *d)
pcie_cap_flr_init(d); pcie_cap_flr_init(d);
pcie_cap_deverr_init(d); pcie_cap_deverr_init(d);
pcie_cap_slot_init(d, s->slot); pcie_cap_slot_init(d, s->slot);
pcie_cap_arifwd_init(d);
pcie_chassis_create(s->chassis); pcie_chassis_create(s->chassis);
rc = pcie_chassis_add_slot(s); rc = pcie_chassis_add_slot(s);
if (rc < 0) { if (rc < 0) {
goto err_pcie_cap; goto err_pcie_cap;
} }
pcie_cap_arifwd_init(d);
rc = pcie_aer_init(d, XIO3130_AER_OFFSET, PCI_ERR_SIZEOF); rc = pcie_aer_init(d, XIO3130_AER_OFFSET, PCI_ERR_SIZEOF);
if (rc < 0) { if (rc < 0) {
goto err; goto err;

View File

@ -66,11 +66,13 @@ static int xio3130_upstream_initfn(PCIDevice *d)
if (rc < 0) { if (rc < 0) {
goto err_bridge; goto err_bridge;
} }
rc = pci_bridge_ssvid_init(d, XIO3130_SSVID_OFFSET, rc = pci_bridge_ssvid_init(d, XIO3130_SSVID_OFFSET,
XIO3130_SSVID_SVID, XIO3130_SSVID_SSID); XIO3130_SSVID_SVID, XIO3130_SSVID_SSID);
if (rc < 0) { if (rc < 0) {
goto err_bridge; goto err_bridge;
} }
rc = pcie_cap_init(d, XIO3130_EXP_OFFSET, PCI_EXP_TYPE_UPSTREAM, rc = pcie_cap_init(d, XIO3130_EXP_OFFSET, PCI_EXP_TYPE_UPSTREAM,
p->port); p->port);
if (rc < 0) { if (rc < 0) {
@ -78,6 +80,7 @@ static int xio3130_upstream_initfn(PCIDevice *d)
} }
pcie_cap_flr_init(d); pcie_cap_flr_init(d);
pcie_cap_deverr_init(d); pcie_cap_deverr_init(d);
rc = pcie_aer_init(d, XIO3130_AER_OFFSET, PCI_ERR_SIZEOF); rc = pcie_aer_init(d, XIO3130_AER_OFFSET, PCI_ERR_SIZEOF);
if (rc < 0) { if (rc < 0) {
goto err; goto err;

View File

@ -165,6 +165,22 @@ bool msi_enabled(const PCIDevice *dev)
PCI_MSI_FLAGS_ENABLE); PCI_MSI_FLAGS_ENABLE);
} }
/*
* Make PCI device @dev MSI-capable.
* Non-zero @offset puts capability MSI at that offset in PCI config
* space.
* @nr_vectors is the number of MSI vectors (1, 2, 4, 8, 16 or 32).
* If @msi64bit, make the device capable of sending a 64-bit message
* address.
* If @msi_per_vector_mask, make the device support per-vector masking.
* Return the offset of capability MSI in config space on success,
* return -errno on error.
*
* -ENOTSUP means lacking msi support for a msi-capable platform.
* -EINVAL means capability overlap, happens when @offset is non-zero,
* also means a programming error, except device assignment, which can check
* if a real HW is broken.
*/
int msi_init(struct PCIDevice *dev, uint8_t offset, int msi_init(struct PCIDevice *dev, uint8_t offset,
unsigned int nr_vectors, bool msi64bit, bool msi_per_vector_mask) unsigned int nr_vectors, bool msi64bit, bool msi_per_vector_mask)
{ {