2022-05-12 20:07:45

by Guo Zhengkui

[permalink] [raw]
Subject: [PATCH linux-next] scsi: target: cxgbit: replace ternary operator with min()

Fix the following coccicheck warnings:

drivers/target/iscsi/cxgbit/cxgbit_cm.c:1042:12-13: WARNING
opportunity for min()
drivers/target/iscsi/cxgbit/cxgbit_cm.c:1011:12-13: WARNING
opportunity for min()

min() macro is defined in include/linux/minmax.h. It avoids multiple
evaluations of the arguments when non-constant and performs strict
type-checking.

Signed-off-by: Guo Zhengkui <[email protected]>
---
drivers/target/iscsi/cxgbit/cxgbit_cm.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/target/iscsi/cxgbit/cxgbit_cm.c b/drivers/target/iscsi/cxgbit/cxgbit_cm.c
index 3336d2b78bf7..6d9a13da6cb7 100644
--- a/drivers/target/iscsi/cxgbit/cxgbit_cm.c
+++ b/drivers/target/iscsi/cxgbit/cxgbit_cm.c
@@ -1008,7 +1008,7 @@ int cxgbit_ofld_send(struct cxgbit_device *cdev, struct sk_buff *skb)
ret = cxgb4_ofld_send(cdev->lldi.ports[0], skb);
if (ret < 0)
kfree_skb(skb);
- return ret < 0 ? ret : 0;
+ return min(ret, 0);
}

static void cxgbit_release_tid(struct cxgbit_device *cdev, u32 tid)
@@ -1039,7 +1039,7 @@ cxgbit_l2t_send(struct cxgbit_device *cdev, struct sk_buff *skb,
ret = cxgb4_l2t_send(cdev->lldi.ports[0], skb, l2e);
if (ret < 0)
kfree_skb(skb);
- return ret < 0 ? ret : 0;
+ return min(ret, 0);
}

static void cxgbit_send_rx_credits(struct cxgbit_sock *csk, struct sk_buff *skb)
--
2.20.1



2022-05-14 04:32:26

by Bart Van Assche

[permalink] [raw]
Subject: Re: [PATCH linux-next] scsi: target: cxgbit: replace ternary operator with min()

On 5/12/22 06:37, Guo Zhengkui wrote:
> diff --git a/drivers/target/iscsi/cxgbit/cxgbit_cm.c b/drivers/target/iscsi/cxgbit/cxgbit_cm.c
> index 3336d2b78bf7..6d9a13da6cb7 100644
> --- a/drivers/target/iscsi/cxgbit/cxgbit_cm.c
> +++ b/drivers/target/iscsi/cxgbit/cxgbit_cm.c
> @@ -1008,7 +1008,7 @@ int cxgbit_ofld_send(struct cxgbit_device *cdev, struct sk_buff *skb)
> ret = cxgb4_ofld_send(cdev->lldi.ports[0], skb);
> if (ret < 0)
> kfree_skb(skb);
> - return ret < 0 ? ret : 0;
> + return min(ret, 0);
> }
>
> static void cxgbit_release_tid(struct cxgbit_device *cdev, u32 tid)
> @@ -1039,7 +1039,7 @@ cxgbit_l2t_send(struct cxgbit_device *cdev, struct sk_buff *skb,
> ret = cxgb4_l2t_send(cdev->lldi.ports[0], skb, l2e);
> if (ret < 0)
> kfree_skb(skb);
> - return ret < 0 ? ret : 0;
> + return min(ret, 0);
> }
>
> static void cxgbit_send_rx_credits(struct cxgbit_sock *csk, struct sk_buff *skb)

I prefer to keep the existing code since "return min(ret, 0)" is not how
humans write kernel code.

Thanks,

Bart.