Fix the following coccicheck warning:
sound/soc/soc-ops.c:817: WARNING opportunity for min()
sound/core/vmaster.c:73: WARNING opportunity for min()
sound/pci/hda/hda_codec.c:337: WARNING opportunity for min()
sound/pci/ctxfi/ctatc.c:448: WARNING opportunity for min()
sound/pci/ctxfi/ctatc.c:387: WARNING opportunity for min()
Signed-off-by: KaiLong Wang <[email protected]>
---
sound/core/vmaster.c | 2 +-
sound/pci/ctxfi/ctatc.c | 4 ++--
sound/pci/hda/hda_codec.c | 2 +-
sound/soc/soc-ops.c | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/sound/core/vmaster.c b/sound/core/vmaster.c
index d0f11f37889b..704a09f4bfd6 100644
--- a/sound/core/vmaster.c
+++ b/sound/core/vmaster.c
@@ -70,7 +70,7 @@ static int follower_update(struct link_follower *follower)
follower->vals[ch] = uctl->value.integer.value[ch];
error:
kfree(uctl);
- return err < 0 ? err : 0;
+ return min(err, 0);
}
/* get the follower ctl info and save the initial values */
diff --git a/sound/pci/ctxfi/ctatc.c b/sound/pci/ctxfi/ctatc.c
index fbdb8a3d5b8e..9fea50b72cfb 100644
--- a/sound/pci/ctxfi/ctatc.c
+++ b/sound/pci/ctxfi/ctatc.c
@@ -384,7 +384,7 @@ static int atc_pcm_playback_start(struct ct_atc *atc, struct ct_atc_pcm *apcm)
apcm->started = 1;
max_cisz = src->multi * src->rsc.msr;
- max_cisz = 0x80 * (max_cisz < 8 ? max_cisz : 8);
+ max_cisz = 0x80 * min(max_cisz, 8);
src->ops->set_sa(src, apcm->vm_block->addr);
src->ops->set_la(src, apcm->vm_block->addr + apcm->vm_block->size);
@@ -445,7 +445,7 @@ atc_pcm_playback_position(struct ct_atc *atc, struct ct_atc_pcm *apcm)
size = apcm->vm_block->size;
max_cisz = src->multi * src->rsc.msr;
- max_cisz = 128 * (max_cisz < 8 ? max_cisz : 8);
+ max_cisz = 128 * min(max_cisz, 8);
return (position + size - max_cisz - apcm->vm_block->addr) % size;
}
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index b4d1e658c556..c195f99bd8d5 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -334,7 +334,7 @@ int snd_hda_get_devices(struct hda_codec *codec, hda_nid_t nid,
return 0;
dev_len = parm + 1;
- dev_len = dev_len < max_devices ? dev_len : max_devices;
+ dev_len = min(dev_len, max_devices);
devices = 0;
while (devices < dev_len) {
diff --git a/sound/soc/soc-ops.c b/sound/soc/soc-ops.c
index bd88de056358..d71d10055ed7 100644
--- a/sound/soc/soc-ops.c
+++ b/sound/soc/soc-ops.c
@@ -814,7 +814,7 @@ int snd_soc_bytes_tlv_callback(struct snd_kcontrol *kcontrol, int op_flag,
unsigned int size, unsigned int __user *tlv)
{
struct soc_bytes_ext *params = (void *)kcontrol->private_value;
- unsigned int count = size < params->max ? size : params->max;
+ unsigned int count = min_t(unsigned int, size, params->max);
int ret = -ENXIO;
switch (op_flag) {
--
2.25.1
On Tue, Oct 25, 2022 at 10:56:11PM +0800, [email protected] wrote:
> Fix the following coccicheck warning:
>
> sound/soc/soc-ops.c:817: WARNING opportunity for min()
> kfree(uctl);
> - return err < 0 ? err : 0;
> + return min(err, 0);
I don't think this is a good warning, while I'm no big fan of the
ternery operator the new code is less clear about the intent than the
old code.
On Tue, 25 Oct 2022 19:01:32 +0200,
Mark Brown wrote:
>
> On Tue, Oct 25, 2022 at 10:56:11PM +0800, [email protected] wrote:
> > Fix the following coccicheck warning:
> >
> > sound/soc/soc-ops.c:817: WARNING opportunity for min()
>
> > kfree(uctl);
> > - return err < 0 ? err : 0;
> > + return min(err, 0);
>
> I don't think this is a good warning, while I'm no big fan of the
> ternery operator the new code is less clear about the intent than the
> old code.
Agreed. That use of ternery is a standard idiom.
If we have to eliminate the use of ternery inevitably, it'd be better
to introduce a new macro for clarity instead.
thanks,
Takashi
On Wed, Oct 26, 2022 at 07:28:26AM +0200, Takashi Iwai wrote:
> Mark Brown wrote:
> > On Tue, Oct 25, 2022 at 10:56:11PM +0800, [email protected] wrote:
> > > sound/soc/soc-ops.c:817: WARNING opportunity for min()
> > > kfree(uctl);
> > > - return err < 0 ? err : 0;
> > > + return min(err, 0);
> > I don't think this is a good warning, while I'm no big fan of the
> > ternery operator the new code is less clear about the intent than the
> > old code.
> Agreed. That use of ternery is a standard idiom.
> If we have to eliminate the use of ternery inevitably, it'd be better
> to introduce a new macro for clarity instead.
It looks like it's more about identifying a pattern that could be min()
but not being able to detect the semantics of why we're comparing
numbers.