diff options
author | Greg Kroah-Hartman <[email protected]> | 2022-08-22 17:40:44 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <[email protected]> | 2022-08-22 17:40:44 +0200 |
commit | 8d1e09cfbd4da67d68a03e86818db5340c05abb8 (patch) | |
tree | a3748b56873e9505402981baefa205058f57a34f | |
parent | a8c67e27d9e3ed33afadbdf86bbd58e26e0c4357 (diff) | |
parent | 93a3c0d4e8bfbb15145e5dd7da68a3de4b904aba (diff) |
Merge tag 'thunderbolt-for-v6.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt into usb-linus
Mika writes:
"thunderbolt: Fixes for v6.0-rc3
This includes two fixes: one that corrects the buffer usage in
tb_async_error() and another one that limits the xHCI connect operations
to Thunderbolt 3 routers.
Both have been in linux-next with no reported issues."
* tag 'thunderbolt-for-v6.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt:
thunderbolt: Check router generation before connecting xHCI
thunderbolt: Use the actual buffer in tb_async_error()
-rw-r--r-- | drivers/thunderbolt/ctl.c | 2 | ||||
-rw-r--r-- | drivers/thunderbolt/switch.c | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/drivers/thunderbolt/ctl.c b/drivers/thunderbolt/ctl.c index e5ede5debfb0..0c661a706160 100644 --- a/drivers/thunderbolt/ctl.c +++ b/drivers/thunderbolt/ctl.c @@ -407,7 +407,7 @@ static void tb_ctl_rx_submit(struct ctl_pkg *pkg) static int tb_async_error(const struct ctl_pkg *pkg) { - const struct cfg_error_pkg *error = (const struct cfg_error_pkg *)pkg; + const struct cfg_error_pkg *error = pkg->buffer; if (pkg->frame.eof != TB_CFG_PKG_ERROR) return false; diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c index 244f8cd38b25..c63c1f4ff9dc 100644 --- a/drivers/thunderbolt/switch.c +++ b/drivers/thunderbolt/switch.c @@ -3786,14 +3786,18 @@ int tb_switch_pcie_l1_enable(struct tb_switch *sw) */ int tb_switch_xhci_connect(struct tb_switch *sw) { - bool usb_port1, usb_port3, xhci_port1, xhci_port3; struct tb_port *port1, *port3; int ret; + if (sw->generation != 3) + return 0; + port1 = &sw->ports[1]; port3 = &sw->ports[3]; if (tb_switch_is_alpine_ridge(sw)) { + bool usb_port1, usb_port3, xhci_port1, xhci_port3; + usb_port1 = tb_lc_is_usb_plugged(port1); usb_port3 = tb_lc_is_usb_plugged(port3); xhci_port1 = tb_lc_is_xhci_connected(port1); |