(bug report) b43: impossible conditions in debugfs

Michael Büsch <[email protected]>
Newsgroups org.infradead.lists.b43-dev,org.kernel.vger.linux-wireless
Message-ID <20151126133241.5bc5a793@wiggum>
On Thu, 26 Nov 2015 14:59:24 +0300
Dan Carpenter <[email protected]> wrote:

> 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)'



Sure. These are intentional.
The compiler will optimize this out.

-- 
Michael
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/b43-dev/attachments/20151126/99514e38/attachment.sig>
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.