On Mon, Jun 26, 2023 at 05:35:02PM +0800, You Kangren wrote: > Replace the ternary conditional operator with min() to make the code clean > > Signed-off-by: You Kangren <youkangren@xxxxxxxx> > --- > drivers/net/wireless/legacy/ray_cs.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/legacy/ray_cs.c b/drivers/net/wireless/legacy/ray_cs.c > index 8ace797ce951..96f34d90f601 100644 > --- a/drivers/net/wireless/legacy/ray_cs.c > +++ b/drivers/net/wireless/legacy/ray_cs.c > @@ -2086,8 +2086,7 @@ static void ray_rx(struct net_device *dev, ray_dev_t *local, > rx_data(dev, prcs, pkt_addr, rx_len); > > copy_from_rx_buff(local, (UCHAR *) &local->last_bcn, pkt_addr, > - rx_len < sizeof(struct beacon_rx) ? > - rx_len : sizeof(struct beacon_rx)); > + min(rx_len, sizeof(struct beacon_rx)); Hi You Kangren, I like where you are going with this patch. But unfortunately using min() here causes an x86_64 allmodconfig W=1 build to fail with both gcc-12 and clang-16. Perhaps min_t() would be more appropriate? GCC 12.3.0 says: In file included from ./include/linux/kernel.h:27, from ./arch/x86/include/asm/percpu.h:27, from ./arch/x86/include/asm/nospec-branch.h:14, from ./arch/x86/include/asm/paravirt_types.h:27, from ./arch/x86/include/asm/ptrace.h:97, from ./arch/x86/include/asm/math_emu.h:5, from ./arch/x86/include/asm/processor.h:13, from ./arch/x86/include/asm/timex.h:5, from ./include/linux/timex.h:67, from ./include/linux/time32.h:13, from ./include/linux/time.h:60, from ./include/linux/stat.h:19, from ./include/linux/module.h:13, from drivers/net/wireless/legacy/ray_cs.c:20: drivers/net/wireless/legacy/ray_cs.c: In function 'ray_rx': ./include/linux/minmax.h:20:35: warning: comparison of distinct pointer types lacks a cast 20 | (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) | ^~ ./include/linux/minmax.h:26:18: note: in expansion of macro '__typecheck' 26 | (__typecheck(x, y) && __no_side_effects(x, y)) | ^~~~~~~~~~~ ./include/linux/minmax.h:36:31: note: in expansion of macro '__safe_cmp' 36 | __builtin_choose_expr(__safe_cmp(x, y), \ | ^~~~~~~~~~ ./include/linux/minmax.h:67:25: note: in expansion of macro '__careful_cmp' 67 | #define min(x, y) __careful_cmp(x, y, <) | ^~~~~~~~~~~~~ drivers/net/wireless/legacy/ray_cs.c:2089:35: note: in expansion of macro 'min' 2089 | min(rx_len, sizeof(struct beacon_rx)); | ^~~ drivers/net/wireless/legacy/ray_cs.c:2089:72: error: expected ')' before ';' token 2089 | min(rx_len, sizeof(struct beacon_rx)); | ^ drivers/net/wireless/legacy/ray_cs.c:2088:34: note: to match this '(' 2088 | copy_from_rx_buff(local, (UCHAR *) &local->last_bcn, pkt_addr, | ^ drivers/net/wireless/legacy/ray_cs.c:2098:23: error: expected ';' before '}' token 2098 | break; | ^ | ; 2099 | } | ~