From: Sasha Levin <Alexander.Levin@microsoft.com>
To: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"stable@vger.kernel.org" <stable@vger.kernel.org>
Cc: Chris Wilson <chris@chris-wilson.co.uk>,
Jani Nikula <jani.nikula@intel.com>,
Jeff Kirsher <jeffrey.t.kirsher@intel.com>,
Sasha Levin <Alexander.Levin@microsoft.com>
Subject: [PATCH AUTOSEL for 3.18 077/102] e1000e: Undo e1000e_pm_freeze if __e1000_shutdown fails
Date: Mon, 19 Mar 2018 16:13:05 +0000 [thread overview]
Message-ID: <20180319161117.17833-77-alexander.levin@microsoft.com> (raw)
In-Reply-To: <20180319161117.17833-1-alexander.levin@microsoft.com>
From: Chris Wilson <chris@chris-wilson.co.uk>
[ Upstream commit 833521ebc65b1c3092e5c0d8a97092f98eec595d ]
An error during suspend (e100e_pm_suspend),
[ 429.994338] ACPI : EC: event blocked
[ 429.994633] e1000e: EEE TX LPI TIMER: 00000011
[ 430.955451] pci_pm_suspend(): e1000e_pm_suspend+0x0/0x30 [e1000e] returns -2
[ 430.955454] dpm_run_callback(): pci_pm_suspend+0x0/0x140 returns -2
[ 430.955458] PM: Device 0000:00:19.0 failed to suspend async: error -2
[ 430.955581] PM: Some devices failed to suspend, or early wake event detected
[ 430.957709] ACPI : EC: event unblocked
lead to complete failure:
[ 432.585002] ------------[ cut here ]------------
[ 432.585013] WARNING: CPU: 3 PID: 8372 at kernel/irq/manage.c:1478 __free_irq+0x9f/0x280
[ 432.585015] Trying to free already-free IRQ 20
[ 432.585016] Modules linked in: cdc_ncm usbnet x86_pkg_temp_thermal intel_powerclamp coretemp mii crct10dif_pclmul crc32_pclmul ghash_clmulni_intel snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hwdep lpc_ich snd_hda_core snd_pcm mei_me mei sdhci_pci sdhci i915 mmc_core e1000e ptp pps_core prime_numbers
[ 432.585042] CPU: 3 PID: 8372 Comm: kworker/u16:40 Tainted: G U 4.10.0-rc8-CI-Patchwork_3870+ #1
[ 432.585044] Hardware name: LENOVO 2356GCG/2356GCG, BIOS G7ET31WW (1.13 ) 07/02/2012
[ 432.585050] Workqueue: events_unbound async_run_entry_fn
[ 432.585051] Call Trace:
[ 432.585058] dump_stack+0x67/0x92
[ 432.585062] __warn+0xc6/0xe0
[ 432.585065] warn_slowpath_fmt+0x4a/0x50
[ 432.585070] ? _raw_spin_lock_irqsave+0x49/0x60
[ 432.585072] __free_irq+0x9f/0x280
[ 432.585075] free_irq+0x34/0x80
[ 432.585089] e1000_free_irq+0x65/0x70 [e1000e]
[ 432.585098] e1000e_pm_freeze+0x7a/0xb0 [e1000e]
[ 432.585106] e1000e_pm_suspend+0x21/0x30 [e1000e]
[ 432.585113] pci_pm_suspend+0x71/0x140
[ 432.585118] dpm_run_callback+0x6f/0x330
[ 432.585122] ? pci_pm_freeze+0xe0/0xe0
[ 432.585125] __device_suspend+0xea/0x330
[ 432.585128] async_suspend+0x1a/0x90
[ 432.585132] async_run_entry_fn+0x34/0x160
[ 432.585137] process_one_work+0x1f4/0x6d0
[ 432.585140] ? process_one_work+0x16e/0x6d0
[ 432.585143] worker_thread+0x49/0x4a0
[ 432.585145] kthread+0x107/0x140
[ 432.585148] ? process_one_work+0x6d0/0x6d0
[ 432.585150] ? kthread_create_on_node+0x40/0x40
[ 432.585154] ret_from_fork+0x2e/0x40
[ 432.585156] ---[ end trace 6712df7f8c4b9124 ]---
The unwind failures stems from commit 2800209994f8 ("e1000e: Refactor PM
flows"), but it may be a later patch that introduced the non-recoverable
behaviour.
Fixes: 2800209994f8 ("e1000e: Refactor PM flows")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99847
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
---
drivers/net/ethernet/intel/e1000e/netdev.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index 15099a58fcee..383e445116c9 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -6357,12 +6357,17 @@ static int e1000e_pm_thaw(struct device *dev)
static int e1000e_pm_suspend(struct device *dev)
{
struct pci_dev *pdev = to_pci_dev(dev);
+ int rc;
e1000e_flush_lpic(pdev);
e1000e_pm_freeze(dev);
- return __e1000_shutdown(pdev, false);
+ rc = __e1000_shutdown(pdev, false);
+ if (rc)
+ e1000e_pm_thaw(dev);
+
+ return rc;
}
static int e1000e_pm_resume(struct device *dev)
--
2.14.1
next prev parent reply other threads:[~2018-03-19 16:14 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-19 16:11 [PATCH AUTOSEL for 3.18 001/102] NFSv4.1: RECLAIM_COMPLETE must handle NFS4ERR_CONN_NOT_BOUND_TO_SESSION Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 002/102] IB/srpt: Fix abort handling Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 003/102] af_key: Fix slab-out-of-bounds in pfkey_compile_policy Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 004/102] mac80211: bail out from prep_connection() if a reconfig is ongoing Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 005/102] bna: Avoid reading past end of buffer Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 006/102] qlge: " Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 007/102] net: ethernet: ti: cpsw: adjust cpsw fifos depth for fullduplex flow control Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 008/102] lockd: fix lockd shutdown race Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 009/102] pidns: disable pid allocation if pid_ns_prepare_proc() is failed in alloc_pid() Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 010/102] s390: move _text symbol to address higher than zero Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 011/102] net/mlx4_en: Avoid adding steering rules with invalid ring Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 012/102] CIFS: silence lockdep splat in cifs_relock_file() Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 013/102] net: qca_spi: Fix alignment issues in rx path Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 014/102] netxen_nic: set rcode to the return status from the call to netxen_issue_cmd Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 015/102] scsi: sg: don't return bogus Sg_requests Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 016/102] KVM: PPC: Book3S PR: Check copy_to/from_user return values Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 017/102] vmxnet3: ensure that adapter is in proper state during force_close Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 018/102] SMB2: Fix share type handling Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 019/102] PowerCap: Fix an error code in powercap_register_zone() Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 020/102] staging: wlan-ng: prism2mgmt.c: fixed a double endian conversion before calling hfa384x_drvr_setconfig16, also fixes relative sparse warning Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 021/102] x86/tsc: Provide 'tsc=unstable' boot parameter Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 022/102] ARM: dts: imx6qdl-wandboard: Fix audio channel swap Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 023/102] ipv6: avoid dad-failures for addresses with NODAD Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 024/102] async_tx: Fix DMA_PREP_FENCE usage in do_async_gen_syndrome() Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 025/102] usb: dwc3: keystone: check return value Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 026/102] btrfs: fix incorrect error return ret being passed to mapping_set_error Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 027/102] ata: libahci: properly propagate return value of platform_get_irq() Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 028/102] neighbour: update neigh timestamps iff update is effective Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 029/102] usb: chipidea: properly handle host or gadget initialization failure Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 030/102] USB: ene_usb6250: fix first command execution Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 031/102] net: x25: fix one potential use-after-free issue Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 032/102] USB: ene_usb6250: fix SCSI residue overwriting Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 033/102] sh_eth: Use platform device for printing before register_netdev() Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 034/102] ath5k: fix memory leak on buf on failed eeprom read Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 035/102] selftests/powerpc: Fix TM resched DSCR test with some compilers Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 036/102] xfrm: fix state migration copy replay sequence numbers Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 037/102] ARM: davinci: da8xx: Create DSP device only when assigned memory Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 038/102] ray_cs: Avoid reading past end of buffer Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 039/102] leds: pca955x: Correct I2C Functionality Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 040/102] block: fix an error code in add_partition() Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 041/102] libceph: NULL deref on crush_decode() error path Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 042/102] netfilter: ctnetlink: fix incorrect nf_ct_put during hash resize Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 043/102] scsi: bnx2fc: fix race condition in bnx2fc_get_host_stats() Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 044/102] fix race in drivers/char/random.c:get_reg() Sasha Levin
2018-03-20 9:48 ` Geert Uytterhoeven
2018-03-21 18:13 ` Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 045/102] ext4: fix off-by-one on max nr_pages in ext4_find_unwritten_pgoff() Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 046/102] net: move somaxconn init from sysctl code Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 047/102] bonding: Don't update slave->link until ready to commit Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 048/102] KVM: nVMX: Fix handling of lmsw instruction Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 049/102] net: llc: add lock_sock in llc_ui_bind to avoid a race condition Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 050/102] l2tp: fix missing print session offset info Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 051/102] scsi: libiscsi: Allow sd_shutdown on bad transport Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 052/102] vfb: fix video mode and line_length being set when loaded Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 053/102] wl1251: check return from call to wl1251_acx_arp_ip_filter Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 054/102] hdlcdrv: Fix divide by zero in hdlcdrv_ioctl Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 055/102] HID: i2c: Call acpi_device_fix_up_power for ACPI-enumerated devices Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 056/102] ovl: filter trusted xattr for non-admin Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 057/102] powerpc/[booke|4xx]: Don't clobber TCR[WP] when setting TCR[DIE] Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 058/102] arm64: futex: Fix undefined behaviour with FUTEX_OP_OPARG_SHIFT usage Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 059/102] rtc: interface: Validate alarm-time before handling rollover Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 060/102] net: freescale: fix potential null pointer dereference Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 061/102] KVM: SVM: do not zero out segment attributes if segment is unusable or not present Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 062/102] powerpc/spufs: Fix coredump of SPU contexts Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 063/102] perf trace: Add mmap alias for s390 Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 064/102] qlcnic: Fix a sleep-in-atomic bug in qlcnic_82xx_hw_write_wx_2M and qlcnic_82xx_hw_read_wx_2M Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 065/102] mISDN: Fix a sleep-in-atomic bug Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 066/102] drm/omap: fix tiled buffer stride calculations Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 067/102] Fix serial console on SNI RM400 machines Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 068/102] bio-integrity: Do not allocate integrity context for bio w/o data Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 069/102] skbuff: return -EMSGSIZE in skb_to_sgvec to prevent overflow Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 070/102] net/mlx4: Fix the check in attaching steering rules Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 071/102] perf report: Ensure the perf DSO mapping matches what libdw sees Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 072/102] tags: honor COMPILED_SOURCE with apart output directory Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 073/102] e1000e: fix race condition around skb_tstamp_tx() Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 074/102] [media] cx25840: fix unchecked return values Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 075/102] [media] mceusb: sporadic RX truncation corruption fix Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 076/102] net: phy: avoid genphy_aneg_done() for PHYs without clause 22 support Sasha Levin
2018-03-19 16:13 ` Sasha Levin [this message]
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 078/102] perf/core: Correct event creation with PERF_FORMAT_GROUP Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 079/102] MIPS: mm: fixed mappings: correct initialisation Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 080/102] MIPS: kprobes: flush_insn_slot should flush only if probe initialised Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 081/102] net: emac: fix reset timeout with AR8035 phy Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 082/102] perf tests: Decompress kernel module before objdump Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 083/102] xen: avoid type warning in xchg_xen_ulong Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 084/102] bnx2x: Allow vfs to disable txvlan offload Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 085/102] sctp: fix recursive locking warning in sctp_do_peeloff Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 086/102] sparc64: ldc abort during vds iso boot Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 087/102] iio: magnetometer: st_magn_spi: fix spi_device_id table Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 088/102] Bluetooth: Send HCI Set Event Mask Page 2 command only when needed Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 089/102] ACPICA: Events: Add runtime stub support for event APIs Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 090/102] ACPICA: Disassembler: Abort on an invalid/unknown AML opcode Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 091/102] vxlan: dont migrate permanent fdb entries during learn Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 092/102] xfs: fix up agi unlinked list reservations Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 093/102] bcache: stop writeback thread after detaching Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 094/102] bcache: segregate flash only volume write streams Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 095/102] scsi: libsas: fix memory leak in sas_smp_get_phy_events() Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 096/102] scsi: libsas: fix error when getting phy events Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 097/102] scsi: libsas: initialize sas_phy status according to response of DISCOVER Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 098/102] tty: n_gsm: Allow ADM response in addition to UA for control dlci Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 099/102] EDAC, mv64x60: Fix an error handling path Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 100/102] signal/metag: Document a conflict with SI_USER with SIGFPE Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 101/102] signal/powerpc: Document conflicts with SI_USER and SIGFPE and SIGTRAP Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 102/102] signal/arm: Document conflicts with SI_USER and SIGFPE Sasha Levin
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=20180319161117.17833-77-alexander.levin@microsoft.com \
--to=alexander.levin@microsoft.com \
--cc=chris@chris-wilson.co.uk \
--cc=jani.nikula@intel.com \
--cc=jeffrey.t.kirsher@intel.com \
--cc=linux-kernel@vger.kernel.org \
--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).