From: poza@codeaurora.org
To: Randy Dunlap <rdunlap@infradead.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
Philippe Ombredanne <pombredanne@nexb.com>,
Thomas Gleixner <tglx@linutronix.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Kate Stewart <kstewart@linuxfoundation.org>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
Dongdong Liu <liudongdong3@huawei.com>,
Keith Busch <keith.busch@intel.com>, Wei Zhang <wzhang@fb.com>,
Sinan Kaya <okaya@codeaurora.org>,
Timur Tabi <timur@codeaurora.org>
Subject: Re: [PATCH v9 2/7] PCI/AER: factor out error reporting from AER
Date: Fri, 23 Feb 2018 12:01:26 +0530 [thread overview]
Message-ID: <412cdd104d1e1cd1ca7e0d873c4b5a7b@codeaurora.org> (raw)
In-Reply-To: <e2d8d85a-d044-cece-4da4-4c8e3e4d9ce1@infradead.org>
On 2018-02-23 00:53, Randy Dunlap wrote:
> On 02/21/2018 11:46 PM, Oza Pawandeep wrote:
>
> Hi,
> Just minor stuff:
>
>> diff --git a/drivers/pci/pcie/pcie-err.c b/drivers/pci/pcie/pcie-err.c
>> new file mode 100644
>> index 0000000..a532fe0
>> --- /dev/null
>> +++ b/drivers/pci/pcie/pcie-err.c
>> @@ -0,0 +1,334 @@
>> +// SPDX-License-Identifier: GPL-2.0
>> +/*
>> + * This file implements the error recovery as a core part of PCIe
>> error reporting.
>> + * When a PCIe error is delivered, an error message will be collected
>> and printed
>> + * to console, then, an error recovery procedure will be executed by
>> following
>> + * the PCI error recovery rules.
>> + *
>> + * Copyright (C) 2006 Intel Corp.
>> + * Tom Long Nguyen (tom.l.nguyen@intel.com)
>> + * Zhang Yanmin (yanmin.zhang@intel.com)
>> + *
>> + */
>> +
>> +#include <linux/pci.h>
>> +#include <linux/module.h>
>> +#include <linux/pci.h>
>> +#include <linux/kernel.h>
>> +#include <linux/errno.h>
>> +#include <linux/aer.h>
>> +#include <linux/pcieport_if.h>
>> +#include "portdrv.h"
>
>> +static int report_error_detected(struct pci_dev *dev, void *data)
>> +{
>> + pci_ers_result_t vote;
>> + const struct pci_error_handlers *err_handler;
>> + struct aer_broadcast_data *result_data;
>> +
>> + result_data = (struct aer_broadcast_data *) data;
>> +
>> + device_lock(&dev->dev);
>> + dev->error_state = result_data->state;
>> +
>> + if (!dev->driver ||
>> + !dev->driver->err_handler ||
>> + !dev->driver->err_handler->error_detected) {
>> + if (result_data->state == pci_channel_io_frozen &&
>> + dev->hdr_type != PCI_HEADER_TYPE_BRIDGE) {
>> + /*
>> + * In case of fatal recovery, if one of down-
>> + * stream device has no driver. We might be
>> + * unable to recover because a later insmod
>> + * of a driver for this device is unaware of
>> + * its hw state.
>> + */
>> + dev_printk(KERN_DEBUG, &dev->dev, "device has %s\n",
>> + dev->driver ?
>> + "no error-aware driver" : "no driver");
>
> or:
> dev_printk(KERN_DEBUG, &dev->dev, "device has no%s driver\n",
> dev->driver ? " error-aware" : "");
>
>> + }
>> +
>> + /*
>> + * If there's any device in the subtree that does not
>> + * have an error_detected callback, returning
>> + * PCI_ERS_RESULT_NO_AER_DRIVER prevents calling of
>> + * the subsequent mmio_enabled/slot_reset/resume
>> + * callbacks of "any" device in the subtree. All the
>> + * devices in the subtree are left in the error state
>> + * without recovery.
>> + */
>> +
>> + if (dev->hdr_type != PCI_HEADER_TYPE_BRIDGE)
>> + vote = PCI_ERS_RESULT_NO_AER_DRIVER;
>> + else
>> + vote = PCI_ERS_RESULT_NONE;
>> + } else {
>> + err_handler = dev->driver->err_handler;
>> + vote = err_handler->error_detected(dev, result_data->state);
>> + }
>> +
>> + result_data->result = merge_result(result_data->result, vote);
>> + device_unlock(&dev->dev);
>> + return 0;
>> +}
>
>> +/**
>> + * broadcast_error_message - handle message broadcast to downstream
>> drivers
>> + * @dev: pointer to from where in a hierarchy message is broadcasted
>> down
>
> I would drop ^^ "from" ... is broadcast
> downstream
>
>> + * @state: error state
>> + * @error_mesg: message to print
>> + * @cb: callback to be broadcasted
>
> to be broadcast
>
>> + *
>> + * Invoked during error recovery process. Once being invoked, the
>> content
>> + * of error severity will be broadcasted to all downstream drivers in
>> a
>
> will be broadcast
>
>> + * hierarchy in question.
>> + */
>> +static pci_ers_result_t broadcast_error_message(struct pci_dev *dev,
>> + enum pci_channel_state state,
>> + char *error_mesg,
>> + int (*cb)(struct pci_dev *, void *))
>> +{
>> + struct aer_broadcast_data result_data;
Thanks for the comments, will take care of it.
next prev parent reply other threads:[~2018-02-23 6:31 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-22 7:46 [PATCH v9 0/7] Address error and recovery for AER and DPC Oza Pawandeep
2018-02-22 7:46 ` [PATCH v9 1/7] PCI/AER: Rename error recovery to generic pci naming Oza Pawandeep
2018-02-22 7:46 ` [PATCH v9 2/7] PCI/AER: factor out error reporting from AER Oza Pawandeep
2018-02-22 19:23 ` Randy Dunlap
2018-02-23 6:31 ` poza [this message]
2018-02-23 6:36 ` poza
2018-02-22 7:46 ` [PATCH v9 3/7] PCI/ERR: add mutex to synchronize recovery Oza Pawandeep
2018-02-22 7:46 ` [PATCH v9 4/7] PCI/DPC: Unify and plumb error handling into DPC Oza Pawandeep
2018-02-22 19:23 ` Randy Dunlap
2018-02-23 5:20 ` poza
2018-02-22 7:46 ` [PATCH v9 5/7] PCI/AER: Unify aer error defines at single space Oza Pawandeep
2018-02-22 7:46 ` [PATCH v9 6/7] PCI: Unify wait for link active into generic pci Oza Pawandeep
2018-02-22 7:46 ` [PATCH v9 7/7] PCI/DPC: Enumerate the devices after DPC trigger event Oza Pawandeep
2018-02-22 19:23 ` Randy Dunlap
2018-02-23 5:22 ` poza
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=412cdd104d1e1cd1ca7e0d873c4b5a7b@codeaurora.org \
--to=poza@codeaurora.org \
--cc=bhelgaas@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=keith.busch@intel.com \
--cc=kstewart@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=liudongdong3@huawei.com \
--cc=okaya@codeaurora.org \
--cc=pombredanne@nexb.com \
--cc=rdunlap@infradead.org \
--cc=tglx@linutronix.de \
--cc=timur@codeaurora.org \
--cc=wzhang@fb.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.