Received: by 2002:a05:7412:419a:b0:f3:1519:9f41 with SMTP id i26csp3396169rdh; Mon, 27 Nov 2023 13:10:16 -0800 (PST) X-Google-Smtp-Source: AGHT+IHHnrVFyNJokkdyEHS1NmemcUvK/+J6aFnJlN1zxczOFSy0w+etUdYBYnbSMUZPs5E6cTQZ X-Received: by 2002:a05:6a20:c906:b0:187:a4df:4e57 with SMTP id gx6-20020a056a20c90600b00187a4df4e57mr11570924pzb.20.1701119415904; Mon, 27 Nov 2023 13:10:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701119415; cv=none; d=google.com; s=arc-20160816; b=JGOguFiRid9fFm10Nl8ewBzeEEpnuH4y5rDG8NYdiU+9FnWgOYc3YrONLZ9MGuctm3 OhqrMn8m0BgarvyZT64xxtTYscnp//cKtO3zo2x2FPm8dI5epgsfqUyugjbTbRRLr6ch AqqqyFqwSDYBlLpNVxliIxjluNeFzM+4/jsRBmEk6piXSt9fj7LvI0s/R5I7OHk3GXYX 2j4mVyHiwVLoBb3uWreAa2wYzSivs5fo1l7y6HFQrSDicCsq7hFtnCQLOfHT38OPom4r BUBYSfsnj0PeUB5MOCIEEzo20AIGY2lNh8arqcIGRL7N5svOg8aHzme/l4JeV461BPng L+vg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:mime-version:date :dkim-signature; bh=j+yJv8WNVxeThvq7VuGjifqnPyOkZQynfe++nihOK2k=; fh=CSEqckJMu7XshNeVh3G0BzLl3AZGEZpJ40gEsxT0FMI=; b=mcrBybj3VfvWzWABvkNzr8+XE8aaPH5gZPN4JuJrFU4w6Ik00Kug07yt53V91VrN4G smm69zCkdRRZt7DB8euTXmKx1H4xQpZ6OabluZovAHzAfgwdrtmK3cRPsGFYSd/WhS/g YCQow8MmYbVXZwGwNuFKhmWjpvI1SEawT/NihnnbeD6KIZHS5COMak93xTbyzZaHRC9e 2EiT39E+f5jFAo8gh6Xn4aneCLUfwYwvClo2VZBa1eVCBU4DkwIqgAddlaqyW32Nokcv x3VUghgS0I5ak4DIml6CknPApwD3bwcNy4kp+z6UF/hrW274mgIxto7akyLUjLRJBUbL hcMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=u+ICXVq2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from morse.vger.email (morse.vger.email. [23.128.96.31]) by mx.google.com with ESMTPS id q11-20020a056a00088b00b006c3fb206949si10813289pfj.209.2023.11.27.13.10.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Nov 2023 13:10:15 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) client-ip=23.128.96.31; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=u+ICXVq2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 36F3D80F9261; Mon, 27 Nov 2023 13:10:13 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233132AbjK0VJ6 (ORCPT + 99 others); Mon, 27 Nov 2023 16:09:58 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38874 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233054AbjK0VJ4 (ORCPT ); Mon, 27 Nov 2023 16:09:56 -0500 Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com [IPv6:2607:f8b0:4864:20::104a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9329D1B1 for ; Mon, 27 Nov 2023 13:10:02 -0800 (PST) Received: by mail-pj1-x104a.google.com with SMTP id 98e67ed59e1d1-285899772e4so4835558a91.3 for ; Mon, 27 Nov 2023 13:10:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1701119402; x=1701724202; darn=vger.kernel.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=j+yJv8WNVxeThvq7VuGjifqnPyOkZQynfe++nihOK2k=; b=u+ICXVq2nfWmteOjrHZGwqAJvJCZNLmPvru78yjLnqkQkJne0WjziE0bkcC3n5Nmy/ F5sUY6bSWBK28XGMN7KMdPG5B/XS5hI/qZLxovKQjKPqpPWl/Jf78BpzIyHS5N1KxBkB qmnZmeYrOEyf57IANNew6BVdBue+YxNGnAZnTykPHoJY3xa25F18ceWRawzKIAirpZGo HHi3qaYWe3p9EsjhkY5liU7W2DyN4oRnq8rE7xaF0elutQbVZpwnid3+WEBT5fboZwvB MXRurLUp7zCXmo69nN1jPY2jY8+FPgGDDHHmYqBr5ZNDKTaUUBtsOnyfOpScRtCozVx/ Pphw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701119402; x=1701724202; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=j+yJv8WNVxeThvq7VuGjifqnPyOkZQynfe++nihOK2k=; b=BgT2+kh0Lxks1SwlJvPSLn9TACTlJxgmAcbwyxdSydYdHbkMasdF7V6gEad1MK4hjy 09ZGi4xMEFWrLvE7+QSC9aSFTQIuFluyhb9x9FsOrOsQ4KAvARYF/Ogr6QBA9vfQJ5vP iVVN3XZp/JemDoA0Dttd7Y6o5dDbZGa64nyfv7ikToAhpxwMByaVOVPLMPrM5wiXsnJu EIH1M9nPms57d41VO5XNwG1PJzatRhqK/hJinLNVST1HxCA5yUt0288CIEUmaxEOtC4/ hf4QW+yHaKbl4AwA3QmM6NvrgBHDl4s57tyZP8K68/1rO+f26x/uJ5ElAGE9BElP5HFO +g0g== X-Gm-Message-State: AOJu0YwOd0NLihW0R9+EhjZHl1SupNPLWvWk+hyqjuVwVl3zBZUZN2Bt 5TB2g4riGPnSzHGxkQQaXtItHPjXjpk1mmE= X-Received: from rdbabiera.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:18a8]) (user=rdbabiera job=sendgmr) by 2002:a17:90a:6f61:b0:27d:2233:d646 with SMTP id d88-20020a17090a6f6100b0027d2233d646mr2655299pjk.2.1701119402043; Mon, 27 Nov 2023 13:10:02 -0800 (PST) Date: Mon, 27 Nov 2023 21:09:52 +0000 Mime-Version: 1.0 X-Developer-Key: i=rdbabiera@google.com; a=openpgp; fpr=639A331F1A21D691815CE090416E17CA2BBBD5C8 X-Developer-Signature: v=1; a=openpgp-sha256; l=1848; i=rdbabiera@google.com; h=from:subject; bh=HBsms+m+5r11Rra0u8wAjL7hztHH/IWB33DELSmjFkI=; b=owGbwMvMwCFW0bfok0KS4TbG02pJDKmprPO3LohTqXTV2CvjsXlZi8FrRfW95hOaRBpThCbkP mK+onm8o5SFQYyDQVZMkUXXP8/gxpXULXM4a4xh5rAygQxh4OIUgInoXGRk6JqYYL36ltnajTaC 61UfLdVomP/KWCPk9afrHLsqD05vC2H4H8U45Wvr9jdKDT68RW5qDz0D5dKOHqv9EC+Q/Cf0/rU FDAA= X-Mailer: git-send-email 2.43.0.rc1.413.gea7ed67945-goog Message-ID: <20231127210951.730114-2-rdbabiera@google.com> Subject: [PATCH v2] usb: typec: class: fix typec_altmode_put_partner to put plugs From: RD Babiera To: heikki.krogerus@linux.intel.com, gregkh@linuxfoundation.org Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, badhri@google.com, RD Babiera , stable@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Mon, 27 Nov 2023 13:10:13 -0800 (PST) When typec_altmode_put_partner is called by a plug altmode upon release, the port altmode the plug belongs to will not remove its reference to the plug. The check to see if the altmode being released evaluates against the released altmode's partner instead of the calling altmode itself, so change adev in typec_altmode_put_partner to properly refer to the altmode being released. typec_altmode_set_partner is not run for port altmodes, so also add a check in typec_altmode_release to prevent typec_altmode_put_partner() calls on port altmode release. --- Changes since v1: * Changed commit message for clarity * Added check to typec_altmode_release to only call put_partner if altmode belongs to port partner or plug --- Fixes: 8a37d87d72f0 ("usb: typec: Bus type for alternate modes") Cc: stable@vger.kernel.org Signed-off-by: RD Babiera --- drivers/usb/typec/class.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c index 2e0451bd336e..16a670828dde 100644 --- a/drivers/usb/typec/class.c +++ b/drivers/usb/typec/class.c @@ -267,7 +267,7 @@ static void typec_altmode_put_partner(struct altmode *altmode) if (!partner) return; - adev = &partner->adev; + adev = &altmode->adev; if (is_typec_plug(adev->dev.parent)) { struct typec_plug *plug = to_typec_plug(adev->dev.parent); @@ -497,7 +497,8 @@ static void typec_altmode_release(struct device *dev) { struct altmode *alt = to_altmode(to_typec_altmode(dev)); - typec_altmode_put_partner(alt); + if (!is_typec_port(dev->parent)) + typec_altmode_put_partner(alt); altmode_id_remove(alt->adev.dev.parent, alt->id); kfree(alt); base-commit: b85ea95d086471afb4ad062012a4d73cd328fa86 -- 2.43.0.rc1.413.gea7ed67945-goog