From: Mika Westerberg <mika.westerberg@linux.intel.com>
To: Christian Kellner <ckellner@redhat.com>
Cc: Andreas Noever <andreas.noever@gmail.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Michael Jamet <michael.jamet@intel.com>,
Yehezkel Bernat <yehezkel.bernat@intel.com>,
Lukas Wunner <lukas@wunner.de>,
Amir Levy <amir.jer.levy@intel.com>,
Andy Lutomirski <luto@kernel.org>,
Mario.Limonciello@dell.com, Jared.Dominguez@dell.com,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
linux-kernel@vger.kernel.org,
Peter FP1 Zhang <zhangfp1@lenovo.com>
Subject: Re: [PATCH v4 00/27] Thunderbolt security levels and NVM firmware upgrade
Date: Mon, 24 Jul 2017 09:52:55 +0300 [thread overview]
Message-ID: <20170724065255.GJ629@lahna.fi.intel.com> (raw)
In-Reply-To: <1500567109.13885.9.camel@redhat.com>
Hi,
On Thu, Jul 20, 2017 at 06:11:49PM +0200, Christian Kellner wrote:
> Hi!
>
> > This is fourth version of the patch series adding support for Thunderbolt
> > security levels and NVM firmware upgrade.
>
> While prototyping the user-space bits for GNOME, I stumbled upon an
> oops on the Lenovo T470s (see below) when attaching a Dell TB16
> thunderbolt 3 dock. As a result /sys/bus/thunderbolt/devices has only
> domain0 in it but not the dock itself. Everything works fine on a Dell
> XPS 13 9630. The oops happens with linux-next and when I backport the
> patches to 4.11.11.
> Happy to provide any more information and test future patches.
>
> Cheers,
> Christian
>
> --- 8< ---
> lspci output:
>
> pcilib: Cannot open /sys/bus/pci/devices/0000:03:00.0/config
> lspci: Unable to read the standard configuration space header of device 0000:03:00.0
> 00:00.0 Host bridge: Intel Corporation Device 5904 (rev 02)
> 00:02.0 VGA compatible controller: Intel Corporation Device 5916 (rev 02)
> 00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
> 00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
> 00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
> 00:16.3 Serial controller: Intel Corporation Device 9d3d (rev 21)
> 00:1c.0 PCI bridge: Intel Corporation Device 9d10 (rev f1)
> 00:1c.2 PCI bridge: Intel Corporation Device 9d12 (rev f1)
> 00:1d.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #9 (rev f1)
> 00:1f.0 ISA bridge: Intel Corporation Device 9d4e (rev 21)
> 00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
> 00:1f.3 Audio device: Intel Corporation Device 9d71 (rev 21)
> 00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
> 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (4) I219-LM (rev 21)
> 01:00.0 PCI bridge: Intel Corporation JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016] (rev ff)
> 02:00.0 PCI bridge: Intel Corporation JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016] (rev ff)
> 02:01.0 PCI bridge: Intel Corporation JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016] (rev ff)
> 02:02.0 PCI bridge: Intel Corporation JHL6240 Thunderbolt 3 Bridge (Low Power) [Alpine Ridge LP 2016] (rev ff)
> 3a:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)
> 3c:00.0 Non-Volatile memory controller: Toshiba America Info Systems Device 0115 (rev 01)
>
> --- >8 ---
> Ops:
>
> [ 69.886978] thunderbolt 0000:03:00.0: current switch config:
> [ 69.886983] thunderbolt 0000:03:00.0: Switch: 8086:15c0 (Revision: 1, TB Version: 2)
> [ 69.886986] thunderbolt 0000:03:00.0: Max Port Number: 5
> [ 69.886987] thunderbolt 0000:03:00.0: Config:
> [ 69.886991] thunderbolt 0000:03:00.0: Upstream Port Number: 3 Depth: 0 Route String: 0x0 Enabled: 1, PlugEventsDelay: 254ms
> [ 69.886994] thunderbolt 0000:03:00.0: unknown1: 0x0 unknown4: 0x0
> [ 69.920748] BUG: unable to handle kernel NULL pointer dereference at 00000000000002ec
> [ 69.920834] IP: tb_drom_read+0x383/0x890 [thunderbolt]
I've seen this once on Alpine Ridge LP (which you have here) where the
DROM contents of the older NVM image listed too many ports. Can you try
if the below patch helps?
diff --git a/drivers/thunderbolt/eeprom.c b/drivers/thunderbolt/eeprom.c
index 996c6e2..bdf7f80 100644
--- a/drivers/thunderbolt/eeprom.c
+++ b/drivers/thunderbolt/eeprom.c
@@ -333,6 +333,12 @@ static int tb_drom_parse_entry_port(struct tb_switch *sw,
int res;
enum tb_port_type type;
+ if (header->index > sw->config.max_port_number) {
+ tb_sw_warn(sw, "DROM has too many entries %u (expected %u)\n",
+ header->index, sw->config.max_port_number);
+ return 0;
+ }
+
port = &sw->ports[header->index];
port->disabled = header->port_disabled;
if (port->disabled)
next prev parent reply other threads:[~2017-07-24 6:55 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-06 12:24 [PATCH v4 00/27] Thunderbolt security levels and NVM firmware upgrade Mika Westerberg
2017-06-06 12:24 ` [PATCH v4 01/27] thunderbolt: Use const buffer pointer in write operations Mika Westerberg
2017-06-06 12:24 ` [PATCH v4 02/27] thunderbolt: No need to read UID of the root switch on resume Mika Westerberg
2017-06-06 13:07 ` Andy Shevchenko
2017-06-06 12:24 ` [PATCH v4 03/27] thunderbolt: Do not try to read UID if DROM offset is read as 0 Mika Westerberg
2017-06-06 12:24 ` [PATCH v4 04/27] thunderbolt: Do not warn about newer DROM versions Mika Westerberg
2017-06-06 12:24 ` [PATCH v4 05/27] thunderbolt: Add MSI-X support Mika Westerberg
2017-06-06 12:24 ` [PATCH v4 06/27] thunderbolt: Rework capability handling Mika Westerberg
2017-06-06 12:24 ` [PATCH v4 07/27] thunderbolt: Allow passing NULL to tb_ctl_free() Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 08/27] thunderbolt: Introduce thunderbolt bus and connection manager Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 09/27] thunderbolt: Convert switch to a device Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 10/27] thunderbolt: Fail switch adding operation if reading DROM fails Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 11/27] thunderbolt: Do not fail if DROM data CRC32 is invalid Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 12/27] thunderbolt: Refactor and fix parsing of port drom entries Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 13/27] thunderbolt: Read vendor and device name from DROM Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 14/27] thunderbolt: Move control channel messages to tb_msgs.h Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 15/27] thunderbolt: Expose get_route() to other files Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 16/27] thunderbolt: Expose make_header() " Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 17/27] thunderbolt: Let the connection manager handle all notifications Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 18/27] thunderbolt: Rework control channel to be more reliable Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 19/27] thunderbolt: Add new Thunderbolt PCI IDs Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 20/27] thunderbolt: Add support for NHI mailbox Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 21/27] thunderbolt: Store Thunderbolt generation in the switch structure Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 22/27] thunderbolt: Add support for DMA configuration based mailbox Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 23/27] thunderbolt: Do not touch the hardware if the NHI is gone on resume Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 24/27] thunderbolt: Add support for Internal Connection Manager (ICM) Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 25/27] thunderbolt: Add support for host and device NVM firmware upgrade Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 26/27] thunderbolt: Add documentation how Thunderbolt bus can be used Mika Westerberg
2017-06-06 12:25 ` [PATCH v4 27/27] MAINTAINERS: Add maintainers for Thunderbolt driver Mika Westerberg
2017-06-09 9:44 ` [PATCH v4 00/27] Thunderbolt security levels and NVM firmware upgrade Greg Kroah-Hartman
2017-06-09 12:33 ` Mika Westerberg
2017-07-20 16:11 ` Christian Kellner
2017-07-20 16:15 ` Mario.Limonciello
2017-07-20 16:47 ` Christian Kellner
2017-07-24 6:52 ` Mika Westerberg [this message]
2017-07-25 9:11 ` Christian Kellner
2017-07-25 9:17 ` Mika Westerberg
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=20170724065255.GJ629@lahna.fi.intel.com \
--to=mika.westerberg@linux.intel.com \
--cc=Jared.Dominguez@dell.com \
--cc=Mario.Limonciello@dell.com \
--cc=amir.jer.levy@intel.com \
--cc=andreas.noever@gmail.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=ckellner@redhat.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=luto@kernel.org \
--cc=michael.jamet@intel.com \
--cc=yehezkel.bernat@intel.com \
--cc=zhangfp1@lenovo.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.