xen-pciback: Use dev_printk() when possible

Use dev_printk() when possible to include device and driver information in
the conventional format.

Add "#define dev_fmt" when needed to preserve DRV_NAME or KBUILD_MODNAME in
messages.

No functional change intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://lore.kernel.org/r/20200527174326.254329-2-helgaas@kernel.org
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
This commit is contained in:
Bjorn Helgaas 2020-05-27 12:43:25 -05:00 committed by Boris Ostrovsky
parent 2abb65a39b
commit 6904945420
6 changed files with 65 additions and 83 deletions

View File

@ -10,6 +10,8 @@
* Author: Ryan Wilson <hap9@epoch.ncsc.mil> * Author: Ryan Wilson <hap9@epoch.ncsc.mil>
*/ */
#define dev_fmt(fmt) DRV_NAME ": " fmt
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/moduleparam.h> #include <linux/moduleparam.h>
#include <linux/pci.h> #include <linux/pci.h>
@ -155,8 +157,8 @@ int xen_pcibk_config_read(struct pci_dev *dev, int offset, int size,
u32 value = 0, tmp_val; u32 value = 0, tmp_val;
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG DRV_NAME ": %s: read %d bytes at 0x%x\n", dev_printk(KERN_DEBUG, &dev->dev, "read %d bytes at 0x%x\n",
pci_name(dev), size, offset); size, offset);
if (!valid_request(offset, size)) { if (!valid_request(offset, size)) {
err = XEN_PCI_ERR_invalid_offset; err = XEN_PCI_ERR_invalid_offset;
@ -196,8 +198,8 @@ int xen_pcibk_config_read(struct pci_dev *dev, int offset, int size,
out: out:
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG DRV_NAME ": %s: read %d bytes at 0x%x = %x\n", dev_printk(KERN_DEBUG, &dev->dev,
pci_name(dev), size, offset, value); "read %d bytes at 0x%x = %x\n", size, offset, value);
*ret_val = value; *ret_val = value;
return xen_pcibios_err_to_errno(err); return xen_pcibios_err_to_errno(err);
@ -213,9 +215,9 @@ int xen_pcibk_config_write(struct pci_dev *dev, int offset, int size, u32 value)
int field_start, field_end; int field_start, field_end;
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG dev_printk(KERN_DEBUG, &dev->dev,
DRV_NAME ": %s: write request %d bytes at 0x%x = %x\n", "write request %d bytes at 0x%x = %x\n", size,
pci_name(dev), size, offset, value); offset, value);
if (!valid_request(offset, size)) if (!valid_request(offset, size))
return XEN_PCI_ERR_invalid_offset; return XEN_PCI_ERR_invalid_offset;

View File

@ -6,6 +6,7 @@
*/ */
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#define dev_fmt pr_fmt
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/pci.h> #include <linux/pci.h>
@ -68,8 +69,7 @@ static int command_write(struct pci_dev *dev, int offset, u16 value, void *data)
dev_data = pci_get_drvdata(dev); dev_data = pci_get_drvdata(dev);
if (!pci_is_enabled(dev) && is_enable_cmd(value)) { if (!pci_is_enabled(dev) && is_enable_cmd(value)) {
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG DRV_NAME ": %s: enable\n", dev_printk(KERN_DEBUG, &dev->dev, "enable\n");
pci_name(dev));
err = pci_enable_device(dev); err = pci_enable_device(dev);
if (err) if (err)
return err; return err;
@ -77,8 +77,7 @@ static int command_write(struct pci_dev *dev, int offset, u16 value, void *data)
dev_data->enable_intx = 1; dev_data->enable_intx = 1;
} else if (pci_is_enabled(dev) && !is_enable_cmd(value)) { } else if (pci_is_enabled(dev) && !is_enable_cmd(value)) {
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG DRV_NAME ": %s: disable\n", dev_printk(KERN_DEBUG, &dev->dev, "disable\n");
pci_name(dev));
pci_disable_device(dev); pci_disable_device(dev);
if (dev_data) if (dev_data)
dev_data->enable_intx = 0; dev_data->enable_intx = 0;
@ -86,34 +85,30 @@ static int command_write(struct pci_dev *dev, int offset, u16 value, void *data)
if (!dev->is_busmaster && is_master_cmd(value)) { if (!dev->is_busmaster && is_master_cmd(value)) {
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG DRV_NAME ": %s: set bus master\n", dev_printk(KERN_DEBUG, &dev->dev, "set bus master\n");
pci_name(dev));
pci_set_master(dev); pci_set_master(dev);
} else if (dev->is_busmaster && !is_master_cmd(value)) { } else if (dev->is_busmaster && !is_master_cmd(value)) {
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG DRV_NAME ": %s: clear bus master\n", dev_printk(KERN_DEBUG, &dev->dev, "clear bus master\n");
pci_name(dev));
pci_clear_master(dev); pci_clear_master(dev);
} }
if (!(cmd->val & PCI_COMMAND_INVALIDATE) && if (!(cmd->val & PCI_COMMAND_INVALIDATE) &&
(value & PCI_COMMAND_INVALIDATE)) { (value & PCI_COMMAND_INVALIDATE)) {
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG dev_printk(KERN_DEBUG, &dev->dev,
DRV_NAME ": %s: enable memory-write-invalidate\n", "enable memory-write-invalidate\n");
pci_name(dev));
err = pci_set_mwi(dev); err = pci_set_mwi(dev);
if (err) { if (err) {
pr_warn("%s: cannot enable memory-write-invalidate (%d)\n", dev_warn(&dev->dev, "cannot enable memory-write-invalidate (%d)\n",
pci_name(dev), err); err);
value &= ~PCI_COMMAND_INVALIDATE; value &= ~PCI_COMMAND_INVALIDATE;
} }
} else if ((cmd->val & PCI_COMMAND_INVALIDATE) && } else if ((cmd->val & PCI_COMMAND_INVALIDATE) &&
!(value & PCI_COMMAND_INVALIDATE)) { !(value & PCI_COMMAND_INVALIDATE)) {
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG dev_printk(KERN_DEBUG, &dev->dev,
DRV_NAME ": %s: disable memory-write-invalidate\n", "disable memory-write-invalidate\n");
pci_name(dev));
pci_clear_mwi(dev); pci_clear_mwi(dev);
} }
@ -157,8 +152,7 @@ static int rom_write(struct pci_dev *dev, int offset, u32 value, void *data)
struct pci_bar_info *bar = data; struct pci_bar_info *bar = data;
if (unlikely(!bar)) { if (unlikely(!bar)) {
pr_warn(DRV_NAME ": driver data not found for %s\n", dev_warn(&dev->dev, "driver data not found\n");
pci_name(dev));
return XEN_PCI_ERR_op_failed; return XEN_PCI_ERR_op_failed;
} }
@ -194,8 +188,7 @@ static int bar_write(struct pci_dev *dev, int offset, u32 value, void *data)
u32 mask; u32 mask;
if (unlikely(!bar)) { if (unlikely(!bar)) {
pr_warn(DRV_NAME ": driver data not found for %s\n", dev_warn(&dev->dev, "driver data not found\n");
pci_name(dev));
return XEN_PCI_ERR_op_failed; return XEN_PCI_ERR_op_failed;
} }
@ -228,8 +221,7 @@ static int bar_read(struct pci_dev *dev, int offset, u32 * value, void *data)
struct pci_bar_info *bar = data; struct pci_bar_info *bar = data;
if (unlikely(!bar)) { if (unlikely(!bar)) {
pr_warn(DRV_NAME ": driver data not found for %s\n", dev_warn(&dev->dev, "driver data not found\n");
pci_name(dev));
return XEN_PCI_ERR_op_failed; return XEN_PCI_ERR_op_failed;
} }
@ -433,8 +425,8 @@ int xen_pcibk_config_header_add_fields(struct pci_dev *dev)
default: default:
err = -EINVAL; err = -EINVAL;
pr_err("%s: Unsupported header type %d!\n", dev_err(&dev->dev, "Unsupported header type %d!\n",
pci_name(dev), dev->hdr_type); dev->hdr_type);
break; break;
} }

