stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Sam Bobroff <sbobroff@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 4.4 10/36] powerpc/eeh: Clear stale EEH_DEV_NO_HANDLER flag
Date: Sun,  6 Oct 2019 19:18:52 +0200	[thread overview]
Message-ID: <20191006171047.372880097@linuxfoundation.org> (raw)
In-Reply-To: <20191006171038.266461022@linuxfoundation.org>

From: Sam Bobroff <sbobroff@linux.ibm.com>

[ Upstream commit aa06e3d60e245284d1e55497eb3108828092818d ]

The EEH_DEV_NO_HANDLER flag is used by the EEH system to prevent the
use of driver callbacks in drivers that have been bound part way
through the recovery process. This is necessary to prevent later stage
handlers from being called when the earlier stage handlers haven't,
which can be confusing for drivers.

However, the flag is set for all devices that are added after boot
time and only cleared at the end of the EEH recovery process. This
results in hot plugged devices erroneously having the flag set during
the first recovery after they are added (causing their driver's
handlers to be incorrectly ignored).

To remedy this, clear the flag at the beginning of recovery
processing. The flag is still cleared at the end of recovery
processing, although it is no longer really necessary.

Also clear the flag during eeh_handle_special_event(), for the same
reasons.

Signed-off-by: Sam Bobroff <sbobroff@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/b8ca5629d27de74c957d4f4b250177d1b6fc4bbd.1565930772.git.sbobroff@linux.ibm.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/powerpc/kernel/eeh_driver.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/kernel/eeh_driver.c b/arch/powerpc/kernel/eeh_driver.c
index 9837c98caabe9..045038469295d 100644
--- a/arch/powerpc/kernel/eeh_driver.c
+++ b/arch/powerpc/kernel/eeh_driver.c
@@ -675,6 +675,10 @@ static bool eeh_handle_normal_event(struct eeh_pe *pe)
 	pr_warn("EEH: This PCI device has failed %d times in the last hour\n",
 		pe->freeze_count);
 
+	eeh_for_each_pe(pe, tmp_pe)
+		eeh_pe_for_each_dev(tmp_pe, edev, tmp)
+			edev->mode &= ~EEH_DEV_NO_HANDLER;
+
 	/* Walk the various device drivers attached to this slot through
 	 * a reset sequence, giving each an opportunity to do what it needs
 	 * to accomplish the reset.  Each child gets a report of the
@@ -840,7 +844,8 @@ perm_error:
 
 static void eeh_handle_special_event(void)
 {
-	struct eeh_pe *pe, *phb_pe;
+	struct eeh_pe *pe, *phb_pe, *tmp_pe;
+	struct eeh_dev *edev, *tmp_edev;
 	struct pci_bus *bus;
 	struct pci_controller *hose;
 	unsigned long flags;
@@ -919,6 +924,10 @@ static void eeh_handle_special_event(void)
 				    (phb_pe->state & EEH_PE_RECOVERING))
 					continue;
 
+				eeh_for_each_pe(pe, tmp_pe)
+					eeh_pe_for_each_dev(tmp_pe, edev, tmp_edev)
+						edev->mode &= ~EEH_DEV_NO_HANDLER;
+
 				/* Notify all devices to be down */
 				eeh_pe_state_clear(pe, EEH_PE_PRI_BUS);
 				bus = eeh_pe_bus_get(phb_pe);
