]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
usb: typec: thunderbolt: Fix loops that iterate TYPEC_PLUG_SOP_P and TYPEC_PLUG_SOP_PP
authorBenson Leung <bleung@chromium.org>
Fri, 24 Jan 2025 19:40:23 +0000 (19:40 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Feb 2025 15:30:37 +0000 (16:30 +0100)
Fixes these 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:328 tbt_altmode_remove() warn: why is zero skipped 'i'

Fixes: 100e25738659 ("usb: typec: Add driver for Thunderbolt 3 Alternate Mode")
Signed-off-by: Benson Leung <bleung@chromium.org>
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/Z5Psp615abaaId6J@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/altmodes/thunderbolt.c

index 1b475b1d98e783748223bd6b4278b9d68de2a58a..94e47d30e5989a085749845007dea16e147dcdb4 100644 (file)
@@ -112,7 +112,7 @@ static void tbt_altmode_work(struct work_struct *work)
        return;
 
 disable_plugs:
-       for (int i = TYPEC_PLUG_SOP_PP; i > 0; --i) {
+       for (int i = TYPEC_PLUG_SOP_PP; i >= 0; --i) {
                if (tbt->plug[i])
                        typec_altmode_put_plug(tbt->plug[i]);
 
@@ -143,7 +143,7 @@ static int tbt_enter_modes_ordered(struct typec_altmode *alt)
        if (tbt->plug[TYPEC_PLUG_SOP_P]) {
                ret = typec_cable_altmode_enter(alt, TYPEC_PLUG_SOP_P, NULL);
                if (ret < 0) {
-                       for (int i = TYPEC_PLUG_SOP_PP; i > 0; --i) {
+                       for (int i = TYPEC_PLUG_SOP_PP; i >= 0; --i) {
                                if (tbt->plug[i])
                                        typec_altmode_put_plug(tbt->plug[i]);
 
@@ -324,7 +324,7 @@ static void tbt_altmode_remove(struct typec_altmode *alt)
 {
        struct tbt_altmode *tbt = typec_altmode_get_drvdata(alt);
 
-       for (int i = TYPEC_PLUG_SOP_PP; i > 0; --i) {
+       for (int i = TYPEC_PLUG_SOP_PP; i >= 0; --i) {
                if (tbt->plug[i])
                        typec_altmode_put_plug(tbt->plug[i]);
        }