View File

@ -6,6 +6,8 @@
* Author: Chris Bookholt <hap10@epoch.ncsc.mil> * Author: Chris Bookholt <hap10@epoch.ncsc.mil>
*/ */
#define dev_fmt(fmt) DRV_NAME ": " fmt
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/pci.h> #include <linux/pci.h>
#include "pciback.h" #include "pciback.h"
@ -35,8 +37,8 @@ static struct xen_pcibk_config_quirk *xen_pcibk_find_quirk(struct pci_dev *dev)
if (match_one_device(&tmp_quirk->devid, dev) != NULL) if (match_one_device(&tmp_quirk->devid, dev) != NULL)
goto out; goto out;
tmp_quirk = NULL; tmp_quirk = NULL;
printk(KERN_DEBUG DRV_NAME dev_printk(KERN_DEBUG, &dev->dev,
": quirk didn't match any device known\n"); "quirk didn't match any device known\n");
out: out:
return tmp_quirk; return tmp_quirk;
} }

View File

@ -6,6 +6,7 @@
*/ */
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#define dev_fmt pr_fmt
#include <linux/module.h> #include <linux/module.h>
#include <linux/init.h> #include <linux/init.h>
@ -626,11 +627,11 @@ static void pcistub_remove(struct pci_dev *dev)
if (found_psdev->pdev) { if (found_psdev->pdev) {
int domid = xen_find_device_domain_owner(dev); int domid = xen_find_device_domain_owner(dev);
pr_warn("****** removing device %s while still in-use by domain %d! ******\n", dev_warn(&dev->dev, "****** removing device %s while still in-use by domain %d! ******\n",
pci_name(found_psdev->dev), domid); pci_name(found_psdev->dev), domid);
pr_warn("****** driver domain may still access this device's i/o resources!\n"); dev_warn(&dev->dev, "****** driver domain may still access this device's i/o resources!\n");
pr_warn("****** shutdown driver domain before binding device\n"); dev_warn(&dev->dev, "****** shutdown driver domain before binding device\n");
pr_warn("****** to other drivers or domains\n"); dev_warn(&dev->dev, "****** to other drivers or domains\n");
/* N.B. This ends up calling pcistub_put_pci_dev which ends up /* N.B. This ends up calling pcistub_put_pci_dev which ends up
* doing the FLR. */ * doing the FLR. */
@ -711,14 +712,12 @@ static pci_ers_result_t common_process(struct pcistub_device *psdev,
ret = xen_pcibk_get_pcifront_dev(psdev->dev, psdev->pdev, ret = xen_pcibk_get_pcifront_dev(psdev->dev, psdev->pdev,
&aer_op->domain, &aer_op->bus, &aer_op->devfn); &aer_op->domain, &aer_op->bus, &aer_op->devfn);
if (!ret) { if (!ret) {
dev_err(&psdev->dev->dev, dev_err(&psdev->dev->dev, "failed to get pcifront device\n");
DRV_NAME ": failed to get pcifront device\n");
return PCI_ERS_RESULT_NONE; return PCI_ERS_RESULT_NONE;
} }
wmb(); wmb();
dev_dbg(&psdev->dev->dev, dev_dbg(&psdev->dev->dev, "aer_op %x dom %x bus %x devfn %x\n",
DRV_NAME ": aer_op %x dom %x bus %x devfn %x\n",
aer_cmd, aer_op->domain, aer_op->bus, aer_op->devfn); aer_cmd, aer_op->domain, aer_op->bus, aer_op->devfn);
/*local flag to mark there's aer request, xen_pcibk callback will use /*local flag to mark there's aer request, xen_pcibk callback will use
* this flag to judge whether we need to check pci-front give aer * this flag to judge whether we need to check pci-front give aer
@ -754,8 +753,7 @@ static pci_ers_result_t common_process(struct pcistub_device *psdev,
if (test_bit(_XEN_PCIF_active, if (test_bit(_XEN_PCIF_active,
(unsigned long *)&sh_info->flags)) { (unsigned long *)&sh_info->flags)) {
dev_dbg(&psdev->dev->dev, dev_dbg(&psdev->dev->dev, "schedule pci_conf service\n");
"schedule pci_conf service in " DRV_NAME "\n");
xen_pcibk_test_and_schedule_op(psdev->pdev); xen_pcibk_test_and_schedule_op(psdev->pdev);
} }
@ -786,13 +784,12 @@ static pci_ers_result_t xen_pcibk_slot_reset(struct pci_dev *dev)
PCI_FUNC(dev->devfn)); PCI_FUNC(dev->devfn));
if (!psdev || !psdev->pdev) { if (!psdev || !psdev->pdev) {
dev_err(&dev->dev, dev_err(&dev->dev, "device is not found/assigned\n");
DRV_NAME " device is not found/assigned\n");
goto end; goto end;
} }
if (!psdev->pdev->sh_info) { if (!psdev->pdev->sh_info) {
dev_err(&dev->dev, DRV_NAME " device is not connected or owned" dev_err(&dev->dev, "device is not connected or owned"
" by HVM, kill it\n"); " by HVM, kill it\n");
kill_domain_by_device(psdev); kill_domain_by_device(psdev);
goto end; goto end;
@ -844,13 +841,12 @@ static pci_ers_result_t xen_pcibk_mmio_enabled(struct pci_dev *dev)
PCI_FUNC(dev->devfn)); PCI_FUNC(dev->devfn));
if (!psdev || !psdev->pdev) { if (!psdev || !psdev->pdev) {
dev_err(&dev->dev, dev_err(&dev->dev, "device is not found/assigned\n");
DRV_NAME " device is not found/assigned\n");
goto end; goto end;
} }
if (!psdev->pdev->sh_info) { if (!psdev->pdev->sh_info) {
dev_err(&dev->dev, DRV_NAME " device is not connected or owned" dev_err(&dev->dev, "device is not connected or owned"
" by HVM, kill it\n"); " by HVM, kill it\n");
kill_domain_by_device(psdev); kill_domain_by_device(psdev);
goto end; goto end;
@ -902,13 +898,12 @@ static pci_ers_result_t xen_pcibk_error_detected(struct pci_dev *dev,
PCI_FUNC(dev->devfn)); PCI_FUNC(dev->devfn));
if (!psdev || !psdev->pdev) { if (!psdev || !psdev->pdev) {
dev_err(&dev->dev, dev_err(&dev->dev, "device is not found/assigned\n");
DRV_NAME " device is not found/assigned\n");
goto end; goto end;
} }
if (!psdev->pdev->sh_info) { if (!psdev->pdev->sh_info) {
dev_err(&dev->dev, DRV_NAME " device is not connected or owned" dev_err(&dev->dev, "device is not connected or owned"
" by HVM, kill it\n"); " by HVM, kill it\n");
kill_domain_by_device(psdev); kill_domain_by_device(psdev);
goto end; goto end;
@ -956,13 +951,12 @@ static void xen_pcibk_error_resume(struct pci_dev *dev)
PCI_FUNC(dev->devfn)); PCI_FUNC(dev->devfn));
if (!psdev || !psdev->pdev) { if (!psdev || !psdev->pdev) {
dev_err(&dev->dev, dev_err(&dev->dev, "device is not found/assigned\n");
DRV_NAME " device is not found/assigned\n");
goto end; goto end;
} }
if (!psdev->pdev->sh_info) { if (!psdev->pdev->sh_info) {
dev_err(&dev->dev, DRV_NAME " device is not connected or owned" dev_err(&dev->dev, "device is not connected or owned"
" by HVM, kill it\n"); " by HVM, kill it\n");
kill_domain_by_device(psdev); kill_domain_by_device(psdev);
goto end; goto end;

View File

@ -6,6 +6,7 @@
*/ */
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#define dev_fmt pr_fmt
#include <linux/moduleparam.h> #include <linux/moduleparam.h>
#include <linux/wait.h> #include <linux/wait.h>
@ -148,7 +149,7 @@ int xen_pcibk_enable_msi(struct xen_pcibk_device *pdev,
int status; int status;
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG DRV_NAME ": %s: enable MSI\n", pci_name(dev)); dev_printk(KERN_DEBUG, &dev->dev, "enable MSI\n");
if (dev->msi_enabled) if (dev->msi_enabled)
status = -EALREADY; status = -EALREADY;
@ -158,9 +159,8 @@ int xen_pcibk_enable_msi(struct xen_pcibk_device *pdev,
status = pci_enable_msi(dev); status = pci_enable_msi(dev);
if (status) { if (status) {
pr_warn_ratelimited("%s: error enabling MSI for guest %u: err %d\n", dev_warn_ratelimited(&dev->dev, "error enabling MSI for guest %u: err %d\n",
pci_name(dev), pdev->xdev->otherend_id, pdev->xdev->otherend_id, status);
status);
op->value = 0; op->value = 0;
return XEN_PCI_ERR_op_failed; return XEN_PCI_ERR_op_failed;
} }
@ -170,8 +170,7 @@ int xen_pcibk_enable_msi(struct xen_pcibk_device *pdev,
op->value = dev->irq ? xen_pirq_from_irq(dev->irq) : 0; op->value = dev->irq ? xen_pirq_from_irq(dev->irq) : 0;
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG DRV_NAME ": %s: MSI: %d\n", pci_name(dev), dev_printk(KERN_DEBUG, &dev->dev, "MSI: %d\n", op->value);
op->value);
dev_data = pci_get_drvdata(dev); dev_data = pci_get_drvdata(dev);
if (dev_data) if (dev_data)
@ -185,8 +184,7 @@ int xen_pcibk_disable_msi(struct xen_pcibk_device *pdev,
struct pci_dev *dev, struct xen_pci_op *op) struct pci_dev *dev, struct xen_pci_op *op)
{ {
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG DRV_NAME ": %s: disable MSI\n", dev_printk(KERN_DEBUG, &dev->dev, "disable MSI\n");
pci_name(dev));
if (dev->msi_enabled) { if (dev->msi_enabled) {
struct xen_pcibk_dev_data *dev_data; struct xen_pcibk_dev_data *dev_data;
@ -199,8 +197,7 @@ int xen_pcibk_disable_msi(struct xen_pcibk_device *pdev,
} }
op->value = dev->irq ? xen_pirq_from_irq(dev->irq) : 0; op->value = dev->irq ? xen_pirq_from_irq(dev->irq) : 0;
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG DRV_NAME ": %s: MSI: %d\n", pci_name(dev), dev_printk(KERN_DEBUG, &dev->dev, "MSI: %d\n", op->value);
op->value);
return 0; return 0;
} }
@ -214,8 +211,7 @@ int xen_pcibk_enable_msix(struct xen_pcibk_device *pdev,
u16 cmd; u16 cmd;
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG DRV_NAME ": %s: enable MSI-X\n", dev_printk(KERN_DEBUG, &dev->dev, "enable MSI-X\n");
pci_name(dev));
if (op->value > SH_INFO_MAX_VEC) if (op->value > SH_INFO_MAX_VEC)
return -EINVAL; return -EINVAL;
@ -249,16 +245,14 @@ int xen_pcibk_enable_msix(struct xen_pcibk_device *pdev,
op->msix_entries[i].vector = op->msix_entries[i].vector =
xen_pirq_from_irq(entries[i].vector); xen_pirq_from_irq(entries[i].vector);
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG DRV_NAME ": %s: " \ dev_printk(KERN_DEBUG, &dev->dev,
"MSI-X[%d]: %d\n", "MSI-X[%d]: %d\n", i,
pci_name(dev), i,
op->msix_entries[i].vector); op->msix_entries[i].vector);
} }
} }
} else } else
pr_warn_ratelimited("%s: error enabling MSI-X for guest %u: err %d!\n", dev_warn_ratelimited(&dev->dev, "error enabling MSI-X for guest %u: err %d!\n",
pci_name(dev), pdev->xdev->otherend_id, pdev->xdev->otherend_id, result);
result);
kfree(entries); kfree(entries);
op->value = result; op->value = result;
@ -274,8 +268,7 @@ int xen_pcibk_disable_msix(struct xen_pcibk_device *pdev,
struct pci_dev *dev, struct xen_pci_op *op) struct pci_dev *dev, struct xen_pci_op *op)
{ {
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG DRV_NAME ": %s: disable MSI-X\n", dev_printk(KERN_DEBUG, &dev->dev, "disable MSI-X\n");
pci_name(dev));
if (dev->msix_enabled) { if (dev->msix_enabled) {
struct xen_pcibk_dev_data *dev_data; struct xen_pcibk_dev_data *dev_data;
@ -292,8 +285,7 @@ int xen_pcibk_disable_msix(struct xen_pcibk_device *pdev,
*/ */
op->value = dev->irq ? xen_pirq_from_irq(dev->irq) : 0; op->value = dev->irq ? xen_pirq_from_irq(dev->irq) : 0;
if (unlikely(verbose_request)) if (unlikely(verbose_request))
printk(KERN_DEBUG DRV_NAME ": %s: MSI-X: %d\n", dev_printk(KERN_DEBUG, &dev->dev, "MSI-X: %d\n", op->value);
pci_name(dev), op->value);
return 0; return 0;
} }
#endif #endif
@ -424,7 +416,7 @@ static irqreturn_t xen_pcibk_guest_interrupt(int irq, void *dev_id)
dev_data->handled++; dev_data->handled++;
if ((dev_data->handled % 1000) == 0) { if ((dev_data->handled % 1000) == 0) {
if (xen_test_irq_shared(irq)) { if (xen_test_irq_shared(irq)) {
pr_info("%s IRQ line is not shared " dev_info(&dev->dev, "%s IRQ line is not shared "
"with other domains. Turning ISR off\n", "with other domains. Turning ISR off\n",
dev_data->irq_name); dev_data->irq_name);
dev_data->ack_intr = 0; dev_data->ack_intr = 0;

View File

@ -7,6 +7,7 @@
*/ */
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#define dev_fmt pr_fmt
#include <linux/list.h> #include <linux/list.h>
#include <linux/slab.h> #include <linux/slab.h>
@ -105,9 +106,8 @@ static int __xen_pcibk_add_pci_dev(struct xen_pcibk_device *pdev,
struct pci_dev_entry, list); struct pci_dev_entry, list);
if (match_slot(dev, t->dev)) { if (match_slot(dev, t->dev)) {
pr_info("vpci: %s: assign to virtual slot %d func %d\n", dev_info(&dev->dev, "vpci: assign to virtual slot %d func %d\n",
pci_name(dev), slot, slot, PCI_FUNC(dev->devfn));
PCI_FUNC(dev->devfn));
list_add_tail(&dev_entry->list, list_add_tail(&dev_entry->list,
&vpci_dev->dev_list[slot]); &vpci_dev->dev_list[slot]);
func = PCI_FUNC(dev->devfn); func = PCI_FUNC(dev->devfn);
@ -119,8 +119,8 @@ static int __xen_pcibk_add_pci_dev(struct xen_pcibk_device *pdev,
/* Assign to a new slot on the virtual PCI bus */ /* Assign to a new slot on the virtual PCI bus */
for (slot = 0; slot < PCI_SLOT_MAX; slot++) { for (slot = 0; slot < PCI_SLOT_MAX; slot++) {
if (list_empty(&vpci_dev->dev_list[slot])) { if (list_empty(&vpci_dev->dev_list[slot])) {
pr_info("vpci: %s: assign to virtual slot %d\n", dev_info(&dev->dev, "vpci: assign to virtual slot %d\n",
pci_name(dev), slot); slot);
list_add_tail(&dev_entry->list, list_add_tail(&dev_entry->list,
&vpci_dev->dev_list[slot]); &vpci_dev->dev_list[slot]);
func = dev->is_virtfn ? 0 : PCI_FUNC(dev->devfn); func = dev->is_virtfn ? 0 : PCI_FUNC(dev->devfn);