All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: Oza Pawandeep <poza@codeaurora.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 v10 4/7] PCI/DPC: Unify and plumb error handling into DPC
Date: Thu, 22 Feb 2018 10:39:54 -0800	[thread overview]
Message-ID: <20180222183954.GD6267@infradead.org> (raw)
In-Reply-To: <1519315332-26852-5-git-send-email-poza@codeaurora.org>

On Thu, Feb 22, 2018 at 09:32:09PM +0530, Oza Pawandeep wrote:
> Current DPC driver does not do recovery, e.g. calling end-point's driver's
> callbacks, which sanitize the sw.
> 
> DPC driver implements link_reset callback, and calls pci_do_recovery.
> 
> Signed-off-by: Oza Pawandeep <poza@codeaurora.org>
> 
> diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
> index a5a79f0..124f42e 100644
> --- a/drivers/pci/pci.h
> +++ b/drivers/pci/pci.h
> @@ -343,6 +343,8 @@ static inline resource_size_t pci_resource_alignment(struct pci_dev *dev,
>  void pci_enable_acs(struct pci_dev *dev);
>  
>  /* PCI error reporting and recovery */
> +#define DPC_FATAL	4
> +
>  void pci_do_recovery(struct pci_dev *dev, int severity);
>  
>  #ifdef CONFIG_PCIEASPM
> diff --git a/drivers/pci/pcie/pcie-dpc.c b/drivers/pci/pcie/pcie-dpc.c
> index 38e40c6..208b427 100644
> --- a/drivers/pci/pcie/pcie-dpc.c
> +++ b/drivers/pci/pcie/pcie-dpc.c
> @@ -13,6 +13,7 @@
>  #include <linux/pcieport_if.h>
>  #include "../pci.h"
>  #include "aer/aerdrv.h"
> +#include "portdrv.h"
>  
>  struct dpc_dev {
>  	struct pcie_device	*dev;
> @@ -45,6 +46,60 @@ struct dpc_dev {
>  	"Memory Request Completion Timeout",		 /* Bit Position 18 */
>  };
>  
> +static int find_dpc_dev_iter(struct device *device, void *data)
> +{
> +	struct pcie_port_service_driver *service_driver;
> +	struct device **dev;
> +
> +	dev = (struct device **) data;
> +
> +	if (device->bus == &pcie_port_bus_type && device->driver) {
> +		service_driver = to_service_driver(device->driver);

Please move the initial assignment to the declaration line to
clean this up a bit:

	struct device **dev = (struct device **)data;

Same thing happens a couple more times in this patch.

> +EXPORT_SYMBOL(pci_find_dpc_service);

EXPORT_SYMBOL_GPL for PCI layer internals again - and ditto for
probably about everything in this series.

>  #if IS_ENABLED(CONFIG_PCIEAER)
> -	/* Use the aer driver of the component firstly */
> -	driver = pci_find_aer_service(udev);
> +	if ((severity == AER_FATAL) ||
> +	    (severity == AER_NONFATAL) ||
> +	    (severity == AER_CORRECTABLE))
> +		driver = pci_find_aer_service(udev);
>  #endif

No need for the inner braces here.

> -	if (severity == AER_FATAL)
> +	if ((severity == AER_FATAL) ||
> +	    (severity == DPC_FATAL))
>  		state = pci_channel_io_frozen;
>  	else
>  		state = pci_channel_io_normal;

Same here and a few more times below.

  reply	other threads:[~2018-02-22 18:39 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-22 16:02 [PATCH v10 0/7] Address error and recovery for AER and DPC Oza Pawandeep
2018-02-22 16:02 ` [PATCH v10 1/7] PCI/AER: Rename error recovery to generic pci naming Oza Pawandeep
2018-02-22 18:34   ` Christoph Hellwig
2018-02-23  5:24     ` poza
2018-02-22 16:02 ` [PATCH v10 2/7] PCI/AER: factor out error reporting from AER Oza Pawandeep
2018-02-22 18:34   ` Christoph Hellwig
2018-02-22 18:42     ` David Laight
2018-02-22 16:02 ` [PATCH v10 3/7] PCI/ERR: add mutex to synchronize recovery Oza Pawandeep
2018-02-22 18:36   ` Christoph Hellwig
2018-02-23  5:27     ` poza
2018-02-22 16:02 ` [PATCH v10 4/7] PCI/DPC: Unify and plumb error handling into DPC Oza Pawandeep
2018-02-22 18:39   ` Christoph Hellwig [this message]
2018-02-23  5:28     ` poza
2018-02-22 16:02 ` [PATCH v10 5/7] PCI/AER: Unify aer error defines at single space Oza Pawandeep
2018-02-22 16:06   ` poza
2018-02-22 16:02 ` [PATCH v10 6/7] PCI: Unify wait for link active into generic pci Oza Pawandeep
2018-02-22 18:43   ` Christoph Hellwig
2018-02-23  6:53     ` poza
2018-02-22 16:02 ` [PATCH v10 7/7] PCI/DPC: Enumerate the devices after DPC trigger event Oza Pawandeep

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=20180222183954.GD6267@infradead.org \
    --to=hch@infradead.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=poza@codeaurora.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.