(bug report) b43: impossible conditions in debugfs

Dan Carpenter <[email protected]>
Newsgroups org.infradead.lists.b43-dev,org.kernel.vger.linux-wireless
Message-ID <20151126115924.GI10556@mwanda>
Hello Michael Buesch,

The patch 6bbc321a96d4: "b43: Add debugfs files for random SHM
access" from Jun 19, 2008, leads to the following static checker
warning:

	drivers/net/wireless/broadcom/b43/debugfs.c:217 shm32write__write_file()
	warn: impossible condition '(mask > 4294967295) => (0-u32max > u32max)'

drivers/net/wireless/broadcom/b43/debugfs.c
   198  static int shm32write__write_file(struct b43_wldev *dev,
   199                                    const char *buf, size_t count)
   200  {
   201          unsigned int routing, addr, mask, set;
   202          u32 val;
   203          int res;
   204  
   205          res = sscanf(buf, "0x%X 0x%X 0x%X 0x%X",
   206                       &routing, &addr, &mask, &set);
   207          if (res != 4)
   208                  return -EINVAL;
   209          if (routing > B43_MAX_SHM_ROUTING)
   210                  return -EADDRNOTAVAIL;
   211          if (addr > B43_MAX_SHM_ADDR)
   212                  return -EADDRNOTAVAIL;
   213          if (routing == B43_SHM_SHARED) {
   214                  if ((addr % 2) != 0)
   215                          return -EADDRNOTAVAIL;
   216          }
   217          if ((mask > 0xFFFFFFFF) || (set > 0xFFFFFFFF))

Both of these conditions are impossible.

   218                  return -E2BIG;
   219  
   220          if (mask == 0)
   221                  val = 0;
   222          else
   223                  val = b43_shm_read32(dev, routing, addr);
   224          val &= mask;
   225          val |= set;
   226          b43_shm_write32(dev, routing, addr, val);
   227  
   228          return 0;
   229  }

See also:
drivers/net/wireless/broadcom/b43/debugfs.c:346 mmio32write__write_file() warn: impossible condition '(mask > 4294967295) => (0-u32max > u32max)'
drivers/net/wireless/broadcom/b43/debugfs.c:346 mmio32write__write_file() warn: impossible condition '(set > 4294967295) => (0-u32max > u32max)'


regards,
dan carpenter
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.