From: Benson Leung <bleung@google.com>
To: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Cc: "Heikki Krogerus" <heikki.krogerus@linux.intel.com>,
"Benson Leung" <bleung@chromium.org>,
"Łukasz Bartosik" <ukaszb@chromium.org>,
"Dan Carpenter" <dan.carpenter@linaro.org>,
linux-usb@vger.kernel.org, akuchynski@google.com
Subject: Re: [bug report] usb: typec: Add driver for Thunderbolt 3 Alternate Mode
Date: Thu, 23 Jan 2025 00:26:46 +0000 [thread overview]
Message-ID: <Z5GMxkahjL6pqklj@google.com> (raw)
In-Reply-To: <CANFp7mXEkESZ9Z6waroa_8zVv1PtBTWqfEFSzpzBZ6WEjLDa9A@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 4597 bytes --]
Hi Abhishek,
On Wed, Jan 22, 2025 at 04:00:47PM -0800, Abhishek Pandit-Subedi wrote:
> On Tue, Jan 7, 2025 at 6:24 AM Heikki Krogerus
> <heikki.krogerus@linux.intel.com> wrote:
> >
> > +Abhishek
> >
> > On Tue, Jan 07, 2025 at 05:16:43PM +0300, Dan Carpenter wrote:
> > > Hello Heikki Krogerus,
> > >
> > > Commit 100e25738659 ("usb: typec: Add driver for Thunderbolt 3
> > > Alternate Mode") from Dec 13, 2024 (linux-next), leads to the
> > > following (unpublished) Smatch static checker warnings:
> > >
> > > drivers/usb/typec/altmodes/thunderbolt.c:116 tbt_altmode_work() warn: why is zero skipped 'i'
> > > drivers/usb/typec/altmodes/thunderbolt.c:147 tbt_enter_modes_ordered() warn: why is zero skipped 'i'
> > > drivers/usb/typec/altmodes/thunderbolt.c:153 tbt_enter_modes_ordered() info: return a literal instead of 'ret'
> > > drivers/usb/typec/altmodes/thunderbolt.c:328 tbt_altmode_remove() warn: why is zero skipped 'i'
> > > drivers/usb/typec/altmodes/thunderbolt.c:354 tbt_ready() warn: 'plug' is not an error pointer
> > >
> > > drivers/usb/typec/altmodes/thunderbolt.c
> > > 66 static void tbt_altmode_work(struct work_struct *work)
> > > 67 {
> > > 68 struct tbt_altmode *tbt = container_of(work, struct tbt_altmode, work);
> > > 69 int ret;
> > > 70
> > > 71 mutex_lock(&tbt->lock);
> > > 72
> > > 73 switch (tbt->state) {
> > > 74 case TBT_STATE_SOP_P_ENTER:
> > > 75 ret = typec_cable_altmode_enter(tbt->alt, TYPEC_PLUG_SOP_P, NULL);
> > > 76 if (ret) {
> > > 77 dev_dbg(&tbt->plug[TYPEC_PLUG_SOP_P]->dev,
> > > 78 "failed to enter mode (%d)\n", ret);
> > > 79 goto disable_plugs;
> > > 80 }
> > > 81 break;
> > > 82 case TBT_STATE_SOP_PP_ENTER:
> > > 83 ret = typec_cable_altmode_enter(tbt->alt, TYPEC_PLUG_SOP_PP, NULL);
> > > 84 if (ret) {
> > > 85 dev_dbg(&tbt->plug[TYPEC_PLUG_SOP_PP]->dev,
> > > 86 "failed to enter mode (%d)\n", ret);
> > > 87 goto disable_plugs;
> > > 88 }
> > > 89 break;
> > > 90 case TBT_STATE_ENTER:
> > > 91 ret = tbt_enter_mode(tbt);
> > > 92 if (ret)
> > > 93 dev_dbg(&tbt->alt->dev, "failed to enter mode (%d)\n",
> > > 94 ret);
> > > 95 break;
> > > 96 case TBT_STATE_EXIT:
> > > 97 typec_altmode_exit(tbt->alt);
> > > 98 break;
> > > 99 case TBT_STATE_SOP_PP_EXIT:
> > > 100 typec_cable_altmode_exit(tbt->alt, TYPEC_PLUG_SOP_PP);
> > > 101 break;
> > > 102 case TBT_STATE_SOP_P_EXIT:
> > > 103 typec_cable_altmode_exit(tbt->alt, TYPEC_PLUG_SOP_P);
> > > 104 break;
> > > 105 default:
> > > 106 break;
> > > 107 }
> > > 108
> > > 109 tbt->state = TBT_STATE_IDLE;
> > > 110
> > > 111 mutex_unlock(&tbt->lock);
> > > 112 return;
> > > 113
> > > 114 disable_plugs:
> > > 115 for (int i = TYPEC_PLUG_SOP_PP; i > 0; --i) {
> > > ^^^^^
> > > These should be >= 0. Humans are bad at counting backwards.
> > >
> > > --> 116 if (tbt->plug[i])
> > > 117 typec_altmode_put_plug(tbt->plug[i]);
> > > 118
> > > 119 tbt->plug[i] = NULL;
> > > 120 }
> > > 121
> > > 122 tbt->state = TBT_STATE_ENTER;
> > > 123 schedule_work(&tbt->work);
> > > 124 mutex_unlock(&tbt->lock);
> > > 125 }
> >
> > Abhishek, this looks straighforward, but just in case, can you take
> > look?
> >
> > thanks,
> >
> > --
> > heikki
>
> +Benson Leung +Łukasz Bartosik can help with a patch to address this
> while I'm out on baby bonding leave. As you noted, they look pretty
> straightforward.
Thanks Dan for the report on these. I agree, seems simple to fix this one.
I'll take a look at the others in this file too.
+Andrei Kuchynski as well.
Thanks,
Benson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2025-01-23 0:26 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-07 14:16 [bug report] usb: typec: Add driver for Thunderbolt 3 Alternate Mode Dan Carpenter
2025-01-07 14:24 ` Heikki Krogerus
2025-01-23 0:00 ` Abhishek Pandit-Subedi
2025-01-23 0:26 ` Benson Leung [this message]
2025-01-24 19:56 ` Benson Leung
2025-01-25 13:01 ` Dan Carpenter
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=Z5GMxkahjL6pqklj@google.com \
--to=bleung@google.com \
--cc=abhishekpandit@chromium.org \
--cc=akuchynski@google.com \
--cc=bleung@chromium.org \
--cc=dan.carpenter@linaro.org \
--cc=heikki.krogerus@linux.intel.com \
--cc=linux-usb@vger.kernel.org \
--cc=ukaszb@chromium.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 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.