-- 
2.20.1




  parent reply	other threads:[~2019-10-06 17:19 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-06 17:18 [PATCH 4.4 00/36] 4.4.196-stable review Greg Kroah-Hartman
2019-10-06 17:18 ` [PATCH 4.4 01/36] video: ssd1307fb: Start page range at page_offset Greg Kroah-Hartman
2019-10-06 17:18 ` [PATCH 4.4 02/36] gpu: drm: radeon: Fix a possible null-pointer dereference in radeon_connector_set_property() Greg Kroah-Hartman
2019-10-06 17:18 ` [PATCH 4.4 03/36] ipmi_si: Only schedule continuously in the thread in maintenance mode Greg Kroah-Hartman
2019-10-06 17:18 ` [PATCH 4.4 04/36] clk: qoriq: Fix -Wunused-const-variable Greg Kroah-Hartman
2019-10-06 17:18 ` [PATCH 4.4 05/36] clk: sirf: Dont reference clk_init_data after registration Greg Kroah-Hartman
2019-10-06 17:18 ` [PATCH 4.4 06/36] powerpc/rtas: use device model APIs and serialization during LPM Greg Kroah-Hartman
2019-10-06 17:18 ` [PATCH 4.4 07/36] powerpc/futex: Fix warning: oldval may be used uninitialized in this function Greg Kroah-Hartman
2019-10-06 17:18 ` [PATCH 4.4 08/36] powerpc/pseries/mobility: use cond_resched when updating device tree Greg Kroah-Hartman
2019-10-06 17:18 ` [PATCH 4.4 09/36] pinctrl: tegra: Fix write barrier placement in pmx_writel Greg Kroah-Hartman
2019-10-06 17:18 ` Greg Kroah-Hartman [this message]
2019-10-06 17:18 ` [PATCH 4.4 11/36] vfio_pci: Restore original state on release Greg Kroah-Hartman
2019-10-06 17:18 ` [PATCH 4.4 12/36] powerpc/64s/exception: machine check use correct cfar for late handler Greg Kroah-Hartman
2019-10-06 17:18 ` [PATCH 4.4 13/36] powerpc/pseries: correctly track irq state in default idle Greg Kroah-Hartman
2019-10-06 17:18 ` [PATCH 4.4 14/36] scsi: core: Reduce memory required for SCSI logging Greg Kroah-Hartman
2019-10-06 17:18 ` [PATCH 4.4 15/36] mfd: intel-lpss: Remove D3cold delay Greg Kroah-Hartman
2019-10-06 17:18 ` [PATCH 4.4 16/36] ARM: 8898/1: mm: Dont treat faults reported from cache maintenance as writes Greg Kroah-Hartman
2019-10-06 17:18 ` [PATCH 4.4 17/36] HID: apple: Fix stuck function keys when using FN Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 18/36] security: smack: Fix possible null-pointer dereferences in smack_socket_sock_rcv_skb() Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 19/36] fat: work around race with userspaces read via blockdev while mounting Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 20/36] hypfs: Fix error number left in struct pointer member Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 21/36] ocfs2: wait for recovering done after direct unlock request Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 22/36] kmemleak: increase DEBUG_KMEMLEAK_EARLY_LOG_SIZE default to 16K Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 23/36] ANDROID: binder: remove waitqueue when thread exits Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 24/36] ANDROID: binder: synchronize_rcu() when using POLLFREE Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 25/36] hso: fix NULL-deref on tty open Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 26/36] ipv6: drop incoming packets having a v4mapped source address Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 27/36] net: ipv4: avoid mixed n_redirects and rate_tokens usage Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 28/36] net: qlogic: Fix memory leak in ql_alloc_large_buffers Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 29/36] nfc: fix memory leak in llcp_sock_bind() Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 30/36] sch_dsmark: fix potential NULL deref in dsmark_init() Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 31/36] xen-netfront: do not use ~0U as error return value for xennet_fill_frags() Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 32/36] net/rds: Fix error handling in rds_ib_add_one() Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 33/36] sch_cbq: validate TCA_CBQ_WRROPT to avoid crash Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 34/36] Smack: Dont ignore other bprm->unsafe flags if LSM_UNSAFE_PTRACE is set Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 35/36] smack: use GFP_NOFS while holding inode_smack::smk_lock Greg Kroah-Hartman
2019-10-06 17:19 ` [PATCH 4.4 36/36] NFC: fix attrs checks in netlink interface Greg Kroah-Hartman
2019-10-06 22:01 ` [PATCH 4.4 00/36] 4.4.196-stable review kernelci.org bot
2019-10-07 10:07 ` Jon Hunter
2019-10-07 12:53 ` Guenter Roeck
2019-10-07 14:49   ` Greg Kroah-Hartman
2019-10-07 22:36     ` Guenter Roeck
2019-10-08  5:14       ` Greg Kroah-Hartman
2019-10-07 23:07     ` Sasha Levin
2019-10-07 23:16       ` Guenter Roeck
2019-10-08  1:49         ` Sasha Levin
2019-10-08  3:13           ` Guenter Roeck
2019-10-07 14:31 ` Guenter Roeck
2019-10-07 16:37 ` Daniel Díaz

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=20191006171047.372880097@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=sashal@kernel.org \
    --cc=sbobroff@linux.ibm.com \
    --cc=stable@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).