From: Bjorn Helgaas <helgaas@kernel.org>
To: fred@fredlawl.com
Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
mika.westerberg@linux.intel.com, lukas@wunner.de,
andriy.shevchenko@linux.intel.com, keith.busch@intel.com,
mr.nuke.me@gmail.com, liudongdong3@huawei.com,
thesven73@gmail.com
Subject: Re: [PATCH 1/4] PCI: Replace dev_*() printk wrappers with pci_*() printk wrappers
Date: Sun, 28 Apr 2019 19:02:58 -0500 [thread overview]
Message-ID: <20190429000258.GK14616@google.com> (raw)
In-Reply-To: <20190427191304.32502-2-fred@fredlawl.com>
On Sat, Apr 27, 2019 at 02:13:01PM -0500, fred@fredlawl.com wrote:
> From: Frederick Lawler <fred@fredlawl.com>
>
> Replace remaining instances of dev_*() printk wrappers with pci_*()
> printk wrappers. No functional change intended.
>
> Signed-off-by: Frederick Lawler <fred@fredlawl.com>
> ---
> drivers/pci/pcie/aer.c | 13 ++++++-------
> drivers/pci/pcie/aer_inject.c | 4 ++--
> drivers/pci/pcie/dpc.c | 27 ++++++++++++---------------
> 3 files changed, 20 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
> index f8fc2114ad39..224d878a28b4 100644
> --- a/drivers/pci/pcie/aer.c
> +++ b/drivers/pci/pcie/aer.c
> @@ -964,8 +964,7 @@ static bool find_source_device(struct pci_dev *parent,
> pci_walk_bus(parent->subordinate, find_device_iter, e_info);
>
> if (!e_info->error_dev_num) {
> - pci_printk(KERN_DEBUG, parent, "can't find device of ID%04x\n",
> - e_info->id);
> + pci_dbg(parent, "can't find device of ID%04x\n", e_info->id);
I don't like dev_dbg() and pci_dbg() because the behavior depends on
CONFIG_DYNAMIC_DEBUG, DEBUG, etc.
They may be fine for development, but for production, I want to be
able to users for "a complete dmesg log". I don't want to have to ask
them to "please rebuild your kernel with CONFIG_DYNAMIC_DEBUG=n and
boot with 'dyndbg=xxx'"
For that reason I prefer the "pci_printk(KERN_DEBUG)" because that
output always goes to the dmesg log.
But "pci_printk(KERN_DEBUG)" is definitely ugly. I think the way to
fix that is to convert it to "pci_info()" instead.
> return false;
> }
> return true;
> @@ -1377,10 +1376,11 @@ static int aer_probe(struct pcie_device *dev)
> int status;
> struct aer_rpc *rpc;
> struct device *device = &dev->device;
> + struct pci_dev *pdev = dev->port;
>
> rpc = devm_kzalloc(device, sizeof(struct aer_rpc), GFP_KERNEL);
> if (!rpc) {
> - dev_printk(KERN_DEBUG, device, "alloc AER rpc failed\n");
> + pci_dbg(pdev, "alloc AER rpc failed\n");
This hunk converts from using the pcie_device to the pci_dev, so it
belongs in a different patch.
> return -ENOMEM;
> }
> rpc->rpd = dev->port;
> @@ -1389,13 +1389,12 @@ static int aer_probe(struct pcie_device *dev)
> status = devm_request_threaded_irq(device, dev->irq, aer_irq, aer_isr,
> IRQF_SHARED, "aerdrv", dev);
> if (status) {
> - dev_printk(KERN_DEBUG, device, "request AER IRQ %d failed\n",
> - dev->irq);
> + pci_dbg(pdev, "request AER IRQ %d failed\n", dev->irq);
> return status;
This one also.
> }
>
> aer_enable_rootport(rpc);
> - dev_info(device, "AER enabled with IRQ %d\n", dev->irq);
> + pci_info(pdev, "AER enabled with IRQ %d\n", dev->irq);
And this, and many others below. *This* patch should only convert
- pci_printk(KERN_DEBUG, pdev, ...)
+ pci_info(pdev, ...)
and
- dev_printk(KERN_DEBUG, pcie_dev, ...)
+ dev_info(pcie_dev, ...)
> return 0;
> }
>
> @@ -1419,7 +1418,7 @@ static pci_ers_result_t aer_root_reset(struct pci_dev *dev)
> pci_write_config_dword(dev, pos + PCI_ERR_ROOT_COMMAND, reg32);
>
> rc = pci_bus_error_reset(dev);
> - pci_printk(KERN_DEBUG, dev, "Root Port link has been reset\n");
> + pci_dbg(dev, "Root Port link has been reset\n");
>
> /* Clear Root Error Status */
> pci_read_config_dword(dev, pos + PCI_ERR_ROOT_STATUS, ®32);
> diff --git a/drivers/pci/pcie/aer_inject.c b/drivers/pci/pcie/aer_inject.c
> index 95d4759664b3..610b617ae600 100644
> --- a/drivers/pci/pcie/aer_inject.c
> +++ b/drivers/pci/pcie/aer_inject.c
> @@ -460,12 +460,12 @@ static int aer_inject(struct aer_error_inj *einj)
> if (device) {
> edev = to_pcie_device(device);
> if (!get_service_data(edev)) {
> - dev_warn(&edev->device,
> + pci_warn(edev->port,
> "aer_inject: AER service is not initialized\n");
> ret = -EPROTONOSUPPORT;
> goto out_put;
> }
> - dev_info(&edev->device,
> + pci_info(edev->port,
> "aer_inject: Injecting errors %08x/%08x into device %s\n",
> einj->cor_status, einj->uncor_status, pci_name(dev));
> local_irq_disable();
> diff --git a/drivers/pci/pcie/dpc.c b/drivers/pci/pcie/dpc.c
> index 7b77754a82de..72659286191b 100644
> --- a/drivers/pci/pcie/dpc.c
> +++ b/drivers/pci/pcie/dpc.c
> @@ -100,7 +100,6 @@ static int dpc_wait_rp_inactive(struct dpc_dev *dpc)
> {
> unsigned long timeout = jiffies + HZ;
> struct pci_dev *pdev = dpc->dev->port;
> - struct device *dev = &dpc->dev->device;
> u16 cap = dpc->cap_pos, status;
>
> pci_read_config_word(pdev, cap + PCI_EXP_DPC_STATUS, &status);
> @@ -110,7 +109,7 @@ static int dpc_wait_rp_inactive(struct dpc_dev *dpc)
> pci_read_config_word(pdev, cap + PCI_EXP_DPC_STATUS, &status);
> }
> if (status & PCI_EXP_DPC_RP_BUSY) {
> - dev_warn(dev, "DPC root port still busy\n");
> + pci_warn(pdev, "DPC root port still busy\n");
> return -EBUSY;
> }
> return 0;
> @@ -148,7 +147,6 @@ static pci_ers_result_t dpc_reset_link(struct pci_dev *pdev)
>
> static void dpc_process_rp_pio_error(struct dpc_dev *dpc)
> {
> - struct device *dev = &dpc->dev->device;
> struct pci_dev *pdev = dpc->dev->port;
> u16 cap = dpc->cap_pos, dpc_status, first_error;
> u32 status, mask, sev, syserr, exc, dw0, dw1, dw2, dw3, log, prefix;
> @@ -156,13 +154,13 @@ static void dpc_process_rp_pio_error(struct dpc_dev *dpc)
>
> pci_read_config_dword(pdev, cap + PCI_EXP_DPC_RP_PIO_STATUS, &status);
> pci_read_config_dword(pdev, cap + PCI_EXP_DPC_RP_PIO_MASK, &mask);
> - dev_err(dev, "rp_pio_status: %#010x, rp_pio_mask: %#010x\n",
> + pci_err(pdev, "rp_pio_status: %#010x, rp_pio_mask: %#010x\n",
> status, mask);
>
> pci_read_config_dword(pdev, cap + PCI_EXP_DPC_RP_PIO_SEVERITY, &sev);
> pci_read_config_dword(pdev, cap + PCI_EXP_DPC_RP_PIO_SYSERROR, &syserr);
> pci_read_config_dword(pdev, cap + PCI_EXP_DPC_RP_PIO_EXCEPTION, &exc);
> - dev_err(dev, "RP PIO severity=%#010x, syserror=%#010x, exception=%#010x\n",
> + pci_err(pdev, "RP PIO severity=%#010x, syserror=%#010x, exception=%#010x\n",
> sev, syserr, exc);
>
> /* Get First Error Pointer */
> @@ -171,7 +169,7 @@ static void dpc_process_rp_pio_error(struct dpc_dev *dpc)
>
> for (i = 0; i < ARRAY_SIZE(rp_pio_error_string); i++) {
> if ((status & ~mask) & (1 << i))
> - dev_err(dev, "[%2d] %s%s\n", i, rp_pio_error_string[i],
> + pci_err(pdev, "[%2d] %s%s\n", i, rp_pio_error_string[i],
> first_error == i ? " (First)" : "");
> }
>
> @@ -185,18 +183,18 @@ static void dpc_process_rp_pio_error(struct dpc_dev *dpc)
> &dw2);
> pci_read_config_dword(pdev, cap + PCI_EXP_DPC_RP_PIO_HEADER_LOG + 12,
> &dw3);
> - dev_err(dev, "TLP Header: %#010x %#010x %#010x %#010x\n",
> + pci_err(pdev, "TLP Header: %#010x %#010x %#010x %#010x\n",
> dw0, dw1, dw2, dw3);
>
> if (dpc->rp_log_size < 5)
> goto clear_status;
> pci_read_config_dword(pdev, cap + PCI_EXP_DPC_RP_PIO_IMPSPEC_LOG, &log);
> - dev_err(dev, "RP PIO ImpSpec Log %#010x\n", log);
> + pci_err(pdev, "RP PIO ImpSpec Log %#010x\n", log);
>
> for (i = 0; i < dpc->rp_log_size - 5; i++) {
> pci_read_config_dword(pdev,
> cap + PCI_EXP_DPC_RP_PIO_TLPPREFIX_LOG, &prefix);
> - dev_err(dev, "TLP Prefix Header: dw%d, %#010x\n", i, prefix);
> + pci_err(pdev, "TLP Prefix Header: dw%d, %#010x\n", i, prefix);
> }
> clear_status:
> pci_write_config_dword(pdev, cap + PCI_EXP_DPC_RP_PIO_STATUS, status);
> @@ -229,18 +227,17 @@ static irqreturn_t dpc_handler(int irq, void *context)
> struct aer_err_info info;
> struct dpc_dev *dpc = context;
> struct pci_dev *pdev = dpc->dev->port;
> - struct device *dev = &dpc->dev->device;
> u16 cap = dpc->cap_pos, status, source, reason, ext_reason;
>
> pci_read_config_word(pdev, cap + PCI_EXP_DPC_STATUS, &status);
> pci_read_config_word(pdev, cap + PCI_EXP_DPC_SOURCE_ID, &source);
>
> - dev_info(dev, "DPC containment event, status:%#06x source:%#06x\n",
> + pci_info(pdev, "DPC containment event, status:%#06x source:%#06x\n",
> status, source);
>
> reason = (status & PCI_EXP_DPC_STATUS_TRIGGER_RSN) >> 1;
> ext_reason = (status & PCI_EXP_DPC_STATUS_TRIGGER_RSN_EXT) >> 5;
> - dev_warn(dev, "DPC %s detected\n",
> + pci_warn(pdev, "DPC %s detected\n",
> (reason == 0) ? "unmasked uncorrectable error" :
> (reason == 1) ? "ERR_NONFATAL" :
> (reason == 2) ? "ERR_FATAL" :
> @@ -307,7 +304,7 @@ static int dpc_probe(struct pcie_device *dev)
> dpc_handler, IRQF_SHARED,
> "pcie-dpc", dpc);
> if (status) {
> - dev_warn(device, "request IRQ%d failed: %d\n", dev->irq,
> + pci_warn(pdev, "request IRQ%d failed: %d\n", dev->irq,
> status);
> return status;
> }
> @@ -319,7 +316,7 @@ static int dpc_probe(struct pcie_device *dev)
> if (dpc->rp_extensions) {
> dpc->rp_log_size = (cap & PCI_EXP_DPC_RP_PIO_LOG_SIZE) >> 8;
> if (dpc->rp_log_size < 4 || dpc->rp_log_size > 9) {
> - dev_err(device, "RP PIO log size %u is invalid\n",
> + pci_err(pdev, "RP PIO log size %u is invalid\n",
> dpc->rp_log_size);
> dpc->rp_log_size = 0;
> }
> @@ -328,7 +325,7 @@ static int dpc_probe(struct pcie_device *dev)
> ctl = (ctl & 0xfff4) | PCI_EXP_DPC_CTL_EN_FATAL | PCI_EXP_DPC_CTL_INT_EN;
> pci_write_config_word(pdev, dpc->cap_pos + PCI_EXP_DPC_CTL, ctl);
>
> - dev_info(device, "DPC error containment capabilities: Int Msg #%d, RPExt%c PoisonedTLP%c SwTrigger%c RP PIO Log %d, DL_ActiveErr%c\n",
> + pci_info(pdev, "DPC error containment capabilities: Int Msg #%d, RPExt%c PoisonedTLP%c SwTrigger%c RP PIO Log %d, DL_ActiveErr%c\n",
> cap & PCI_EXP_DPC_IRQ, FLAG(cap, PCI_EXP_DPC_CAP_RP_EXT),
> FLAG(cap, PCI_EXP_DPC_CAP_POISONED_TLP),
> FLAG(cap, PCI_EXP_DPC_CAP_SW_TRIGGER), dpc->rp_log_size,
> --
> 2.17.1
>
next prev parent reply other threads:[~2019-04-29 0:03 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-27 19:13 [PATCH 0/4] PCI: Use PCIe service name in dmesg logs fred
2019-04-27 19:13 ` [PATCH 1/4] PCI: Replace dev_*() printk wrappers with pci_*() printk wrappers fred
2019-04-28 15:43 ` Andy Shevchenko
2019-04-30 22:25 ` Frederick Lawler
2019-04-29 0:02 ` Bjorn Helgaas [this message]
2019-04-29 0:52 ` Bjorn Helgaas
2019-04-30 22:26 ` Frederick Lawler
2019-04-27 19:13 ` [PATCH 2/4] PCI: pciehp: Replace ctrl_*() with pci_*() fred
2019-04-27 20:03 ` Lukas Wunner
2019-04-29 0:36 ` Bjorn Helgaas
2019-04-27 19:13 ` [PATCH 3/4] PCI: pciehp: Remove unused macro definitions fred
2019-04-28 15:55 ` Andy Shevchenko
2019-04-29 0:13 ` Bjorn Helgaas
2019-04-27 19:13 ` [PATCH 4/4] PCI/portdrv: Add dev_fmt() to port drivers fred
2019-04-29 0:17 ` Bjorn Helgaas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190429000258.GK14616@google.com \
--to=helgaas@kernel.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=fred@fredlawl.com \
--cc=keith.busch@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=liudongdong3@huawei.com \
--cc=lukas@wunner.de \
--cc=mika.westerberg@linux.intel.com \
--cc=mr.nuke.me@gmail.com \
--cc=thesven73@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.