Re: [PATCH] wifi: ray_cs: Replace the ternary conditional operator with min()

From: kernel test robot
Date: Mon Jun 26 2023 - 14:49:28 EST


Hi You,

kernel test robot noticed the following build errors:

[auto build test ERROR on wireless-next/main]
[also build test ERROR on wireless/main linus/master v6.4 next-20230626]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/You-Kangren/wifi-ray_cs-Replace-the-ternary-conditional-operator-with-min/20230626-173628
base: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git main
patch link: https://lore.kernel.org/r/20230626093504.1325-1-youkangren%40vivo.com
patch subject: [PATCH] wifi: ray_cs: Replace the ternary conditional operator with min()
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20230627/202306270226.5BCJkelL-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230627/202306270226.5BCJkelL-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202306270226.5BCJkelL-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

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 | }
| ~


vim +2089 drivers/net/wireless/legacy/ray_cs.c

2042
2043 /*===========================================================================*/
2044 static void ray_rx(struct net_device *dev, ray_dev_t *local,
2045 struct rcs __iomem *prcs)
2046 {
2047 int rx_len;
2048 unsigned int pkt_addr;
2049 void __iomem *pmsg;
2050 pr_debug("ray_rx process rx packet\n");
2051
2052 /* Calculate address of packet within Rx buffer */
2053 pkt_addr = ((readb(&prcs->var.rx_packet.rx_data_ptr[0]) << 8)
2054 + readb(&prcs->var.rx_packet.rx_data_ptr[1])) & RX_BUFF_END;
2055 /* Length of first packet fragment */
2056 rx_len = (readb(&prcs->var.rx_packet.rx_data_length[0]) << 8)
2057 + readb(&prcs->var.rx_packet.rx_data_length[1]);
2058
2059 local->last_rsl = readb(&prcs->var.rx_packet.rx_sig_lev);
2060 pmsg = local->rmem + pkt_addr;
2061 switch (readb(pmsg)) {
2062 case DATA_TYPE:
2063 pr_debug("ray_rx data type\n");
2064 rx_data(dev, prcs, pkt_addr, rx_len);
2065 break;
2066 case AUTHENTIC_TYPE:
2067 pr_debug("ray_rx authentic type\n");
2068 if (sniffer)
2069 rx_data(dev, prcs, pkt_addr, rx_len);
2070 else
2071 rx_authenticate(local, prcs, pkt_addr, rx_len);
2072 break;
2073 case DEAUTHENTIC_TYPE:
2074 pr_debug("ray_rx deauth type\n");
2075 if (sniffer)
2076 rx_data(dev, prcs, pkt_addr, rx_len);
2077 else
2078 rx_deauthenticate(local, prcs, pkt_addr, rx_len);
2079 break;
2080 case NULL_MSG_TYPE:
2081 pr_debug("ray_cs rx NULL msg\n");
2082 break;
2083 case BEACON_TYPE:
2084 pr_debug("ray_rx beacon type\n");
2085 if (sniffer)
2086 rx_data(dev, prcs, pkt_addr, rx_len);
2087
2088 copy_from_rx_buff(local, (UCHAR *) &local->last_bcn, pkt_addr,
> 2089 min(rx_len, sizeof(struct beacon_rx));
2090
2091 local->beacon_rxed = 1;
2092 /* Get the statistics so the card counters never overflow */
2093 ray_get_stats(dev);
2094 break;
2095 default:
2096 pr_debug("ray_cs unknown pkt type %2x\n",
2097 (unsigned int)readb(pmsg));
> 2098 break;
2099 }
2100

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki