2014-06-07 11:02:46

by Rickard Strandqvist

[permalink] [raw]
Subject: [PATCH] net: wan: wanxl.c: Cleaning up declaration of a while loop

Unusual declaration of a while loop.
However, believe you also want to make sure that the pointer is not NULL

This was partly found using a static code analysis program called cppcheck.

Signed-off-by: Rickard Strandqvist <[email protected]>
---
drivers/net/wan/wanxl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wan/wanxl.c b/drivers/net/wan/wanxl.c
index f76aa90..bde0943 100644
--- a/drivers/net/wan/wanxl.c
+++ b/drivers/net/wan/wanxl.c
@@ -196,7 +196,7 @@ static inline void wanxl_tx_intr(port_t *port)
static inline void wanxl_rx_intr(card_t *card)
{
desc_t *desc;
- while (desc = &card->status->rx_descs[card->rx_in],
+ while (desc = &card->status->rx_descs[card->rx_in] &&
desc->stat != PACKET_EMPTY) {
if ((desc->stat & PACKET_PORT_MASK) > card->n_ports)
pr_crit("%s: received packet for nonexistent port\n",
--
1.7.10.4


2014-06-07 17:48:33

by Krzysztof Halasa

[permalink] [raw]
Subject: Re: [PATCH] net: wan: wanxl.c: Cleaning up declaration of a while loop

Rickard Strandqvist <[email protected]> writes:

> Unusual declaration of a while loop.
> However, believe you also want to make sure that the pointer is not NULL

Not really. The code is meant to do exactly what it currently does -
set variable desc and then check desc->stat.
All rx_descs are at this point already initialized and not NULL
(if desc was indeed NULL we better BUG*() or Oops on desc->stat access
instead of failing silently).

> --- a/drivers/net/wan/wanxl.c
> +++ b/drivers/net/wan/wanxl.c
> @@ -196,7 +196,7 @@ static inline void wanxl_tx_intr(port_t *port)
> static inline void wanxl_rx_intr(card_t *card)
> {
> desc_t *desc;
> - while (desc = &card->status->rx_descs[card->rx_in],
> + while (desc = &card->status->rx_descs[card->rx_in] &&
> desc->stat != PACKET_EMPTY) {
> if ((desc->stat & PACKET_PORT_MASK) > card->n_ports)
> pr_crit("%s: received packet for nonexistent port\n",

--
Krzysztof Halasa