* [PATCH] wifi: ray_cs: Replace the ternary conditional operator with min()
@ 2023-06-26 9:35 You Kangren
2023-06-26 12:28 ` Simon Horman
2023-06-26 18:48 ` kernel test robot
0 siblings, 2 replies; 3+ messages in thread
From: You Kangren @ 2023-06-26 9:35 UTC (permalink / raw)
To: Kalle Valo, Dongliang Mu, Simon Horman, You Kangren,
Christophe JAILLET,
open list:RAYLINK/WEBGEAR 802.11 WIRELESS LAN DRIVER, open list
Cc: opensource.kernel
Replace the ternary conditional operator with min() to make the code clean
Signed-off-by: You Kangren <youkangren@vivo.com>
---
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));
local->beacon_rxed = 1;
/* Get the statistics so the card counters never overflow */
--
2.39.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] wifi: ray_cs: Replace the ternary conditional operator with min()
2023-06-26 9:35 [PATCH] wifi: ray_cs: Replace the ternary conditional operator with min() You Kangren
@ 2023-06-26 12:28 ` Simon Horman
2023-06-26 18:48 ` kernel test robot
1 sibling, 0 replies; 3+ messages in thread
From: Simon Horman @ 2023-06-26 12:28 UTC (permalink / raw)
To: You Kangren
Cc: Kalle Valo, Dongliang Mu, Christophe JAILLET,
open list:RAYLINK/WEBGEAR 802.11 WIRELESS LAN DRIVER, open list,
opensource.kernel
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@vivo.com>
> ---
> 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 | }
| ~
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] wifi: ray_cs: Replace the ternary conditional operator with min()
2023-06-26 9:35 [PATCH] wifi: ray_cs: Replace the ternary conditional operator with min() You Kangren
2023-06-26 12:28 ` Simon Horman
@ 2023-06-26 18:48 ` kernel test robot
1 sibling, 0 replies; 3+ messages in thread
From: kernel test robot @ 2023-06-26 18:48 UTC (permalink / raw)
To: You Kangren, Kalle Valo, Dongliang Mu, Simon Horman,
Christophe JAILLET,
open list:RAYLINK/WEBGEAR 802.11 WIRELESS LAN DRIVER, open list
Cc: oe-kbuild-all, opensource.kernel
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@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230627/202306270226.5BCJkelL-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202306270226.5BCJkelL-lkp@intel.com/
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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-06-26 18:49 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-26 9:35 [PATCH] wifi: ray_cs: Replace the ternary conditional operator with min() You Kangren
2023-06-26 12:28 ` Simon Horman
2023-06-26 18:48 ` kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).