All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: ansuelsmth@gmail.com
Cc: kernel-janitors@vger.kernel.org
Subject: [bug report] net: dsa: qca8k: add support for switch rev
Date: Wed, 19 May 2021 11:31:08 +0300	[thread overview]
Message-ID: <YKTMzJOmd7AZGQID@mwanda> (raw)

Hello Ansuel Smith,

The patch 95ffeaf18b3b: "net: dsa: qca8k: add support for switch rev"
from May 14, 2021, leads to the following static checker warning:

drivers/net/dsa/qca8k.c:163 qca8k_read() warn: unsigned 'val' is never less than zero.
drivers/net/dsa/qca8k.c:212 qca8k_rmw() warn: unsigned 'val' is never less than zero.
drivers/net/dsa/qca8k.c:309 qca8k_busy_wait() warn: unsigned 'val' is never less than zero.
drivers/net/dsa/qca8k.c:324 qca8k_fdb_read() warn: unsigned 'val' is never less than zero.
drivers/net/dsa/qca8k.c:400 qca8k_fdb_access() warn: unsigned 'reg' is never less than zero.
drivers/net/dsa/qca8k.c:481 qca8k_vlan_access() warn: unsigned 'reg' is never less than zero.
drivers/net/dsa/qca8k.c:509 qca8k_vlan_add() warn: unsigned 'reg' is never less than zero.
drivers/net/dsa/qca8k.c:544 qca8k_vlan_del() warn: unsigned 'reg' is never less than zero.
drivers/net/dsa/qca8k.c:648 qca8k_mdio_busy_wait() warn: unsigned 'val' is never less than zero.
drivers/net/dsa/qca8k.c:1315 qca8k_phylink_mac_link_state() warn: unsigned 'reg' is never less than zero.
drivers/net/dsa/qca8k.c:1425 qca8k_get_ethtool_stats() warn: unsigned 'val' is never less than zero.
drivers/net/dsa/qca8k.c:1430 qca8k_get_ethtool_stats() warn: unsigned 'hi' is never less than zero.
drivers/net/dsa/qca8k.c:1459 qca8k_set_mac_eee() warn: unsigned 'reg' is never less than zero.
drivers/net/dsa/qca8k.c:1799 qca8k_read_switch_id() warn: unsigned 'val' is never less than zero.

drivers/net/dsa/qca8k.c:732 qca8k_mdio_read() warn: always true condition '(val >= 0) => (0-u32max >= 0)'

drivers/net/dsa/qca8k.c
   151  static u32
               ^^^
This is a unsigned, but the callers expect int.  Which is harmless but
kind of messy.

   152  qca8k_read(struct qca8k_priv *priv, u32 reg)
   153  {
   154          struct mii_bus *bus = priv->bus;
   155          u16 r1, r2, page;
   156          u32 val;
   157  
   158          qca8k_split_addr(reg, &r1, &r2, &page);
   159  
   160          mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
   161  
   162          val = qca8k_set_page(bus, page);
   163          if (val < 0)

Obviously unsigned can't be less than zero.

   164                  goto exit;
   165  
   166          val = qca8k_mii_read32(bus, 0x10 | r2, r1);

How high can this be?  In real life I expect that it's fine and there
are few times where we actually need to go over INT_MAX (2 million
should be enough for anybody), but it might be better to not mix this
with error codes?

   167  
   168  exit:
   169          mutex_unlock(&bus->mdio_lock);
   170          return val;
   171  }

regards,
dan carpenter

                 reply	other threads:[~2021-05-19  8:31 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=YKTMzJOmd7AZGQID@mwanda \
    --to=dan.carpenter@oracle.com \
    --cc=ansuelsmth@gmail.com \
    --cc=kernel-janitors@vger.kernel.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.